This commit is contained in:
苏尹岚
2020-12-15 14:30:30 +08:00
parent a216e42922
commit ab078d7fd9
3 changed files with 91 additions and 29 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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 {