This commit is contained in:
邹宗楠
2022-11-03 18:31:47 +08:00
parent e2e11949e9
commit 08a8a47db7
8 changed files with 156 additions and 14 deletions

View File

@@ -9,6 +9,7 @@ import (
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals"
"math/rand"
"time"
)
@@ -180,3 +181,91 @@ func UpdateOrder2Complete() {
}
return
}
// UpdateFakeWayBillToTiktok 轮询更新假订单到抖音
func UpdateFakeWayBillToTiktok() {
fakeWayBill, err := dao.GetWayBillFakeOrder()
if err != nil {
globals.SugarLogger.Debugf("Get Fake Order Err : %s", err.Error())
return
}
if len(fakeWayBill) == 0 {
return
}
for i := 0; i < len(fakeWayBill); i++ {
// 判断当前订单是否可以推送,UpdatedAt > 当前时间 就跳过
if fakeWayBill[i].ModelTimeInfo.UpdatedAt.After(time.Now()) {
continue
}
riderInfo := &mtpsapi.RiderInfo{
OrderId: fakeWayBill[i].VendorOrderID,
ThirdCarrierOrderId: fakeWayBill[i].VendorOrderID,
CourierName: fakeWayBill[i].CourierName,
CourierPhone: fakeWayBill[i].CourierMobile,
LogisticsProviderCode: "10002",
LogisticsStatus: fakeWayBill[i].Status,
}
switch fakeWayBill[i].Status {
case 5: // 呼叫骑手
riderInfo.LogisticsContext = "呼叫骑手,新建运单"
riderInfo.LogisticsStatus = 0
riderInfo.CourierName = ""
riderInfo.CourierPhone = ""
riderInfo.OpCode = tiktok_api.TiktokLogisticsStatusCALLRIDER
// 下一状态以及推送时间
fakeWayBill[i].Status = model.WaybillStatusCourierAssigned
fakeWayBill[i].VendorStatus = utils.Int64ToStr(model.WaybillStatusCourierAssigned)
case 12: // 骑手接单
riderInfo.LogisticsContext = model.RiderWaitGetGoods
riderInfo.LogisticsStatus = 12
riderInfo.OpCode = tiktok_api.TiktokLogisticsORDERRECEIVED
// 下一状态以及推送时间
fakeWayBill[i].Status = model.WaybillStatusCourierArrived
fakeWayBill[i].VendorStatus = utils.Int64ToStr(model.WaybillStatusCourierArrived)
case 15: // 到店
riderInfo.LogisticsContext = model.RiderToStore
riderInfo.LogisticsStatus = 15
riderInfo.OpCode = tiktok_api.TiktokLogisticsRIDERARRIVED
// 下一状态以及推送时间
fakeWayBill[i].Status = model.WaybillStatusDelivering
fakeWayBill[i].VendorStatus = utils.Int64ToStr(model.WaybillStatusDelivering)
case 20: //配送中
riderInfo.LogisticsContext = model.RiderGetOrderDelivering
riderInfo.LogisticsStatus = 20
riderInfo.OpCode = tiktok_api.TiktokLogisticsRIDERPICKUP
// 下一状态以及推送时间
fakeWayBill[i].Status = model.WaybillStatusDelivered
fakeWayBill[i].VendorStatus = utils.Int64ToStr(model.WaybillStatusDelivered)
case 105: // 完成
riderInfo.LogisticsContext = model.RiderGetOrderDelivered
riderInfo.LogisticsStatus = 40
riderInfo.OpCode = tiktok_api.TiktokLogisticsDELIVERED
// 下一状态以及推送时间
fakeWayBill[i].Status = model.WaybillStatusFailed
fakeWayBill[i].VendorStatus = utils.Int64ToStr(model.WaybillStatusFailed)
default:
continue
}
// 推送骑手信息
paramsMap := utils.Struct2Map(riderInfo, "", true)
if handler := partner.GetPurchaseOrderHandlerFromVendorID(model.VendorIDDD); handler != nil {
if err := handler.GetOrderRider(fakeWayBill[i].VendorOrgCode, "", paramsMap); err != nil {
globals.SugarLogger.Errorf("Fake Pull Rider Info Err :%s--%s--%v", riderInfo.OrderId, riderInfo.ThirdCarrierOrderId, err)
}
}
var randNum = []int64{1, 2, 3, 4, 5}
fakeWayBill[i].ModelTimeInfo.UpdatedAt = time.Now().Add(time.Duration(randNum[rand.Int63n(5)]) * time.Minute)
// 更新假运单
if _, err := dao.UpdateEntity(dao.GetDB(), fakeWayBill[i], "Status", "VendorStatus", "UpdatedAt"); err != nil {
globals.SugarLogger.Errorf("Update Fake Way Bill Err:%s--%s--%v", riderInfo.OrderId, riderInfo.ThirdCarrierOrderId, err)
}
}
}