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