Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop
This commit is contained in:
@@ -269,6 +269,10 @@ func (c *OrderManager) OnOrderStatusChanged(vendorOrgCode string, orderStatus *m
|
|||||||
partner.CurOrderManager.OnOrderMsg(order, fmt.Sprintf("订单[%s]被取消了,运单[%s]取消成功", order.VendorOrderID, v.VendorWaybillID), "")
|
partner.CurOrderManager.OnOrderMsg(order, fmt.Sprintf("订单[%s]被取消了,运单[%s]取消成功", order.VendorOrderID, v.VendorWaybillID), "")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 刷新订单结束时间
|
||||||
|
order.OrderFinishedAt = time.Now()
|
||||||
|
dao.UpdateEntity(db, order, "OrderFinishedAt")
|
||||||
|
|
||||||
//如果取消订单则要把库存加回去
|
//如果取消订单则要把库存加回去
|
||||||
if err2 == nil {
|
if err2 == nil {
|
||||||
// 判断是否需要打印取消订单
|
// 判断是否需要打印取消订单
|
||||||
@@ -476,7 +480,7 @@ func FinisOrderWaybillFee(db *dao.DaoDB, order *model.GoodsOrder, bill *model.Wa
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
// 查询所有运单
|
// 查询所有运单
|
||||||
bills, err := dao.GetWaybills(db, order.VendorOrderID, nil)
|
bills, err := dao.GetWaybills(db, order.VendorOrderID, []int64{model.VendorIDDada, model.VendorIDFengNiao, model.VendorIDMTPS, model.VendorIDUUPT, model.VendorIDSFPS})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -531,8 +535,8 @@ func ResetCreateWaybillFee(db *dao.DaoDB, order *model.GoodsOrder, bill *model.W
|
|||||||
if err := countWaybillSettleInfo(db, order, bill, store); err != nil {
|
if err := countWaybillSettleInfo(db, order, bill, store); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
// 所有运单停止调度之后才开始退还余额
|
// 所有运单停止调度之后才开始退还余额(三方运单)
|
||||||
bills, err := dao.GetWaybills(db, order.VendorOrderID, nil)
|
bills, err := dao.GetWaybills(db, order.VendorOrderID, []int64{model.VendorIDDada, model.VendorIDFengNiao, model.VendorIDMTPS, model.VendorIDUUPT, model.VendorIDSFPS})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2030,27 +2030,27 @@ func RrefreshMtwmVendorAct(ctx *jxcontext.Context) (err error) {
|
|||||||
if len(actList) > 0 {
|
if len(actList) > 0 {
|
||||||
for _, act := range actList {
|
for _, act := range actList {
|
||||||
if act.Status > 0 {
|
if act.Status > 0 {
|
||||||
//if checkActStoreSkuExist(db, storeMap.StoreID, utils.Str2Int(act.AppFoodCode), model.VendorIDMTWM, utils.Timestamp2Time(act.StartTime), utils.Timestamp2Time(act.EndTime)) {
|
if checkActStoreSkuExist(db, storeMap.StoreID, utils.Str2Int(act.AppFoodCode), model.VendorIDMTWM, utils.Timestamp2Time(act.StartTime), utils.Timestamp2Time(act.EndTime)) {
|
||||||
actVendor := &model.ActMtwmVendor{
|
actVendor := &model.ActMtwmVendor{
|
||||||
StoreID: storeMap.StoreID,
|
StoreID: storeMap.StoreID,
|
||||||
SkuID: utils.Str2Int(act.AppFoodCode),
|
SkuID: utils.Str2Int(act.AppFoodCode),
|
||||||
VendorStoreID: storeMap.VendorStoreID,
|
VendorStoreID: storeMap.VendorStoreID,
|
||||||
ActType: v,
|
ActType: v,
|
||||||
BeginAt: utils.Timestamp2Time(act.StartTime),
|
BeginAt: utils.Timestamp2Time(act.StartTime),
|
||||||
EndAt: utils.Timestamp2Time(act.EndTime),
|
EndAt: utils.Timestamp2Time(act.EndTime),
|
||||||
SkuName: act.Name,
|
SkuName: act.Name,
|
||||||
OriginPrice: act.OriginalPrice,
|
OriginPrice: act.OriginalPrice,
|
||||||
ActPrice: act.ActPrice,
|
ActPrice: act.ActPrice,
|
||||||
DiscountCoefficient: act.DiscountCoefficient,
|
DiscountCoefficient: act.DiscountCoefficient,
|
||||||
Status: act.Status,
|
Status: act.Status,
|
||||||
ItemID: utils.Int64ToStr(act.ItemID),
|
ItemID: utils.Int64ToStr(act.ItemID),
|
||||||
OrderLimit: act.OrderLimit,
|
OrderLimit: act.OrderLimit,
|
||||||
Period: act.Period,
|
Period: act.Period,
|
||||||
WeeksTime: act.WeeksTime,
|
WeeksTime: act.WeeksTime,
|
||||||
SettingType: act.SettingType,
|
SettingType: act.SettingType,
|
||||||
|
}
|
||||||
|
dao.CreateEntity(db, actVendor)
|
||||||
}
|
}
|
||||||
dao.CreateEntity(db, actVendor)
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2194,6 +2194,7 @@ func GetActMtwmVendorSku(ctx *jxcontext.Context, storeID int, keyword string, ac
|
|||||||
}
|
}
|
||||||
|
|
||||||
func DeleteActStoreSkuVendor(ctx *jxcontext.Context, db *dao.DaoDB, actStoreSkuParam []*ActStoreSkuParam) (err error) {
|
func DeleteActStoreSkuVendor(ctx *jxcontext.Context, db *dao.DaoDB, actStoreSkuParam []*ActStoreSkuParam) (err error) {
|
||||||
|
|
||||||
return fmt.Errorf("暂不支持直接取消平台活动,开发中……")
|
return fmt.Errorf("暂不支持直接取消平台活动,开发中……")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1173,8 +1173,6 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, upcs []str
|
|||||||
sql += " , t4.unit_price DESC LIMIT 99"
|
sql += " , t4.unit_price DESC LIMIT 99"
|
||||||
}
|
}
|
||||||
var tmpList []*tGetStoresSkusInfo
|
var tmpList []*tGetStoresSkusInfo
|
||||||
globals.SugarLogger.Debugf("GetStoresSkusNew sql=%s,sqlParams=%s", sql, sqlParams)
|
|
||||||
|
|
||||||
if err = dao.GetRowsTx(txDB, &tmpList, sql, sqlParams...); err != nil {
|
if err = dao.GetRowsTx(txDB, &tmpList, sql, sqlParams...); err != nil {
|
||||||
dao.Rollback(db, txDB)
|
dao.Rollback(db, txDB)
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -1184,7 +1182,6 @@ func GetStoresSkusNew(ctx *jxcontext.Context, storeIDs, skuIDs []int, upcs []str
|
|||||||
}
|
}
|
||||||
dao.Commit(db, txDB)
|
dao.Commit(db, txDB)
|
||||||
storeNameMap := make(map[int64]*dao.StoreSkuNameExt)
|
storeNameMap := make(map[int64]*dao.StoreSkuNameExt)
|
||||||
globals.SugarLogger.Debugf("GetStoresSkusNew tmpList=%s", utils.Format4Output(tmpList, false))
|
|
||||||
for _, v := range tmpList {
|
for _, v := range tmpList {
|
||||||
var storeName *dao.StoreSkuNameExt
|
var storeName *dao.StoreSkuNameExt
|
||||||
index := jxutils.Combine2Int(v.StoreID, v.ID)
|
index := jxutils.Combine2Int(v.StoreID, v.ID)
|
||||||
|
|||||||
@@ -279,11 +279,153 @@ func Init() {
|
|||||||
// syncStoreSkuTiktok()
|
// syncStoreSkuTiktok()
|
||||||
// }, []string{"13:00:00"})
|
// }, []string{"13:00:00"})
|
||||||
//}
|
//}
|
||||||
// 抖音更新门店商品 ,接口收费暂不使用
|
// 淘鲜达更新门店商品 ,接口收费暂不使用
|
||||||
if beego.BConfig.RunMode != "jxgy" {
|
if beego.BConfig.RunMode != "jxgy" {
|
||||||
ScheduleTimerFunc("RefreshSyncSkuList_tao", func() {
|
ScheduleTimerFunc("RefreshSyncSkuList_tao", func() {
|
||||||
syncStoreSkuTao()
|
var beijin = []int{
|
||||||
}, []string{"13:00:00"})
|
//102683,
|
||||||
|
//102542,
|
||||||
|
//102514,
|
||||||
|
//102382,
|
||||||
|
//102182,
|
||||||
|
//102178,
|
||||||
|
//102173,
|
||||||
|
//102098,
|
||||||
|
//102094,
|
||||||
|
//102080,
|
||||||
|
//102072,
|
||||||
|
//102069,
|
||||||
|
//101870,
|
||||||
|
//101869,
|
||||||
|
//101868,
|
||||||
|
//101867,
|
||||||
|
//101866,
|
||||||
|
//101865,
|
||||||
|
//100956,
|
||||||
|
//100930,
|
||||||
|
//100871,
|
||||||
|
//100786,
|
||||||
|
//100746,
|
||||||
|
//100744,
|
||||||
|
//100726,
|
||||||
|
//100705,
|
||||||
|
//100400,
|
||||||
|
//100111,
|
||||||
|
//100108,
|
||||||
|
//100106,
|
||||||
|
//100104,
|
||||||
|
//100103,
|
||||||
|
//100102,
|
||||||
|
//100100,
|
||||||
|
//100097,
|
||||||
|
//100096,
|
||||||
|
//100095,
|
||||||
|
//100093,
|
||||||
|
//100092,
|
||||||
|
//100089,
|
||||||
|
//100087,
|
||||||
|
//100086,
|
||||||
|
//100085,
|
||||||
|
//100082,
|
||||||
|
//100079,
|
||||||
|
//100078,
|
||||||
|
//669158,
|
||||||
|
//668691,
|
||||||
|
//668673,
|
||||||
|
//668282,
|
||||||
|
//667447,
|
||||||
|
//667354,
|
||||||
|
//667321,
|
||||||
|
//667319,
|
||||||
|
//667316,
|
||||||
|
//667269,
|
||||||
|
//667268,
|
||||||
|
//667267,
|
||||||
|
//667260,
|
||||||
|
//667132,
|
||||||
|
//667094,
|
||||||
|
//667030,
|
||||||
|
//666965,
|
||||||
|
//666714,
|
||||||
|
//666708,
|
||||||
|
//666705,
|
||||||
|
//103437,
|
||||||
|
//103349,
|
||||||
|
//103123,
|
||||||
|
//103121,
|
||||||
|
//103106,
|
||||||
|
//103038,
|
||||||
|
//103028,
|
||||||
|
//103019,
|
||||||
|
//102831,
|
||||||
|
//102751,
|
||||||
|
//上海
|
||||||
|
668462,
|
||||||
|
668276,
|
||||||
|
668180,
|
||||||
|
667320,
|
||||||
|
667237,
|
||||||
|
667231,
|
||||||
|
667068,
|
||||||
|
667036,
|
||||||
|
666678,
|
||||||
|
103191,
|
||||||
|
103074,
|
||||||
|
103065,
|
||||||
|
103051,
|
||||||
|
103050,
|
||||||
|
103037,
|
||||||
|
103029,
|
||||||
|
103018,
|
||||||
|
103002,
|
||||||
|
102999,
|
||||||
|
102969,
|
||||||
|
102966,
|
||||||
|
102951,
|
||||||
|
102946,
|
||||||
|
102939,
|
||||||
|
102938,
|
||||||
|
102934,
|
||||||
|
102933,
|
||||||
|
102930,
|
||||||
|
102924,
|
||||||
|
102920,
|
||||||
|
102908,
|
||||||
|
102903,
|
||||||
|
102561,
|
||||||
|
102293,
|
||||||
|
100946,
|
||||||
|
100945,
|
||||||
|
100943,
|
||||||
|
100935,
|
||||||
|
100905,
|
||||||
|
100720,
|
||||||
|
100325,
|
||||||
|
100324,
|
||||||
|
100309,
|
||||||
|
100299,
|
||||||
|
100296,
|
||||||
|
100292,
|
||||||
|
100290,
|
||||||
|
}
|
||||||
|
syncStoreSkuTao(beijin)
|
||||||
|
}, []string{
|
||||||
|
"00:30:00",
|
||||||
|
"02:30:00",
|
||||||
|
"04:30:00",
|
||||||
|
"07:30:00",
|
||||||
|
"09:00:00",
|
||||||
|
"10:40:00",
|
||||||
|
"12:55:00",
|
||||||
|
"13:30:00",
|
||||||
|
"14:30:00",
|
||||||
|
"15:30:00",
|
||||||
|
"16:30:00",
|
||||||
|
"17:30:00",
|
||||||
|
"18:40:00",
|
||||||
|
"20:30:00",
|
||||||
|
"22:30:00",
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 刷新抖音门店token
|
// 刷新抖音门店token
|
||||||
@@ -640,8 +782,10 @@ func syncStoreSkuTiktok() {
|
|||||||
tasksch.HandleTask(task, nil, true).Run()
|
tasksch.HandleTask(task, nil, true).Run()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var syncLen = 0
|
||||||
|
|
||||||
// syncStoreSkuTao 同步商品到淘鲜达
|
// syncStoreSkuTao 同步商品到淘鲜达
|
||||||
func syncStoreSkuTao() {
|
func syncStoreSkuTao(beijin []int) {
|
||||||
syncFlag := 0
|
syncFlag := 0
|
||||||
task := tasksch.NewParallelTask("同步京西商品到淘鲜达平台,方案二使用", nil, jxcontext.AdminCtx,
|
task := tasksch.NewParallelTask("同步京西商品到淘鲜达平台,方案二使用", nil, jxcontext.AdminCtx,
|
||||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
@@ -651,18 +795,19 @@ func syncStoreSkuTao() {
|
|||||||
switch step {
|
switch step {
|
||||||
case 0:
|
case 0:
|
||||||
if beego.BConfig.RunMode != "jxgy" {
|
if beego.BConfig.RunMode != "jxgy" {
|
||||||
_, err = cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, []int{model.VendorIDTaoVegetable}, nil, false, nil, nil, syncFlag, true, true)
|
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "淘鲜达消息:", utils.Format4Output(beijin[syncLen:syncLen+5], false))
|
||||||
|
_, err = cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, []int{model.VendorIDTaoVegetable}, beijin[syncLen:syncLen+5], false, nil, nil, syncFlag, true, true)
|
||||||
errList.AddErr(err)
|
errList.AddErr(err)
|
||||||
}
|
}
|
||||||
case 1:
|
case 1:
|
||||||
errList.AddErr(err)
|
errList.AddErr(err)
|
||||||
SaveImportantTaskID(TaskNameSyncStoreSku, SpecialTaskID)
|
SaveImportantTaskID(TaskNameSyncStoreSku, SpecialTaskID)
|
||||||
}
|
}
|
||||||
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "淘宝同步商品", utils.Format4Output(errList, false))
|
|
||||||
err = errList.GetErrListAsOne()
|
err = errList.GetErrListAsOne()
|
||||||
return retVal, err
|
return retVal, err
|
||||||
}, []int{0, 1})
|
}, []int{0, 1})
|
||||||
tasksch.HandleTask(task, nil, true).Run()
|
tasksch.HandleTask(task, nil, true).Run()
|
||||||
|
syncLen += 5
|
||||||
}
|
}
|
||||||
|
|
||||||
func doDailyWork2() {
|
func doDailyWork2() {
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ func (c *DeliveryHandler) CancelWaybill(bill *model.Waybill, cancelReasonID int,
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error) {
|
func (c *DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error) {
|
||||||
err = api.FnAPI.ComplaintRider(bill.VendorOrderID, complaintReson2FnResonMap[resonID])
|
err = api.FnAPI.ComplaintRider(bill.VendorOrderID, bill.VendorWaybillID, complaintReson2FnResonMap[resonID], resonContent)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -523,14 +523,14 @@ func (c *DeliveryHandler) GetDeliverLiquidatedDamages(orderId string, deliverId
|
|||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
isMerchantCancel := false
|
//isMerchantCancel := false
|
||||||
// 获取发起取消的人员
|
//// 获取发起取消的人员
|
||||||
for _, v := range statusList {
|
//for _, v := range statusList {
|
||||||
if v.VendorStatus == utils.Int64ToStr(model.WaybillStatusCancel) {
|
// if v.VendorStatus == utils.Int64ToStr(model.WaybillStatusCancel) {
|
||||||
isMerchantCancel = true // 商户取消
|
// isMerchantCancel = true // 商户取消
|
||||||
break
|
// break
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|
||||||
bill, err := partner.CurOrderManager.LoadWaybill(deliverId, model.VendorIDMTPS)
|
bill, err := partner.CurOrderManager.LoadWaybill(deliverId, model.VendorIDMTPS)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -549,17 +549,17 @@ func (c *DeliveryHandler) GetDeliverLiquidatedDamages(orderId string, deliverId
|
|||||||
}
|
}
|
||||||
// 到店
|
// 到店
|
||||||
if statusList[i].VendorStatus == utils.Int2Str(mtpsapi.OrderStatusPickedUp) {
|
if statusList[i].VendorStatus == utils.Int2Str(mtpsapi.OrderStatusPickedUp) {
|
||||||
if isMerchantCancel {
|
//if isMerchantCancel {
|
||||||
return bill.DesiredFee, nil
|
return bill.DesiredFee, nil
|
||||||
}
|
//}
|
||||||
return 0, nil
|
//return 0, nil
|
||||||
}
|
}
|
||||||
// 接单
|
// 接单
|
||||||
if statusList[i].VendorStatus == utils.Int2Str(mtpsapi.OrderStatusAccepted) {
|
if statusList[i].VendorStatus == utils.Int2Str(mtpsapi.OrderStatusAccepted) {
|
||||||
if isMerchantCancel {
|
//if isMerchantCancel {
|
||||||
return 200, nil
|
return 200, nil
|
||||||
}
|
//}
|
||||||
return 0, nil
|
//return 0, nil
|
||||||
}
|
}
|
||||||
// 待调度
|
// 待调度
|
||||||
if statusList[i].VendorStatus == utils.Int2Str(mtpsapi.OrderStatusWaitingForSchedule) {
|
if statusList[i].VendorStatus == utils.Int2Str(mtpsapi.OrderStatusWaitingForSchedule) {
|
||||||
|
|||||||
@@ -96,14 +96,14 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if (v.WaybillVendorID == model.YES || v.WaybillVendorID == -1) && v.VendorID == model.VendorIDMTWM {
|
//if (v.WaybillVendorID == model.YES || v.WaybillVendorID == -1) && v.VendorID == model.VendorIDMTWM {
|
||||||
continue
|
// continue
|
||||||
}
|
//}
|
||||||
|
|
||||||
if orderId == "" { // 订单id为空是,是定时轮询操作,不做此状态
|
if orderId == "" { // 订单id为空是,是定时轮询操作,不做此状态
|
||||||
waybillList, _ := dao.GetWaybills(dao.GetDB(), v.VendorOrderID, nil)
|
waybillList, _ := dao.GetWaybills(dao.GetDB(), v.VendorOrderID, nil)
|
||||||
if len(waybillList) > 0 && waybillList[0].Status > model.WaybillStatusEndBegin {
|
if len(waybillList) > 0 && waybillList[0].Status > model.WaybillStatusEndBegin {
|
||||||
globals.SugarLogger.Debugf("订单物流状态结束,不在推送订单状态:orderID[%s],wayBillId[%s]", v.VendorOrderID, waybillList[0].VendorWaybillID)
|
globals.SugarLogger.Debug("订单物流状态结束,不在推送订单状态:orderID[%s],wayBillId[%s]", v.VendorOrderID, waybillList[0].VendorWaybillID)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -409,7 +409,14 @@ func UpdateFakeWayBillToTiktok() {
|
|||||||
|
|
||||||
// 设置骑手和下一状态时间
|
// 设置骑手和下一状态时间
|
||||||
makeRiderInfo(fakeWayBill[i], riderInfo)
|
makeRiderInfo(fakeWayBill[i], riderInfo)
|
||||||
|
if riderInfo.CourierName == "" && fakeWayBill[i].CourierName != "" {
|
||||||
|
riderInfo.CourierName = fakeWayBill[i].CourierName
|
||||||
|
riderInfo.CourierPhone = fakeWayBill[i].CourierMobile
|
||||||
|
}
|
||||||
|
if riderInfo.CourierName == "" && fakeWayBill[i].CourierName == "" {
|
||||||
|
riderInfo.CourierName = "石锋"
|
||||||
|
riderInfo.CourierPhone = "18048531223"
|
||||||
|
}
|
||||||
if riderInfo.LogisticsContext != model.RiderGetOrderDeliverFailed && riderInfo.LogisticsContext != model.RiderGetOrderDeliverOther && riderInfo.LogisticsContext != model.RiderWaitRider {
|
if riderInfo.LogisticsContext != model.RiderGetOrderDeliverFailed && riderInfo.LogisticsContext != model.RiderGetOrderDeliverOther && riderInfo.LogisticsContext != model.RiderWaitRider {
|
||||||
riderInfo.LogisticsContext = fmt.Sprintf(riderInfo.LogisticsContext, riderInfo.CourierName, riderInfo.CourierPhone)
|
riderInfo.LogisticsContext = fmt.Sprintf(riderInfo.LogisticsContext, riderInfo.CourierName, riderInfo.CourierPhone)
|
||||||
}
|
}
|
||||||
@@ -452,7 +459,7 @@ func UpdateFakeWayBillToTiktok() {
|
|||||||
globals.SugarLogger.Debugf("UPDATA goods_order Err :%s", err.Error())
|
globals.SugarLogger.Debugf("UPDATA goods_order Err :%s", err.Error())
|
||||||
}
|
}
|
||||||
// 饿百订单推送订单送达
|
// 饿百订单推送订单送达
|
||||||
if fakeWayBill[i].OrderVendorID == model.VendorIDEBAI || fakeWayBill[i].OrderVendorID == model.VendorIDMTWM {
|
if fakeWayBill[i].OrderVendorID == model.VendorIDEBAI || fakeWayBill[i].OrderVendorID == model.VendorIDTaoVegetable || fakeWayBill[i].OrderVendorID == model.VendorIDMTWM {
|
||||||
if err := handler.Swtich2SelfDelivered(order, "JingXiAdmin"); err != nil {
|
if err := handler.Swtich2SelfDelivered(order, "JingXiAdmin"); err != nil {
|
||||||
globals.SugarLogger.Errorf("Swtich2SelfDelivered err := %v", err)
|
globals.SugarLogger.Errorf("Swtich2SelfDelivered err := %v", err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -399,7 +399,7 @@ func (p *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName s
|
|||||||
err = nil
|
err = nil
|
||||||
case ebaiapi.WaybillStatusDeliveryCancled:
|
case ebaiapi.WaybillStatusDeliveryCancled:
|
||||||
p.trySyncCancelStatus(order.VendorOrderID)
|
p.trySyncCancelStatus(order.VendorOrderID)
|
||||||
case ebaiapi.WaybillStatusNew, ebaiapi.WaybillStatusRequestDelivery, ebaiapi.WaybillStatusWait4Courier:
|
case ebaiapi.WaybillStatusNew, ebaiapi.WaybillStatusEvent, ebaiapi.WaybillStatusRequestDelivery, ebaiapi.WaybillStatusWait4Courier:
|
||||||
err = api.EbaiAPI.OrderCancelDelivery(order.VendorOrderID) // 取消呼叫众包骑手
|
err = api.EbaiAPI.OrderCancelDelivery(order.VendorOrderID) // 取消呼叫众包骑手
|
||||||
case ebaiapi.WaybillStatusCourierAccepted:
|
case ebaiapi.WaybillStatusCourierAccepted:
|
||||||
err = errors.New("骑手已接单,无法转自送")
|
err = errors.New("骑手已接单,无法转自送")
|
||||||
|
|||||||
@@ -132,17 +132,20 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode string, vendorOrderID int64, ve
|
|||||||
// 渠道活动
|
// 渠道活动
|
||||||
if v.ChannelActivityId != nil {
|
if v.ChannelActivityId != nil {
|
||||||
activityId = append(activityId, utils.Str2Int64WithDefault(*v.ChannelActivityId, 999))
|
activityId = append(activityId, utils.Str2Int64WithDefault(*v.ChannelActivityId, 999))
|
||||||
activityName = append(activityName, *v.ChannelActivityId+":"+*v.ActivityName)
|
//activityName = append(activityName, *v.ChannelActivityId+":"+*v.ActivityName)
|
||||||
|
activityName = append(activityName, *v.ChannelActivityId)
|
||||||
}
|
}
|
||||||
// 业务活动
|
// 业务活动
|
||||||
if v.BizActivityId != nil {
|
if v.BizActivityId != nil {
|
||||||
activityId = append(activityId, utils.Str2Int64WithDefault(*v.BizActivityId, 999))
|
activityId = append(activityId, utils.Str2Int64WithDefault(*v.BizActivityId, 999))
|
||||||
activityName = append(activityName, *v.BizActivityId+":"+*v.ActivityName)
|
//activityName = append(activityName, *v.BizActivityId+":"+*v.ActivityName)
|
||||||
|
activityName = append(activityName, *v.BizActivityId)
|
||||||
}
|
}
|
||||||
// 商家erp活动
|
// 商家erp活动
|
||||||
if v.MerchantActivityId != nil {
|
if v.MerchantActivityId != nil {
|
||||||
activityId = append(activityId, utils.Str2Int64WithDefault(*v.MerchantActivityId, 999))
|
activityId = append(activityId, utils.Str2Int64WithDefault(*v.MerchantActivityId, 999))
|
||||||
activityName = append(activityName, *v.MerchantActivityId+":"+*v.ActivityName)
|
//activityName = append(activityName, *v.MerchantActivityId+":"+*v.ActivityName)
|
||||||
|
activityName = append(activityName, *v.MerchantActivityId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -189,17 +192,6 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode string, vendorOrderID int64, ve
|
|||||||
}
|
}
|
||||||
// 抖音订单手机号和收货地址是否同城(虚拟号,无法获取到正确地址)
|
// 抖音订单手机号和收货地址是否同城(虚拟号,无法获取到正确地址)
|
||||||
order.PhoneAscription = model.PhoneAscriptionAddressNo + "-" + "归属信息不匹配:" + "虚拟电话号码"
|
order.PhoneAscription = model.PhoneAscriptionAddressNo + "-" + "归属信息不匹配:" + "虚拟电话号码"
|
||||||
//ascription, err := ascription_place.Find(order.ConsigneeMobile)
|
|
||||||
//if err != nil {
|
|
||||||
// order.PhoneAscription = model.PhoneAscriptionAddressNo + "-" + err.Error()
|
|
||||||
// err = nil
|
|
||||||
//} else {
|
|
||||||
// if strings.Contains(order.ConsigneeAddress, ascription.Province) && strings.Contains(order.ConsigneeAddress, ascription.City) {
|
|
||||||
// order.PhoneAscription = model.PhoneAscriptionAddressYes + "-" + ascription.Province + ascription.City
|
|
||||||
// } else {
|
|
||||||
// order.PhoneAscription = model.PhoneAscriptionAddressNo + "-" + "归属信息不匹配:" + ascription.Province + ascription.City
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
// 本地获取订单记录
|
// 本地获取订单记录
|
||||||
orderSeq, _ := dao.GetVendorOrderNumber(dao.GetDB(), model.VendorIDTaoVegetable, order.VendorStoreID)
|
orderSeq, _ := dao.GetVendorOrderNumber(dao.GetDB(), model.VendorIDTaoVegetable, order.VendorStoreID)
|
||||||
@@ -215,7 +207,6 @@ func (p *PurchaseHandler) getOrder(vendorOrgCode string, vendorOrderID int64, ve
|
|||||||
order.StoreName = "未获取到" // 真实门店名称
|
order.StoreName = "未获取到" // 真实门店名称
|
||||||
}
|
}
|
||||||
|
|
||||||
globals.SugarLogger.Debugf("=====order : %s", utils.Format4Output(order, false))
|
|
||||||
return order, orderMap, err
|
return order, orderMap, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -71,10 +71,10 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
|||||||
var err error
|
var err error
|
||||||
var db = dao.GetDB()
|
var db = dao.GetDB()
|
||||||
orderStatus, scarceGoods := c.callbackAfsMsg2Status(status, msg)
|
orderStatus, scarceGoods := c.callbackAfsMsg2Status(status, msg)
|
||||||
// 用户取消售后
|
|
||||||
switch status {
|
switch status {
|
||||||
case tao_vegetable.OrderStatusApplyAfs:
|
case tao_vegetable.OrderStatusApplyAfs:
|
||||||
refundData := msg.(*tao_vegetable.UserApplyRefundCallBack)
|
refundData := msg.(*tao_vegetable.UserApplyRefundCallBack)
|
||||||
|
globals.SugarLogger.Debugf("================OrderStatusApplyAfs : %s", utils.Format4Output(msg, false))
|
||||||
var afsOrder *model.AfsOrder
|
var afsOrder *model.AfsOrder
|
||||||
var api = getAPI("", 0, refundData.StoreId)
|
var api = getAPI("", 0, refundData.StoreId)
|
||||||
|
|
||||||
@@ -287,60 +287,96 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
|||||||
case tao_vegetable.OrderStatusRefundSuccess:
|
case tao_vegetable.OrderStatusRefundSuccess:
|
||||||
// 用户退款成功回调,缺货拣货时,送达回触发.此时并没有售后单
|
// 用户退款成功回调,缺货拣货时,送达回触发.此时并没有售后单
|
||||||
if scarceGoods != nil {
|
if scarceGoods != nil {
|
||||||
var afsOrder *model.AfsOrder
|
|
||||||
refundSuccess := msg.(*tao_vegetable.RefundOrderFinish)
|
refundSuccess := msg.(*tao_vegetable.RefundOrderFinish)
|
||||||
|
var afsOrder *model.AfsOrder
|
||||||
var api = getAPI("", 0, refundSuccess.StoreId)
|
var api = getAPI("", 0, refundSuccess.StoreId)
|
||||||
|
var isCreate = true
|
||||||
afsOrder = &model.AfsOrder{
|
var outMainRefundIds = make(map[string]int64, 0)
|
||||||
VendorID: model.VendorIDTaoVegetable,
|
detail, err := api.QueryAfsOrderDetail(&request591.AlibabaWdkOrderRefundGetRequest{
|
||||||
AfsOrderID: refundSuccess.OutMainRefundId,
|
OrderFrom: utils.Int64ToPointer(tao_vegetable.ChannelCome),
|
||||||
VendorOrderID: orderStatus.RefVendorOrderID,
|
ShopId: nil,
|
||||||
VendorStoreID: refundSuccess.StoreId,
|
StoreId: utils.String2Pointer(refundSuccess.StoreId),
|
||||||
StoreID: 0,
|
RefundIds: &[]int64{utils.Str2Int64(refundSuccess.BizSubRefundId)},
|
||||||
AfsCreatedAt: orderStatus.StatusTime,
|
})
|
||||||
VendorAppealType: status, // 原始售后方式
|
if err != nil {
|
||||||
AppealType: model.AfsAppealTypeUserCancel, // 淘宝这个接口下发的只有用户取消
|
return tao_vegetable.CallBackResultInfo(err)
|
||||||
VendorReasonType: tao_vegetable.OrderStatusOnSaleCancel,
|
}
|
||||||
ReasonType: 0,
|
finalList, _ := dao.GetOrderRefundSkuList(db, []string{refundSuccess.OutMainRefundId})
|
||||||
ReasonDesc: "缺货调整,退款成功通知",
|
if len(finalList) != model.NO {
|
||||||
VendorOrgCode: api.GetVendorOrgCode(),
|
for _, f := range finalList {
|
||||||
|
for _, a := range *detail.Orders {
|
||||||
|
if f.SkuID == utils.Str2Int(*a.ItemCode) {
|
||||||
|
isCreate = false // 本地已经存在了记录
|
||||||
|
outMainRefundIds[*a.OutMainRefundId] = *a.RefundAmount
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
afsOrder.FreightUserMoney = 0 // 订单运费
|
|
||||||
afsOrder.AfsFreightMoney = 0 // 暂时未发现退货取件费用
|
|
||||||
afsOrder.BoxMoney = 0 // 餐盒费
|
|
||||||
afsOrder.TongchengFreightMoney = 0 // 同城配送费
|
|
||||||
afsOrder.SkuBoxMoney = 0 // 商品包装费
|
|
||||||
afsOrder.VendorStatus = orderStatus.VendorStatus // 退货状态
|
|
||||||
|
|
||||||
for _, v := range *scarceGoods {
|
// 本地已经存在了售后记录,直接修改售后状态,否则创建售后记录
|
||||||
var refundFee int64 = 0
|
if !isCreate {
|
||||||
skuDetail := tao_vegetable.GoodsScarceRefund{}
|
for afsOrderId, afsMoney := range outMainRefundIds {
|
||||||
if err := json.Unmarshal([]byte(*v.Attributes), &skuDetail); err != nil {
|
afs, _ := partner.CurOrderManager.LoadAfsOrder(afsOrderId, model.VendorIDTaoVegetable)
|
||||||
return tao_vegetable.CallBackResultInfo(err)
|
afs.VendorOrderID2 = refundSuccess.BizSubRefundId
|
||||||
|
afs.AfsFinishedAt = time.Now()
|
||||||
|
afs.Status = model.AfsOrderStatusFinished
|
||||||
|
afs.AfsTotalShopMoney = afsMoney
|
||||||
|
dao.UpdateEntity(db, afs, "VendorOrderID2", "AfsFinishedAt", "Status", "AfsTotalShopMoney")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
afsOrder = &model.AfsOrder{
|
||||||
|
VendorID: model.VendorIDTaoVegetable,
|
||||||
|
AfsOrderID: refundSuccess.OutMainRefundId,
|
||||||
|
VendorOrderID: orderStatus.RefVendorOrderID,
|
||||||
|
VendorOrderID2: refundSuccess.BizSubRefundId,
|
||||||
|
VendorStoreID: refundSuccess.StoreId,
|
||||||
|
StoreID: 0,
|
||||||
|
AfsCreatedAt: orderStatus.StatusTime,
|
||||||
|
VendorAppealType: status, // 原始售后方式
|
||||||
|
AppealType: model.AfsAppealTypeUserCancel, // 淘宝这个接口下发的只有用户取消
|
||||||
|
VendorReasonType: tao_vegetable.OrderStatusOnSaleCancel,
|
||||||
|
ReasonType: 0,
|
||||||
|
ReasonDesc: "缺货调整,退款成功通知",
|
||||||
|
VendorOrgCode: api.GetVendorOrgCode(),
|
||||||
|
}
|
||||||
|
afsOrder.FreightUserMoney = 0 // 订单运费
|
||||||
|
afsOrder.AfsFreightMoney = 0 // 暂时未发现退货取件费用
|
||||||
|
afsOrder.BoxMoney = 0 // 餐盒费
|
||||||
|
afsOrder.TongchengFreightMoney = 0 // 同城配送费
|
||||||
|
afsOrder.SkuBoxMoney = 0 // 商品包装费
|
||||||
|
afsOrder.VendorStatus = orderStatus.VendorStatus // 退货状态
|
||||||
|
|
||||||
|
for _, v := range *scarceGoods {
|
||||||
|
var refundFee int64 = 0
|
||||||
|
skuDetail := tao_vegetable.GoodsScarceRefund{}
|
||||||
|
if err := json.Unmarshal([]byte(*v.Attributes), &skuDetail); err != nil {
|
||||||
|
return tao_vegetable.CallBackResultInfo(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
orderSku := &model.OrderSkuFinancial{
|
||||||
|
Count: utils.Float64TwoInt(utils.Str2Float64(*v.RefundQuantity)),
|
||||||
|
VendorSkuID: *v.SkuCode,
|
||||||
|
SkuID: utils.Str2Int(*v.SkuCode),
|
||||||
|
Name: skuDetail.SkuName,
|
||||||
|
UserMoney: *v.RefundAmount,
|
||||||
|
PmSkuSubsidyMoney: 0, // 平台补贴商品
|
||||||
|
VendorOrderID: orderStatus.VendorOrderID,
|
||||||
|
VendorSubOrderID: *v.OutOrderId,
|
||||||
|
}
|
||||||
|
afsOrder.PmSkuSubsidyMoney += orderSku.PmSkuSubsidyMoney
|
||||||
|
afsOrder.Skus = append(afsOrder.Skus, orderSku)
|
||||||
|
refundFee += *v.RefundAmount
|
||||||
|
|
||||||
|
afsOrder.SkuUserMoney += refundFee
|
||||||
|
afsOrder.RefundType = model.AfsTypePartRefund
|
||||||
|
if afsOrder != nil {
|
||||||
|
//直接就来一个新的售后单,并且还是售后完成的
|
||||||
|
afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt
|
||||||
|
afsOrder.Flag = model.AfsOrderFlagAgreeUserRefund
|
||||||
|
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
orderSku := &model.OrderSkuFinancial{
|
|
||||||
Count: utils.Float64TwoInt(utils.Str2Float64(*v.RefundQuantity)),
|
|
||||||
VendorSkuID: *v.SkuCode,
|
|
||||||
SkuID: utils.Str2Int(*v.SkuCode),
|
|
||||||
Name: skuDetail.SkuName,
|
|
||||||
UserMoney: *v.RefundAmount,
|
|
||||||
PmSkuSubsidyMoney: 0, // 平台补贴商品
|
|
||||||
VendorOrderID: orderStatus.VendorOrderID,
|
|
||||||
VendorSubOrderID: *v.OutOrderId,
|
|
||||||
}
|
|
||||||
afsOrder.PmSkuSubsidyMoney += orderSku.PmSkuSubsidyMoney
|
|
||||||
afsOrder.Skus = append(afsOrder.Skus, orderSku)
|
|
||||||
refundFee += *v.RefundAmount
|
|
||||||
|
|
||||||
afsOrder.SkuUserMoney += refundFee
|
|
||||||
afsOrder.RefundType = model.AfsTypePartRefund
|
|
||||||
if afsOrder != nil {
|
|
||||||
//直接就来一个新的售后单,并且还是售后完成的
|
|
||||||
afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt
|
|
||||||
afsOrder.Flag = model.AfsOrderFlagAgreeUserRefund
|
|
||||||
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -209,7 +209,6 @@ func (p *PurchaseHandler) UpdateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) {
|
func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeSkuList []*dao.StoreSkuSyncInfo) (failedList []*partner.StoreSkuInfoWithErr, err error) {
|
||||||
globals.SugarLogger.Debugf("len CreateStoreSkus := %d", len(storeSkuList))
|
|
||||||
failedList, err = p.createOrUpdateStoreSkus(ctx, storeID, vendorStoreID, storeSkuList, true)
|
failedList, err = p.createOrUpdateStoreSkus(ctx, storeID, vendorStoreID, storeSkuList, true)
|
||||||
return failedList, err
|
return failedList, err
|
||||||
}
|
}
|
||||||
@@ -236,39 +235,26 @@ func (p *PurchaseHandler) createOrUpdateStoreSkus(ctx *jxcontext.Context, storeI
|
|||||||
func UpdateTaoVegetable(api *tao_vegetable.API, storeSkuList []*dao.StoreSkuSyncInfo, vendorStoreID string, storeID int, syncType string) (failedList []*partner.StoreSkuInfoWithErr, err error) {
|
func UpdateTaoVegetable(api *tao_vegetable.API, storeSkuList []*dao.StoreSkuSyncInfo, vendorStoreID string, storeID int, syncType string) (failedList []*partner.StoreSkuInfoWithErr, err error) {
|
||||||
param := &request585.AlibabaWdkSkuUpdateRequest{}
|
param := &request585.AlibabaWdkSkuUpdateRequest{}
|
||||||
updateSkuList := make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0)
|
updateSkuList := make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0)
|
||||||
//totalCount := len(storeSkuList)
|
|
||||||
for _, v := range storeSkuList {
|
for _, v := range storeSkuList {
|
||||||
price := utils.String2Pointer(utils.Float64ToStr(float64(v.VendorPrice) / float64(100)))
|
price := utils.String2Pointer(utils.Float64ToStr(float64(v.VendorPrice) / float64(100)))
|
||||||
updateSku := domain585.AlibabaWdkSkuUpdateSkuDo{
|
updateSku := domain585.AlibabaWdkSkuUpdateSkuDo{
|
||||||
OuCode: utils.String2Pointer(vendorStoreID),
|
OuCode: utils.String2Pointer(vendorStoreID),
|
||||||
SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)),
|
SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)),
|
||||||
SkuName: utils.String2Pointer(checkNameLength(v.SkuName)),
|
SkuName: utils.String2Pointer(checkNameLength(v.SkuName, v.Weight, v.Unit)),
|
||||||
MemberPrice: price,
|
SkuPrice: price, // 优先使用skuPrice 靠后SalePrice
|
||||||
SkuPrice: price, // 优先使用skuPrice 靠后SalePrice
|
CategoryCode: utils.String2Pointer(utils.Int2Str(v.CategoryID)),
|
||||||
SuggestedPrice: price, // 优先使用skuPrice 靠后SalePrice
|
MerchantCatCode: utils.String2Pointer(v.VendorCatID), // 优先使用 靠后 category_code
|
||||||
CategoryCode: utils.String2Pointer(utils.Int2Str(v.CategoryID)),
|
CleanSkuMemberPrice: utils.Int64ToPointer(model.YES),
|
||||||
MerchantCatCode: utils.String2Pointer(v.VendorCatID), // 优先使用 靠后 category_code
|
SubTitle: utils.String2Pointer("小时达"),
|
||||||
}
|
}
|
||||||
if v.MinOrderCount <= model.YES {
|
if v.MinOrderCount <= model.YES {
|
||||||
updateSku.PurchaseQuantity = utils.Int64ToPointer(model.YES) // 起购单位
|
updateSku.PurchaseQuantity = utils.Int64ToPointer(model.YES) // 起购单位
|
||||||
} else {
|
} else {
|
||||||
updateSku.PurchaseQuantity = utils.Int64ToPointer(int64(v.MinOrderCount)) // 起购单位
|
updateSku.PurchaseQuantity = utils.Int64ToPointer(int64(v.MinOrderCount)) // 起购单位
|
||||||
}
|
}
|
||||||
updateSku.SkuPicUrls = uploadImg(api, []string{v.Img, v.Img2, v.Img3, v.Img4, v.Img5, v.DescImg})
|
// 修改暂时不修改图片,保持效率
|
||||||
|
//updateSku.SkuPicUrls = uploadImg(api, []string{v.Img, v.Img2, v.Img3, v.Img4, v.Img5, v.DescImg})
|
||||||
updateSkuList = append(updateSkuList, updateSku)
|
updateSkuList = append(updateSkuList, updateSku)
|
||||||
//if (index+model.YES)%tao_vegetable.MAXHandleCount == model.NO || index+model.YES == totalCount {
|
|
||||||
// param.ParamList = &updateSkuList
|
|
||||||
// result, err := api.UpdateStoreSku(param)
|
|
||||||
// if err != nil {
|
|
||||||
// globals.SugarLogger.Debugf("UpdateStoreSku Tao Vegetable err : %s", err.Error())
|
|
||||||
// }
|
|
||||||
// // 记录失败的同步数据
|
|
||||||
// createFailedList, _ := SelectStoreSkuListByFoodList(storeSkuList, *result, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], syncType)
|
|
||||||
// failedList = append(failedList, createFailedList...)
|
|
||||||
// // 记录同步成功的数据
|
|
||||||
// param.ParamList = nil
|
|
||||||
// updateSkuList = make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0)
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
param.ParamList = &updateSkuList
|
param.ParamList = &updateSkuList
|
||||||
@@ -286,10 +272,8 @@ func UpdateTaoVegetable(api *tao_vegetable.API, storeSkuList []*dao.StoreSkuSync
|
|||||||
func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSkuList []*dao.StoreSkuSyncInfo, vendorStoreID string, storeID int, syncType string) (failedList []*partner.StoreSkuInfoWithErr, err error) {
|
func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSkuList []*dao.StoreSkuSyncInfo, vendorStoreID string, storeID int, syncType string) (failedList []*partner.StoreSkuInfoWithErr, err error) {
|
||||||
createPram := &request585.AlibabaWdkSkuAddRequest{}
|
createPram := &request585.AlibabaWdkSkuAddRequest{}
|
||||||
param := make([]domain585.AlibabaWdkSkuAddSkuDo, 0, 0)
|
param := make([]domain585.AlibabaWdkSkuAddSkuDo, 0, 0)
|
||||||
//totalCount := len(storeSkuList)
|
|
||||||
vendorSkuIdMap := make(map[string]string, 0)
|
vendorSkuIdMap := make(map[string]string, 0)
|
||||||
|
|
||||||
globals.SugarLogger.Debugf("storeSkuList := %d", len(storeSkuList))
|
|
||||||
for _, storeSku := range storeSkuList {
|
for _, storeSku := range storeSkuList {
|
||||||
price := utils.String2Pointer(utils.Float64ToStr(utils.Int64ToFloat64(storeSku.VendorPrice) / utils.Int64ToFloat64(100)))
|
price := utils.String2Pointer(utils.Float64ToStr(utils.Int64ToFloat64(storeSku.VendorPrice) / utils.Int64ToFloat64(100)))
|
||||||
sku := domain585.AlibabaWdkSkuAddSkuDo{
|
sku := domain585.AlibabaWdkSkuAddSkuDo{
|
||||||
@@ -308,14 +292,13 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku
|
|||||||
SaleUnit: utils.String2Pointer("份"),
|
SaleUnit: utils.String2Pointer("份"),
|
||||||
LifeStatus: utils.String2Pointer(tao_vegetable.CreateSkuLeafStatus),
|
LifeStatus: utils.String2Pointer(tao_vegetable.CreateSkuLeafStatus),
|
||||||
SaleSpec: utils.String2Pointer(fmt.Sprintf("%d %s*1%s", storeSku.Weight, "g", storeSku.Unit)),
|
SaleSpec: utils.String2Pointer(fmt.Sprintf("%d %s*1%s", storeSku.Weight, "g", storeSku.Unit)),
|
||||||
StepQuantity: utils.Int64ToPointer(model.YES), // 每次购买至少增加一个购买单位
|
StepQuantity: utils.Int64ToPointer(model.YES), // 每次购买至少增加一个购买单位
|
||||||
SubTitle: utils.String2Pointer("同城包邮"),
|
|
||||||
SubTitle1: utils.String2Pointer("一小时速达"),
|
|
||||||
OnlineSaleFlag: utils.Int64ToPointer(tao_vegetable.CreateOnlineSaleFlag), // 门店控制是否可见
|
OnlineSaleFlag: utils.Int64ToPointer(tao_vegetable.CreateOnlineSaleFlag), // 门店控制是否可见
|
||||||
|
SubTitle: utils.String2Pointer("小时达"),
|
||||||
|
SubTitle1: utils.String2Pointer("一小时速达"),
|
||||||
//DeliveryUnit: utils.String2Pointer(storeSku.Unit),
|
//DeliveryUnit: utils.String2Pointer(storeSku.Unit),
|
||||||
DeliveryUnit: utils.String2Pointer("份"),
|
DeliveryUnit: utils.String2Pointer("份"),
|
||||||
DeliverySpec: utils.String2Pointer(utils.Int2Str(model.YES)),
|
DeliverySpec: utils.String2Pointer(utils.Int2Str(model.YES)),
|
||||||
MemberPrice: price,
|
|
||||||
Storage: utils.String2Pointer(tao_vegetable.CreateStorage),
|
Storage: utils.String2Pointer(tao_vegetable.CreateStorage),
|
||||||
PickFloatRate: utils.String2Pointer(utils.Int2Str(model.NO)), // ? 0
|
PickFloatRate: utils.String2Pointer(utils.Int2Str(model.NO)), // ? 0
|
||||||
ForbidReceiveDays: utils.Int64ToPointer(tao_vegetable.CreateShelfLife), // ? 7
|
ForbidReceiveDays: utils.Int64ToPointer(tao_vegetable.CreateShelfLife), // ? 7
|
||||||
@@ -341,7 +324,7 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku
|
|||||||
if sku.SkuPicUrls == nil {
|
if sku.SkuPicUrls == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
sku.SkuName = utils.String2Pointer(checkNameLength(storeSku.Name))
|
sku.SkuName = utils.String2Pointer(checkNameLength(storeSku.Name, storeSku.Weight, storeSku.Unit))
|
||||||
|
|
||||||
if storeSku.MinOrderCount <= model.YES {
|
if storeSku.MinOrderCount <= model.YES {
|
||||||
sku.PurchaseQuantity = utils.Int64ToPointer(model.YES) // 起购单位
|
sku.PurchaseQuantity = utils.Int64ToPointer(model.YES) // 起购单位
|
||||||
@@ -370,28 +353,14 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
param = append(param, sku)
|
param = append(param, sku)
|
||||||
//if (index+model.YES)%tao_vegetable.MAXHandleCount == model.NO || index+model.YES == totalCount {
|
|
||||||
// createPram.ParamList = ¶m
|
|
||||||
// result, err := api.AddStoreSku(createPram)
|
|
||||||
// if err != nil {
|
|
||||||
// globals.SugarLogger.Debugf("创建淘鲜达商品异常:%s", err.Error())
|
|
||||||
// }
|
|
||||||
// // 记录失败的同步数据
|
|
||||||
// failedList2, vendorSkuIdMap2 := SelectStoreSkuListByFoodList(storeSkuList, *result, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], syncType)
|
|
||||||
// failedList = append(failedList, failedList2...)
|
|
||||||
// for k, v := range vendorSkuIdMap2 {
|
|
||||||
// vendorSkuIdMap[k] = v
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// createPram.ParamList = nil
|
|
||||||
// param = make([]domain585.AlibabaWdkSkuAddSkuDo, 0, 0)
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
createPram.ParamList = ¶m
|
createPram.ParamList = ¶m
|
||||||
result, err := api.AddStoreSku(createPram)
|
result, err := api.AddStoreSku(createPram)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
globals.SugarLogger.Debugf("创建淘鲜达商品异常:%s", err.Error())
|
globals.SugarLogger.Debugf("创建淘鲜达商品异常:%s", err.Error())
|
||||||
}
|
}
|
||||||
|
//ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", fmt.Sprintf("定时创建商品[门店id:%d],出入商品个数[%d]", storeID, len(storeSkuList)), utils.Format4Output(result, false))
|
||||||
|
|
||||||
// 记录失败的同步数据
|
// 记录失败的同步数据
|
||||||
failedList2, vendorSkuIdMap2 := SelectStoreSkuListByFoodList(storeSkuList, *result, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], syncType)
|
failedList2, vendorSkuIdMap2 := SelectStoreSkuListByFoodList(storeSkuList, *result, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], syncType)
|
||||||
failedList = append(failedList, failedList2...)
|
failedList = append(failedList, failedList2...)
|
||||||
@@ -411,13 +380,14 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku
|
|||||||
}
|
}
|
||||||
failedListStock := updateStoreSkusStockByCreate(ctx, api, storeID, vendorStoreID, successSku)
|
failedListStock := updateStoreSkusStockByCreate(ctx, api, storeID, vendorStoreID, successSku)
|
||||||
failedList = append(failedList, failedListStock...)
|
failedList = append(failedList, failedListStock...)
|
||||||
globals.SugarLogger.Debugf("failedList := %s", utils.Format4Output(failedList, false))
|
|
||||||
globals.SugarLogger.Debugf("storeSkuList := %s", utils.Format4Output(storeSkuList, false))
|
|
||||||
return failedList, nil
|
return failedList, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkNameLength(name string) string {
|
func checkNameLength(name string, weight int, uint string) string {
|
||||||
lastName := ""
|
lastName := ""
|
||||||
|
if !strings.Contains(name, uint) {
|
||||||
|
name = fmt.Sprintf("%s %d/%s", name, weight, uint)
|
||||||
|
}
|
||||||
if strings.Contains(name, "其它") {
|
if strings.Contains(name, "其它") {
|
||||||
name = strings.ReplaceAll(name, "其它", "")
|
name = strings.ReplaceAll(name, "其它", "")
|
||||||
}
|
}
|
||||||
@@ -465,7 +435,7 @@ func checkNameLength(name string) string {
|
|||||||
return lastName
|
return lastName
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return name[0:60]
|
return lastName[0:60]
|
||||||
}
|
}
|
||||||
|
|
||||||
func uploadImg(api *tao_vegetable.API, imgs []string) *string {
|
func uploadImg(api *tao_vegetable.API, imgs []string) *string {
|
||||||
@@ -510,19 +480,6 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v
|
|||||||
OnlineSaleFlag: utils.Int64ToPointer(tao_vegetable.CreateOfflineSaleFlag),
|
OnlineSaleFlag: utils.Int64ToPointer(tao_vegetable.CreateOfflineSaleFlag),
|
||||||
}
|
}
|
||||||
updateSkuList = append(updateSkuList, updateSku)
|
updateSkuList = append(updateSkuList, updateSku)
|
||||||
|
|
||||||
//if (index+model.YES)%tao_vegetable.MAXHandleCount == model.NO || (index+1) == len(storeSkuList) {
|
|
||||||
// param.ParamList = &updateSkuList
|
|
||||||
// result, err := api.UpdateStoreSku(param)
|
|
||||||
// if err != nil {
|
|
||||||
// globals.SugarLogger.Debugf("UpdateStoreSku Tao Vegetable err : %s", err.Error())
|
|
||||||
// }
|
|
||||||
// // 记录失败的同步数据
|
|
||||||
// createFailedList, _ := SelectStoreSkuListByFoodList(storeSkuList, *result, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], "删除商品(暂无接口,下架处理)")
|
|
||||||
// failedList = append(failedList, createFailedList...)
|
|
||||||
// param.ParamList = nil
|
|
||||||
// updateSkuList = make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0)
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
param.ParamList = &updateSkuList
|
param.ParamList = &updateSkuList
|
||||||
@@ -534,28 +491,6 @@ func (p *PurchaseHandler) DeleteStoreSkus(ctx *jxcontext.Context, storeID int, v
|
|||||||
createFailedList, _ := SelectStoreSkuListByFoodList(storeSkuList, *result, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], "删除商品(暂无接口,下架处理)")
|
createFailedList, _ := SelectStoreSkuListByFoodList(storeSkuList, *result, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], "删除商品(暂无接口,下架处理)")
|
||||||
failedList = append(failedList, createFailedList...)
|
failedList = append(failedList, createFailedList...)
|
||||||
return failedList, err
|
return failedList, err
|
||||||
//param := &request.AlibabaAxChannelSkuStatusUpdateRequest{ChannelSkuUpdateStatusReq: &domain.AlibabaAxChannelSkuStatusUpdateChannelSkuUpdateStatusReq{
|
|
||||||
// StoreId: utils.String2Pointer(vendorStoreID),
|
|
||||||
// ChannelCode: utils.String2Pointer(tao_vegetable.TaoVegetableChannelCode),
|
|
||||||
// OnlineSaleFlag: utils.Int64ToPointer(tao_vegetable.CreateIsOnline),
|
|
||||||
//}}
|
|
||||||
//var updateOffShelf = make([]tao_vegetable.VegetableResultList, 0, len(storeSkuList))
|
|
||||||
//for _, v := range storeSkuList {
|
|
||||||
// param.ChannelSkuUpdateStatusReq.SkuCode = utils.String2Pointer(utils.Int2Str(v.SkuID))
|
|
||||||
// // StoreSkuUpdateOffShelf 这个接口暂时有问题使用更新接口上下架
|
|
||||||
// if err = getAPI(getStoreVendorOrgCode(storeID), storeID, vendorStoreID).StoreSkuUpdateOffShelf(param); err != nil {
|
|
||||||
// updateOffShelf = append(updateOffShelf, tao_vegetable.VegetableResultList{
|
|
||||||
// ProductID: v.VendorSkuID,
|
|
||||||
// SkuID: utils.Int2Str(v.SkuID),
|
|
||||||
// ErrMsg: err.Error(),
|
|
||||||
// })
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
//failedList, _ = SelectStoreSkuListByFoodList(storeSkuList, updateOffShelf, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], "批量删除商品(暂时下架,无删除接口)")
|
|
||||||
//if len(failedList) > 0 {
|
|
||||||
// err = nil
|
|
||||||
//}
|
|
||||||
//return failedList, err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateStoreSkusStatus 批量更新商品上下架状态
|
// UpdateStoreSkusStatus 批量更新商品上下架状态
|
||||||
@@ -569,21 +504,10 @@ func (p *PurchaseHandler) UpdateStoreSkusStatus(ctx *jxcontext.Context, vendorOr
|
|||||||
OuCode: utils.String2Pointer(vendorStoreID),
|
OuCode: utils.String2Pointer(vendorStoreID),
|
||||||
SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)),
|
SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)),
|
||||||
OnlineSaleFlag: utils.Int64ToPointer(onlineStatus),
|
OnlineSaleFlag: utils.Int64ToPointer(onlineStatus),
|
||||||
|
SubTitle: utils.String2Pointer("小时达"),
|
||||||
|
//CleanSkuMemberPrice: utils.Int64ToPointer(model.YES),
|
||||||
}
|
}
|
||||||
updateSkuList = append(updateSkuList, updateSku)
|
updateSkuList = append(updateSkuList, updateSku)
|
||||||
|
|
||||||
//if (index+model.YES)%tao_vegetable.MAXHandleCount == model.NO || (index+1) == len(storeSkuList) {
|
|
||||||
// param.ParamList = &updateSkuList
|
|
||||||
// result, err := api.UpdateStoreSku(param)
|
|
||||||
// if err != nil {
|
|
||||||
// globals.SugarLogger.Debugf("UpdateStoreSku Tao Vegetable err : %s", err.Error())
|
|
||||||
// }
|
|
||||||
// // 记录失败的同步数据
|
|
||||||
// createFailedList, _ := SelectStoreSkuListByFoodList(storeSkuList, *result, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], "批量更新商品上下架")
|
|
||||||
// failedList = append(failedList, createFailedList...)
|
|
||||||
// param.ParamList = nil
|
|
||||||
// updateSkuList = make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0)
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
param.ParamList = &updateSkuList
|
param.ParamList = &updateSkuList
|
||||||
@@ -608,23 +532,9 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg
|
|||||||
SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)),
|
SkuCode: utils.String2Pointer(utils.Int2Str(v.SkuID)),
|
||||||
SkuPrice: price,
|
SkuPrice: price,
|
||||||
CleanSkuMemberPrice: utils.Int64ToPointer(model.YES),
|
CleanSkuMemberPrice: utils.Int64ToPointer(model.YES),
|
||||||
SuggestedPrice: price,
|
SubTitle: utils.String2Pointer("小时达"),
|
||||||
MemberPrice: price,
|
|
||||||
}
|
}
|
||||||
updateSkuList = append(updateSkuList, updateSku)
|
updateSkuList = append(updateSkuList, updateSku)
|
||||||
|
|
||||||
//if (index+model.YES)%tao_vegetable.MAXHandleCount == model.NO || (index+1) == len(storeSkuList) {
|
|
||||||
// param.ParamList = &updateSkuList
|
|
||||||
// result, err := api.UpdateStoreSku(param)
|
|
||||||
// if err != nil {
|
|
||||||
// globals.SugarLogger.Debugf("UpdateStoreSku Tao Vegetable err : %s", err.Error())
|
|
||||||
// }
|
|
||||||
// // 记录失败的同步数据
|
|
||||||
// createFailedList, _ := SelectStoreSkuListByFoodList(storeSkuList, *result, storeID, model.VendorChineseNames[model.VendorIDTaoVegetable], "修改商品价格")
|
|
||||||
// failedList = append(failedList, createFailedList...)
|
|
||||||
// param.ParamList = nil
|
|
||||||
// updateSkuList = make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0)
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
param.ParamList = &updateSkuList
|
param.ParamList = &updateSkuList
|
||||||
result, err := api.UpdateStoreSku(param)
|
result, err := api.UpdateStoreSku(param)
|
||||||
@@ -926,21 +836,6 @@ func (p *PurchaseHandler) UpdateStoreSkusSpecTag(ctx *jxcontext.Context, vendorO
|
|||||||
}
|
}
|
||||||
updateSkuList = append(updateSkuList, updateSku)
|
updateSkuList = append(updateSkuList, updateSku)
|
||||||
|
|
||||||
//if (index+model.YES)%tao_vegetable.MAXHandleCount == model.NO || (index+1) == len(storeSkuList) {
|
|
||||||
// param.ParamList = &updateSkuList
|
|
||||||
// result, err := api.UpdateStoreSku(param)
|
|
||||||
// if err != nil {
|
|
||||||
// globals.SugarLogger.Debugf("UpdateStoreSku Tao Vegetable err : %s", err.Error())
|
|
||||||
// }
|
|
||||||
// // 记录失败的同步数据
|
|
||||||
// for _, v := range *result {
|
|
||||||
// if v.ErrMsg != "" {
|
|
||||||
// errList = append(errList, v.ErrMsg)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// param.ParamList = nil
|
|
||||||
// updateSkuList = make([]domain585.AlibabaWdkSkuUpdateSkuDo, 0, 0)
|
|
||||||
//}
|
|
||||||
}
|
}
|
||||||
param.ParamList = &updateSkuList
|
param.ParamList = &updateSkuList
|
||||||
result, err := api.UpdateStoreSku(param)
|
result, err := api.UpdateStoreSku(param)
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ func (c *OrderController) QueryOrderWaybillFeeInfo() {
|
|||||||
// @Param token header string true "认证token"
|
// @Param token header string true "认证token"
|
||||||
// @Param vendorOrderID formData string true "订单ID"
|
// @Param vendorOrderID formData string true "订单ID"
|
||||||
// @Param vendorID formData int true "订单所属的厂商ID"
|
// @Param vendorID formData int true "订单所属的厂商ID"
|
||||||
// @Param courierVendorIDs formData string false "运单厂商ID(缺省全部)"
|
// @Param courierVendorIDs formData string false "运单厂商ID(缺省全部)"
|
||||||
// @Param maxDeliveryFee formData int false "最高限价(为0时为缺省最大值)"
|
// @Param maxDeliveryFee formData int false "最高限价(为0时为缺省最大值)"
|
||||||
// @Param forceCreate formData bool false "是否强制创建(忽略订单状态检查及其它参数)"
|
// @Param forceCreate formData bool false "是否强制创建(忽略订单状态检查及其它参数)"
|
||||||
// @Success 200 {object} controllers.CallResult
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
|||||||
Reference in New Issue
Block a user