From ab078d7fd99188eb6e05a34a0d76fbb4530acee3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 15 Dec 2020 14:30:30 +0800 Subject: [PATCH] aa --- business/jxstore/cms/job.go | 48 ++++++++++++++++++++++-------- business/model/dao/dao_order.go | 20 +++++++++++++ business/model/order.go | 52 ++++++++++++++++++++++----------- 3 files changed, 91 insertions(+), 29 deletions(-) diff --git a/business/jxstore/cms/job.go b/business/jxstore/cms/job.go index 6c03741fd..5a1b44fb1 100644 --- a/business/jxstore/cms/job.go +++ b/business/jxstore/cms/job.go @@ -742,6 +742,10 @@ func SendJdDelivery(ctx *jxcontext.Context, dOrder *model.DeliveryOrder) (errCod dOrder.PayPrice = 1000 + int(float64(waybillKgPrice)*math.Ceil(dOrder.Weight-3)) } } + var ( + sendDelivery *dao.UserDeliveryAddressEx + receiveDelivery *dao.UserDeliveryAddressEx + ) sendDeliveryList, _, err := dao.QueryUserDeliveryAddress(db, int64(dOrder.DeliverySendID), nil, 0, 0, 0) receiveDeliveryList, _, err := dao.QueryUserDeliveryAddress(db, int64(dOrder.DeliveryReceiveID), nil, 0, 0, 0) userBill, err := dao.GetUserBill(db, ctx.GetUserID(), "") @@ -757,26 +761,30 @@ func SendJdDelivery(ctx *jxcontext.Context, dOrder *model.DeliveryOrder) (errCod } if len(sendDeliveryList) == 0 { return errCode, fmt.Errorf("未找到寄件人地址!") + } else { + sendDelivery = sendDeliveryList[0] } if len(receiveDeliveryList) == 0 { return errCode, fmt.Errorf("未找到取件人地址!") + } else { + receiveDelivery = receiveDeliveryList[0] } //内蒙古海南统一35 //新疆西藏统一45 - if receiveDeliveryList[0].ParentCode == 150000 || receiveDeliveryList[0].ParentCode == 460000 || - receiveDeliveryList[0].ParentCode == 650000 || receiveDeliveryList[0].ParentCode == 540000 || - sendDeliveryList[0].ParentCode == 150000 || sendDeliveryList[0].ParentCode == 460000 || - sendDeliveryList[0].ParentCode == 650000 || sendDeliveryList[0].ParentCode == 540000 { + if receiveDelivery.ParentCode == 150000 || receiveDelivery.ParentCode == 460000 || + receiveDelivery.ParentCode == 650000 || receiveDelivery.ParentCode == 540000 || + sendDelivery.ParentCode == 150000 || sendDelivery.ParentCode == 460000 || + sendDelivery.ParentCode == 650000 || sendDelivery.ParentCode == 540000 { return errCode, fmt.Errorf("暂不支持该地区的快递业务!") } sendProvinceName := "" receiveProvinceName := "" - if place1, err := dao.GetPlaceByCode(db, sendDeliveryList[0].CityCode); err == nil { + if place1, err := dao.GetPlaceByCode(db, sendDelivery.CityCode); err == nil { if place2, err2 := dao.GetPlaceByCode(db, place1.ParentCode); err2 == nil { sendProvinceName = place2.Name } } - if place1, err := dao.GetPlaceByCode(db, receiveDeliveryList[0].CityCode); err == nil { + if place1, err := dao.GetPlaceByCode(db, receiveDelivery.CityCode); err == nil { if place2, err2 := dao.GetPlaceByCode(db, place1.ParentCode); err2 == nil { receiveProvinceName = place2.Name } @@ -786,12 +794,12 @@ func SendJdDelivery(ctx *jxcontext.Context, dOrder *model.DeliveryOrder) (errCod SalePlat: jdeclpapi.SalePlatSourceDelivery, CustomerCode: jdeclpapi.CustomerCode, OrderID: utils.Int64ToStr(jxutils.GenOrderNo()), - SenderName: sendDeliveryList[0].ConsigneeName, - SenderAddress: sendProvinceName + sendDeliveryList[0].CityName + sendDeliveryList[0].DistrictName + sendDeliveryList[0].Address + sendDeliveryList[0].DetailAddress, - SenderTel: sendDeliveryList[0].ConsigneeMobile, - ReceiveName: receiveDeliveryList[0].ConsigneeName, - ReceiveAddress: receiveProvinceName + receiveDeliveryList[0].CityName + receiveDeliveryList[0].DistrictName + receiveDeliveryList[0].Address + receiveDeliveryList[0].DetailAddress, - ReceiveTel: receiveDeliveryList[0].ConsigneeMobile, + SenderName: sendDelivery.ConsigneeName, + SenderAddress: sendProvinceName + sendDelivery.CityName + sendDelivery.DistrictName + sendDelivery.Address + sendDelivery.DetailAddress, + SenderTel: sendDelivery.ConsigneeMobile, + ReceiveName: receiveDelivery.ConsigneeName, + ReceiveAddress: receiveProvinceName + receiveDelivery.CityName + receiveDelivery.DistrictName + receiveDelivery.Address + receiveDelivery.DetailAddress, + ReceiveTel: receiveDelivery.ConsigneeMobile, Weight: dOrder.Weight, Vloumn: dOrder.Vloumn, PackageCount: dOrder.PackageCount, @@ -821,6 +829,22 @@ func SendJdDelivery(ctx *jxcontext.Context, dOrder *model.DeliveryOrder) (errCod job, err := dao.GetJob(db, nil, nil, nil, []int{model.JobTypeJdDelivery}, utils.ZeroTimeValue, utils.ZeroTimeValue, false) jobOrderID, errCode, err := AcceptJob(ctx, job.ID) dOrder.JobOrderID = utils.Int64ToStr(jobOrderID) + dOrder.SendName = sendDelivery.ConsigneeName + dOrder.SendMobile = sendDelivery.ConsigneeMobile + dOrder.SendAddress = sendDelivery.Address + dOrder.SendAutoAddress = sendDelivery.AutoAddress + dOrder.SendCityCode = sendDelivery.CityCode + dOrder.SendDetailAddress = sendDelivery.DetailAddress + dOrder.SendLng = sendDelivery.Lng + dOrder.SendLat = sendDelivery.Lat + dOrder.ReceiveName = receiveDelivery.ConsigneeName + dOrder.ReceiveMobile = receiveDelivery.ConsigneeMobile + dOrder.ReceiveAddress = receiveDelivery.Address + dOrder.ReceiveAutoAddress = receiveDelivery.AutoAddress + dOrder.ReceiveCityCode = receiveDelivery.CityCode + dOrder.ReceiveDetailAddress = receiveDelivery.DetailAddress + dOrder.ReceiveLng = receiveDelivery.Lng + dOrder.ReceiveLat = receiveDelivery.Lat if err = dao.CreateEntity(db, dOrder); err != nil { dao.Rollback(db) return diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index eb9495814..7a0b6f89d 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -84,9 +84,29 @@ func GetDeliveryOrders(db *DaoDB, userIDs []string, statuss []int, fromTime, toT for _, v := range dOrders { if addressList1, _, err := QueryUserDeliveryAddress(db, int64(v.DeliverySendID), nil, 0, 0, 0); err == nil && len(addressList1) > 0 { v.DeliverySendInfo = addressList1[0] + } else { + v.DeliverySendInfo.ConsigneeName = v.SendName + v.DeliverySendInfo.ConsigneeMobile = v.SendMobile + v.DeliverySendInfo.Address = v.SendAddress + v.DeliverySendInfo.AutoAddress = v.SendAutoAddress + v.DeliverySendInfo.CityCode = v.SendCityCode + v.DeliverySendInfo.DistrictCode = v.SendDistrictCode + v.DeliverySendInfo.DetailAddress = v.SendDetailAddress + v.DeliverySendInfo.Lng = v.SendLng + v.DeliverySendInfo.Lat = v.SendLat } if addressList2, _, err := QueryUserDeliveryAddress(db, int64(v.DeliveryReceiveID), nil, 0, 0, 0); err == nil && len(addressList2) > 0 { v.DeliveryReceiveInfo = addressList2[0] + } else { + v.DeliveryReceiveInfo.ConsigneeName = v.ReceiveName + v.DeliveryReceiveInfo.ConsigneeMobile = v.ReceiveMobile + v.DeliveryReceiveInfo.Address = v.ReceiveAddress + v.DeliveryReceiveInfo.AutoAddress = v.ReceiveAutoAddress + v.DeliveryReceiveInfo.CityCode = v.ReceiveCityCode + v.DeliveryReceiveInfo.DistrictCode = v.ReceiveDistrictCode + v.DeliveryReceiveInfo.DetailAddress = v.ReceiveDetailAddress + v.DeliveryReceiveInfo.Lng = v.ReceiveLng + v.DeliveryReceiveInfo.Lat = v.ReceiveLat } } pagedInfo.Data = dOrders diff --git a/business/model/order.go b/business/model/order.go index 38ba31f82..1d855fa51 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -84,23 +84,41 @@ func (v *Order) TableIndex() [][]string { type DeliveryOrder struct { ModelIDCUL - VendorWaybillID string `orm:"column(vendor_waybill_id)" json:"vendorWaybillID"` //运单号 - UserID string `orm:"column(user_id);size(48)" json:"userID"` //用户ID - DeliverySendID int `orm:"column(delivery_send_id)" json:"deliverySendID"` //寄件人地址ID - DeliveryReceiveID int `orm:"column(delivery_receive_id)" json:"deliveryReceiveID"` //取件人地址ID(收货人) - Status int `json:"status"` //运单状态 - PayPrice int `json:"payPrice"` //支付金额 - OrderFinishedAt time.Time `json:"orderFinishedAt"` //订单完成时间 - Weight float64 `json:"weight"` //订单重量,单位kg - Vloumn float64 `json:"vloumn"` //订单体积,单位立方cm - Description string `json:"description"` //订单商品描述 - PickUpStartTime time.Time `json:"pickUpStartTime"` //预约取件开始时间 - PickUpEndTime time.Time `json:"pickUpEndTime"` //预约取件结束时间 - PackageCount int `json:"packageCount"` //包裹数 - ActualWeight float64 `json:"actualWeight"` //实际重量 - IsWeight int `json:"isWeight"` //0代表未验重,1代表验重通过,2代表不通过 - Comment string `orm:"size(255)" json:"comment"` //备注 - JobOrderID string `orm:"column(job_order_id)" json:"jobOrderID"` + VendorWaybillID string `orm:"column(vendor_waybill_id)" json:"vendorWaybillID"` //运单号 + UserID string `orm:"column(user_id);size(48)" json:"userID"` //用户ID + DeliverySendID int `orm:"column(delivery_send_id)" json:"deliverySendID"` //寄件人地址ID + SendName string `json:"sendName"` + SendMobile string `json:"sendMobile"` + SendAddress string `json:"sendAddress"` + SendDetailAddress string `json:"sendDetailAddress"` + SendLng float64 `json:"sendLng"` + SendLat float64 `json:"sendLat"` + SendAutoAddress string `json:"sendAutoAddress"` + SendCityCode int `json:"sendCityCode"` + SendDistrictCode int `json:"sendDistrictCode"` + DeliveryReceiveID int `orm:"column(delivery_receive_id)" json:"deliveryReceiveID"` //取件人地址ID(收货人)\ + ReceiveName string `json:"receiveName"` + ReceiveMobile string `json:"receiveMobile"` + ReceiveAddress string `json:"receiveAddress"` + ReceiveDetailAddress string `json:"receiveDetailAddress"` + ReceiveLng float64 `json:"receiveLng"` + ReceiveLat float64 `json:"receiveLat"` + ReceiveAutoAddress string `json:"receiveAutoAddress"` + ReceiveCityCode int `json:"receiveCityCode"` + ReceiveDistrictCode int `json:"receiveDistrictCode"` + Status int `json:"status"` //运单状态 + PayPrice int `json:"payPrice"` //支付金额 + OrderFinishedAt time.Time `json:"orderFinishedAt"` //订单完成时间 + Weight float64 `json:"weight"` //订单重量,单位kg + Vloumn float64 `json:"vloumn"` //订单体积,单位立方cm + Description string `json:"description"` //订单商品描述 + PickUpStartTime time.Time `json:"pickUpStartTime"` //预约取件开始时间 + PickUpEndTime time.Time `json:"pickUpEndTime"` //预约取件结束时间 + PackageCount int `json:"packageCount"` //包裹数 + ActualWeight float64 `json:"actualWeight"` //实际重量 + IsWeight int `json:"isWeight"` //0代表未验重,1代表验重通过,2代表不通过 + Comment string `orm:"size(255)" json:"comment"` //备注 + JobOrderID string `orm:"column(job_order_id)" json:"jobOrderID"` } func (v *DeliveryOrder) TableUnique() [][]string {