Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop
This commit is contained in:
@@ -2686,16 +2686,17 @@ func UpdateTiktokShopTotalMoney() {
|
|||||||
func UpdateTaoSettleInfo() {
|
func UpdateTaoSettleInfo() {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
|
|
||||||
storeMaps, err := dao.GetStoresMapList(db, []int{model.VendorIDTaoVegetable}, nil, nil, 0, 0, "", "", "")
|
storeMaps, err := dao.GetStoresMapList(db, []int{model.VendorIDTaoVegetable}, []int{667321}, nil, -9, -1, "", "", "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
globals.SugarLogger.Debugf("GetStoresMapList ========== %s", utils.Format4Output(storeMaps, false))
|
||||||
timeStart := time.Now().Add(-72 * time.Hour)
|
timeStart := time.Now().Add(-72 * time.Hour)
|
||||||
startTime := time.Date(timeStart.Year(), timeStart.Month(), timeStart.Day(), 0, 0, 0, 0, timeStart.Location())
|
startTime := time.Date(timeStart.Year(), timeStart.Month(), timeStart.Day(), 0, 0, 0, 0, timeStart.Location())
|
||||||
timeEnd := time.Now()
|
timeEnd := time.Now()
|
||||||
endTiem := time.Date(timeEnd.Year(), timeEnd.Month(), timeEnd.Day()-1, 23, 59, 59, 0, timeStart.Location())
|
endTiem := time.Date(timeEnd.Year(), timeEnd.Month(), timeEnd.Day()-1, 23, 59, 59, 0, timeStart.Location())
|
||||||
for _, v := range storeMaps {
|
for _, v := range storeMaps {
|
||||||
|
globals.SugarLogger.Debugf("=============UpdateTaoSettleInfo := %s", utils.Format4Output(v, false))
|
||||||
settleInfo, err := tao.GetOrderTotalShopMoney(v.VendorOrgCode, v.VendorStoreID, startTime, endTiem)
|
settleInfo, err := tao.GetOrderTotalShopMoney(v.VendorOrgCode, v.VendorStoreID, startTime, endTiem)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
globals.SugarLogger.Errorf("获取淘鲜达结算信息异常 := %v", err)
|
globals.SugarLogger.Errorf("获取淘鲜达结算信息异常 := %v", err)
|
||||||
@@ -2707,6 +2708,7 @@ func UpdateTaoSettleInfo() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for orderId2, settle := range settleInfo {
|
for orderId2, settle := range settleInfo {
|
||||||
|
globals.SugarLogger.Debugf("=============settleInfo := %s,%s", utils.Format4Output(orderId2, false), settle)
|
||||||
goodsOrder, err := partner.CurOrderManager.LoadOrder2(orderId2, model.VendorIDTaoVegetable)
|
goodsOrder, err := partner.CurOrderManager.LoadOrder2(orderId2, model.VendorIDTaoVegetable)
|
||||||
if err != nil || goodsOrder == nil {
|
if err != nil || goodsOrder == nil {
|
||||||
globals.SugarLogger.Debugf("门店[%d:%s],订单查询异常[%s:%v]", v.StoreID, v.StoreName, orderId2, err)
|
globals.SugarLogger.Debugf("门店[%d:%s],订单查询异常[%s:%v]", v.StoreID, v.StoreName, orderId2, err)
|
||||||
|
|||||||
@@ -1515,7 +1515,8 @@ func (s *DefScheduler) updateBillsInfo(savedOrderInfo *WatchOrderInfo, bill *mod
|
|||||||
func (s *DefScheduler) autoPickupGood(savedOrderInfo *WatchOrderInfo) (err error) {
|
func (s *DefScheduler) autoPickupGood(savedOrderInfo *WatchOrderInfo) (err error) {
|
||||||
order := savedOrderInfo.order
|
order := savedOrderInfo.order
|
||||||
store, _ := dao.GetStoreDetail(dao.GetDB(), order.JxStoreID, order.VendorID, "")
|
store, _ := dao.GetStoreDetail(dao.GetDB(), order.JxStoreID, order.VendorID, "")
|
||||||
flag := (model.IsOrderDeliveryByStore(order) || model.IsOrderDeliveryBySelf(order)) && store.AutoPickup == model.YES
|
//flag := (model.IsOrderDeliveryByStore(order) || model.IsOrderDeliveryBySelf(order)) && store.AutoPickup == model.YES
|
||||||
|
flag := store.AutoPickup == model.YES && store.VendorStatus == model.StoreStatusOpened // 只要打开了就可以自动拣货
|
||||||
if err = s.PickupGoods(order, flag, "autoPickup"); err == nil {
|
if err = s.PickupGoods(order, flag, "autoPickup"); err == nil {
|
||||||
order.DeliveryFlag |= model.OrderDeliveryFlagMaskAutoPickup
|
order.DeliveryFlag |= model.OrderDeliveryFlagMaskAutoPickup
|
||||||
partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag"})
|
partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag"})
|
||||||
|
|||||||
@@ -3653,9 +3653,9 @@ func GetStoreCategoryMap(ctx *jxcontext.Context, parentID, level int, storeID in
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if ctx.GetLoginType() != auth2.AuthTypePassword && ctx.GetLoginType() != weixin.AuthTypeMP && ctx.GetLoginType() != weixin.AuthTypeMini && ctx.GetLoginType() != weixin.AuthTypeWxApp && ctx.GetLoginType() != weixin.AuthTypeWxAppCaishi && ctx.GetLoginType() != auth2.AuthTypeMobile {
|
//if ctx.GetLoginType() != auth2.AuthTypePassword && ctx.GetLoginType() != weixin.AuthTypeMP && ctx.GetLoginType() != weixin.AuthTypeMini && ctx.GetLoginType() != weixin.AuthTypeWxApp && ctx.GetLoginType() != weixin.AuthTypeWxAppCaishi && ctx.GetLoginType() != auth2.AuthTypeMobile {
|
||||||
return storeCatMaps, err
|
// return storeCatMaps, err
|
||||||
}
|
//}
|
||||||
//表示没有门店分类
|
//表示没有门店分类
|
||||||
if len(storeCatMaps) == 0 {
|
if len(storeCatMaps) == 0 {
|
||||||
storeCatMaps, err = dao.GetCategoriesForStore(db, parentID, 0, nil)
|
storeCatMaps, err = dao.GetCategoriesForStore(db, parentID, 0, nil)
|
||||||
|
|||||||
@@ -1744,6 +1744,7 @@ func UpdateStoresSkus(ctx *jxcontext.Context, causeFlag int, storeIDs []int, sku
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
flag, _ := doStoreSkuAudit(ctx, storeIDs, skuBindInfos)
|
flag, _ := doStoreSkuAudit(ctx, storeIDs, skuBindInfos)
|
||||||
|
globals.SugarLogger.Debugf("========falg := %s", utils.Format4Output(flag, false))
|
||||||
if !flag {
|
if !flag {
|
||||||
var num int64
|
var num int64
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
@@ -5941,6 +5942,7 @@ func doStoreSkuAudit(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*Sto
|
|||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
storeSkuAudit := &model.StoreSkuAudit{
|
storeSkuAudit := &model.StoreSkuAudit{
|
||||||
StoreID: storeID,
|
StoreID: storeID,
|
||||||
NameID: skuBindInfo.NameID,
|
NameID: skuBindInfo.NameID,
|
||||||
|
|||||||
@@ -203,10 +203,10 @@ func Init() {
|
|||||||
"09:35:00",
|
"09:35:00",
|
||||||
})
|
})
|
||||||
/// 更新淘鲜达结算信息
|
/// 更新淘鲜达结算信息
|
||||||
ScheduleTimerFunc("UpdateTiktokShopTotalMoney", func() {
|
ScheduleTimerFunc("UpdateTaoTotalMoney", func() {
|
||||||
orderman.UpdateTaoSettleInfo()
|
orderman.UpdateTaoSettleInfo()
|
||||||
}, []string{
|
}, []string{
|
||||||
"23:20:00",
|
"17:35:00",
|
||||||
})
|
})
|
||||||
|
|
||||||
// 每分钟轮询一次,推送骑手信息
|
// 每分钟轮询一次,推送骑手信息
|
||||||
@@ -282,149 +282,338 @@ func Init() {
|
|||||||
// 淘鲜达更新门店商品 ,接口收费暂不使用
|
// 淘鲜达更新门店商品 ,接口收费暂不使用
|
||||||
if beego.BConfig.RunMode != "jxgy" {
|
if beego.BConfig.RunMode != "jxgy" {
|
||||||
ScheduleTimerFunc("RefreshSyncSkuList_tao", func() {
|
ScheduleTimerFunc("RefreshSyncSkuList_tao", func() {
|
||||||
var beijin = []int{
|
var hangzhou = []int{
|
||||||
//102683,
|
// 杭州
|
||||||
//102542,
|
//669073,
|
||||||
//102514,
|
//668930,
|
||||||
//102382,
|
//668922,
|
||||||
//102182,
|
//668916,
|
||||||
//102178,
|
//668915,
|
||||||
//102173,
|
//668756,
|
||||||
//102098,
|
//668705,
|
||||||
//102094,
|
//668702,
|
||||||
//102080,
|
//668681,
|
||||||
//102072,
|
//668422,
|
||||||
//102069,
|
//668417,
|
||||||
//101870,
|
//668191,
|
||||||
//101869,
|
//667996,
|
||||||
//101868,
|
//667991,
|
||||||
//101867,
|
//667985,
|
||||||
//101866,
|
//667553,
|
||||||
//101865,
|
//667044,
|
||||||
//100956,
|
//103083,
|
||||||
//100930,
|
//103073,
|
||||||
//100871,
|
//103033,
|
||||||
//100786,
|
//103032,
|
||||||
//100746,
|
//102963,
|
||||||
//100744,
|
//102923,
|
||||||
//100726,
|
//102785,
|
||||||
//100705,
|
//102594,
|
||||||
//100400,
|
//102578,
|
||||||
//100111,
|
//102329,
|
||||||
//100108,
|
//101734,
|
||||||
//100106,
|
//100229,
|
||||||
//100104,
|
//100224,
|
||||||
//100103,
|
//100217,
|
||||||
//100102,
|
//100215,
|
||||||
//100100,
|
//100210,
|
||||||
//100097,
|
//100206,
|
||||||
//100096,
|
//// 武汉
|
||||||
//100095,
|
//668352, 103200, 102958, 100887, 100236,
|
||||||
//100093,
|
//// 广州
|
||||||
//100092,
|
668871, 668602, 668575, 668262, 103425, 101755, 101176, 100557, 100369, 100361, 100351, 100350,
|
||||||
//100089,
|
//成都
|
||||||
//100087,
|
669172,
|
||||||
//100086,
|
669171,
|
||||||
//100085,
|
669170,
|
||||||
//100082,
|
669169,
|
||||||
//100079,
|
669168,
|
||||||
//100078,
|
669165,
|
||||||
//669158,
|
669164,
|
||||||
//668691,
|
669163,
|
||||||
//668673,
|
669162,
|
||||||
//668282,
|
669157,
|
||||||
//667447,
|
669156,
|
||||||
//667354,
|
669155,
|
||||||
//667321,
|
669154,
|
||||||
//667319,
|
669153,
|
||||||
//667316,
|
669150,
|
||||||
//667269,
|
669149,
|
||||||
//667268,
|
669148,
|
||||||
//667267,
|
669147,
|
||||||
//667260,
|
669146,
|
||||||
//667132,
|
669144,
|
||||||
//667094,
|
669141,
|
||||||
//667030,
|
669139,
|
||||||
//666965,
|
669138,
|
||||||
//666714,
|
669137,
|
||||||
//666708,
|
669134,
|
||||||
//666705,
|
669132,
|
||||||
//103437,
|
669127,
|
||||||
//103349,
|
669124,
|
||||||
//103123,
|
669122,
|
||||||
//103121,
|
669121,
|
||||||
//103106,
|
669120,
|
||||||
//103038,
|
669119,
|
||||||
//103028,
|
669114,
|
||||||
//103019,
|
669113,
|
||||||
//102831,
|
669111,
|
||||||
//102751,
|
669110,
|
||||||
//上海
|
669109,
|
||||||
668462,
|
669108,
|
||||||
668276,
|
669107,
|
||||||
668180,
|
669106,
|
||||||
667320,
|
669103,
|
||||||
667237,
|
669100,
|
||||||
667231,
|
669099,
|
||||||
667068,
|
669098,
|
||||||
667036,
|
669097,
|
||||||
666678,
|
669096,
|
||||||
103191,
|
669095,
|
||||||
103074,
|
669094,
|
||||||
103065,
|
669093,
|
||||||
103051,
|
669092,
|
||||||
103050,
|
669091,
|
||||||
103037,
|
669087,
|
||||||
103029,
|
669086,
|
||||||
103018,
|
669085,
|
||||||
103002,
|
669084,
|
||||||
102999,
|
669083,
|
||||||
102969,
|
669082,
|
||||||
102966,
|
669079,
|
||||||
102951,
|
669078,
|
||||||
102946,
|
669077,
|
||||||
102939,
|
669075,
|
||||||
102938,
|
669074,
|
||||||
102934,
|
669072,
|
||||||
102933,
|
669070,
|
||||||
102930,
|
669067,
|
||||||
102924,
|
669064,
|
||||||
102920,
|
669063,
|
||||||
102908,
|
669062,
|
||||||
102903,
|
669060,
|
||||||
102561,
|
669059,
|
||||||
102293,
|
669056,
|
||||||
100946,
|
669055,
|
||||||
100945,
|
669054,
|
||||||
100943,
|
669050,
|
||||||
100935,
|
669049,
|
||||||
100905,
|
669047,
|
||||||
100720,
|
669046,
|
||||||
100325,
|
669045,
|
||||||
100324,
|
669042,
|
||||||
100309,
|
669041,
|
||||||
100299,
|
669038,
|
||||||
100296,
|
669036,
|
||||||
100292,
|
669035,
|
||||||
100290,
|
669033,
|
||||||
|
669032,
|
||||||
|
669031,
|
||||||
|
669027,
|
||||||
|
669025,
|
||||||
|
669024,
|
||||||
|
669022,
|
||||||
|
669021,
|
||||||
|
669020,
|
||||||
|
669017,
|
||||||
|
669015,
|
||||||
|
669014,
|
||||||
|
669012,
|
||||||
|
669009,
|
||||||
|
669007,
|
||||||
|
669002,
|
||||||
|
669000,
|
||||||
|
668999,
|
||||||
|
668997,
|
||||||
|
668996,
|
||||||
|
668993,
|
||||||
|
668988,
|
||||||
|
668986,
|
||||||
|
668984,
|
||||||
|
668966,
|
||||||
|
668963,
|
||||||
|
668961,
|
||||||
|
668958,
|
||||||
|
668954,
|
||||||
|
668950,
|
||||||
|
668948,
|
||||||
|
668946,
|
||||||
|
668943,
|
||||||
|
668938,
|
||||||
|
668928,
|
||||||
|
668910,
|
||||||
|
668907,
|
||||||
|
668900,
|
||||||
|
668897,
|
||||||
|
668896,
|
||||||
|
668891,
|
||||||
|
668889,
|
||||||
|
668883,
|
||||||
|
668882,
|
||||||
|
668868,
|
||||||
|
668860,
|
||||||
|
668855,
|
||||||
|
668853,
|
||||||
|
668850,
|
||||||
|
668849,
|
||||||
|
668843,
|
||||||
|
668838,
|
||||||
|
668807,
|
||||||
|
668802,
|
||||||
|
668784,
|
||||||
|
668773,
|
||||||
|
668771,
|
||||||
|
668767,
|
||||||
|
668766,
|
||||||
|
668755,
|
||||||
|
668749,
|
||||||
|
668728,
|
||||||
|
668724,
|
||||||
|
668722,
|
||||||
|
668721,
|
||||||
|
668716,
|
||||||
|
668706,
|
||||||
|
668704,
|
||||||
|
668699,
|
||||||
|
668697,
|
||||||
|
668695,
|
||||||
|
668693,
|
||||||
|
668692,
|
||||||
|
668688,
|
||||||
|
668686,
|
||||||
|
668682,
|
||||||
|
668680,
|
||||||
|
668679,
|
||||||
|
668678,
|
||||||
|
668672,
|
||||||
|
668666,
|
||||||
|
668662,
|
||||||
|
668660,
|
||||||
|
668659,
|
||||||
|
668656,
|
||||||
|
668655,
|
||||||
|
668654,
|
||||||
|
668649,
|
||||||
|
668648,
|
||||||
|
668643,
|
||||||
|
668642,
|
||||||
|
668640,
|
||||||
|
668636,
|
||||||
|
668632,
|
||||||
|
668631,
|
||||||
|
668629,
|
||||||
|
668624,
|
||||||
|
668616,
|
||||||
|
668613,
|
||||||
|
668608,
|
||||||
|
668594,
|
||||||
|
668548,
|
||||||
|
668543,
|
||||||
|
668540,
|
||||||
|
668537,
|
||||||
|
668530,
|
||||||
|
668512,
|
||||||
|
668258,
|
||||||
|
668257,
|
||||||
|
668256,
|
||||||
|
668254,
|
||||||
|
668203,
|
||||||
|
668190,
|
||||||
|
668186,
|
||||||
|
668185,
|
||||||
|
668182,
|
||||||
|
668170,
|
||||||
|
668169,
|
||||||
|
668168,
|
||||||
|
668166,
|
||||||
|
668165,
|
||||||
|
668164,
|
||||||
|
668157,
|
||||||
|
668156,
|
||||||
|
668125,
|
||||||
|
668121,
|
||||||
|
668095,
|
||||||
|
668094,
|
||||||
|
668071,
|
||||||
|
667959,
|
||||||
|
667745,
|
||||||
|
667744,
|
||||||
|
667743,
|
||||||
|
667563,
|
||||||
|
667562,
|
||||||
|
667561,
|
||||||
|
667560,
|
||||||
|
667559,
|
||||||
|
667558,
|
||||||
|
667556,
|
||||||
|
667420,
|
||||||
|
667332,
|
||||||
|
667308,
|
||||||
|
667305,
|
||||||
|
667304,
|
||||||
|
667299,
|
||||||
|
667292,
|
||||||
|
667285,
|
||||||
|
667281,
|
||||||
|
667278,
|
||||||
|
667263,
|
||||||
|
667001,
|
||||||
|
666975,
|
||||||
|
666677,
|
||||||
|
666667,
|
||||||
|
666666,
|
||||||
|
103408,
|
||||||
|
103184,
|
||||||
|
103174,
|
||||||
|
103127,
|
||||||
|
103113,
|
||||||
|
102925,
|
||||||
|
102740,
|
||||||
|
102736,
|
||||||
|
102630,
|
||||||
|
102383,
|
||||||
|
102180,
|
||||||
|
101942,
|
||||||
|
101897,
|
||||||
|
101875,
|
||||||
|
101036,
|
||||||
|
100840,
|
||||||
|
100743,
|
||||||
|
100654,
|
||||||
|
100471,
|
||||||
|
100144,
|
||||||
|
100135,
|
||||||
|
100129,
|
||||||
|
100126,
|
||||||
|
100123,
|
||||||
|
100115,
|
||||||
}
|
}
|
||||||
syncStoreSkuTao(beijin)
|
syncStoreSkuTao(hangzhou)
|
||||||
}, []string{
|
}, []string{
|
||||||
"00:30:00",
|
"00:30:00",
|
||||||
|
"01:30:00",
|
||||||
"02:30:00",
|
"02:30:00",
|
||||||
|
"03:30:00",
|
||||||
"04:30:00",
|
"04:30:00",
|
||||||
|
"05:30:00",
|
||||||
|
"06:30:00",
|
||||||
"07:30:00",
|
"07:30:00",
|
||||||
"09:00:00",
|
"08:30:00",
|
||||||
"10:40:00",
|
"09:35:00",
|
||||||
"12:55:00",
|
"10:30:00",
|
||||||
|
"11:30:00",
|
||||||
|
"12:30:00",
|
||||||
"13:30:00",
|
"13:30:00",
|
||||||
"14:30:00",
|
"14:30:00",
|
||||||
"15:30:00",
|
"15:30:00",
|
||||||
"16:30:00",
|
"16:30:00",
|
||||||
"17:30:00",
|
"17:30:00",
|
||||||
"18:40:00",
|
"18:30:00",
|
||||||
|
"19:30:00",
|
||||||
"20:30:00",
|
"20:30:00",
|
||||||
|
"21:30:00",
|
||||||
"22:30:00",
|
"22:30:00",
|
||||||
|
"23:30:00",
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -754,9 +943,6 @@ func syncStoreSku() {
|
|||||||
tasksch.HandleTask(task, nil, true).Run()
|
tasksch.HandleTask(task, nil, true).Run()
|
||||||
}
|
}
|
||||||
|
|
||||||
//var storeIds = []int{
|
|
||||||
// 668802, 668787, 668785, 668777, 668769, 668776, 668770, 668760, 668758, 668756, 668748, 668727, 668723, 300372, 668715, 668717, 668707, 668667, 668668, 800306, 668628, 668681, 668673, 668544, 668619, 668614, 668600, 102217, 667405, 100988, 668353, 103022, 668283, 667208, 668266, 102101, 100610, 103201, 103459, 667154, 102691, 666747, 103417, 666744, 666864, 102186, 667271, 101750, 101031, 667452, 666942, 666927, 100068, 668339, 668306, 668310, 667352, 102544, 667014, 102280, 667134, 102945, 103062, 102443, 668218, 666913, 102742, 668360, 102851, 668580, 667252, 666746, 100455, 667037, 667317, 667473, 666816, 103063, 666800, 668210, 103079, 668200, 668176, 667462, 102426, 667116, 668309, 100193, 666828, 666944, 102852, 666900, 668521, 668373, 102596, 668444, 667071, 668264, 668395, 668090, 102172, 102790, 101935, 667480, 102479, 103197, 102703, 668386, 668229, 666948, 101008, 668249, 102374, 667464, 668468, 102490, 666756, 102976, 667467, 666707, 668270, 667429, 103098, 668135, 668523, 666907, 668407, 668358, 668385, 101134, 100887, 668568, 668003, 101763, 100829, 667476, 101078, 668099, 668503, 666807, 100167, 100433, 668107, 667262, 100849, 102771, 667173, 666847, 667485, 102821, 666955, 101107, 667229, 102950, 103435, 102497, 666916, 668163, 668061, 102147, 668248, 667066, 102853, 667944, 100002, 102865, 668219, 100184, 666840, 667057, 668202, 102223, 667101, 667128, 101110, 668511, 103151, 667093, 668154, 666905, 668268, 666929, 102935, 102074, 668174, 668217, 102350, 666940, 102980, 668117, 668384, 100067, 101916, 102987, 667250, 668570, 667466, 101099, 667082, 100229, 667553, 100215, 667991, 100217, 103073, 103074, 103037, 668180, 668583, 668462, 667891, 666811, 666736, 668173, 100267, 102962, 102752, 668284, 667296, 668175, 667806, 103103, 103084, 668453, 102970, 103184, 668548, 101036, 668182, 668157, 668257, 668166, 668543, 668170, 668071, 667744, 102925, 100115, 668093, 667745, 668164, 668156, 667743, 668165, 103408, 103038, 667268, 667094, 667321, 100726, 102333, 666742, 101775, 100028, 668304, 667305, 101942, 668575, 101755, 103425, 102833, 100699, 103190, 666711, 668396, 100334, 102533, 100336, 101995, 102320, 101842, 102519, 101999, 102433, 100920, 102594, 102951, 668506, 666667, 102963, 300034, 667212, 100236, 101909, 668541, 102857, 668417, 102955, 103031, 668545, 666790, 100328}
|
|
||||||
|
|
||||||
func syncStoreSkuTiktok() {
|
func syncStoreSkuTiktok() {
|
||||||
//syncFlag := 0 | model.SyncFlagSaleMask
|
//syncFlag := 0 | model.SyncFlagSaleMask
|
||||||
syncFlag := 0
|
syncFlag := 0
|
||||||
@@ -795,8 +981,8 @@ func syncStoreSkuTao(beijin []int) {
|
|||||||
switch step {
|
switch step {
|
||||||
case 0:
|
case 0:
|
||||||
if beego.BConfig.RunMode != "jxgy" {
|
if beego.BConfig.RunMode != "jxgy" {
|
||||||
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "淘鲜达消息:", utils.Format4Output(beijin[syncLen:syncLen+5], false))
|
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "淘鲜达消息:", utils.Format4Output(beijin[syncLen:syncLen+3], false))
|
||||||
_, err = cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, []int{model.VendorIDTaoVegetable}, beijin[syncLen:syncLen+5], false, nil, nil, syncFlag, true, true)
|
_, err = cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, []int{model.VendorIDTaoVegetable}, beijin[syncLen:syncLen+3], false, nil, nil, syncFlag, true, true)
|
||||||
errList.AddErr(err)
|
errList.AddErr(err)
|
||||||
}
|
}
|
||||||
case 1:
|
case 1:
|
||||||
@@ -807,7 +993,7 @@ func syncStoreSkuTao(beijin []int) {
|
|||||||
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
|
syncLen += 3
|
||||||
}
|
}
|
||||||
|
|
||||||
func doDailyWork2() {
|
func doDailyWork2() {
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package netspider
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/ditu"
|
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
@@ -16,21 +15,6 @@ func init() {
|
|||||||
testinit.Init()
|
testinit.Init()
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGetStoreListByCoordinate(t *testing.T) {
|
|
||||||
storeList, err := getStoreListByCoordinates(jxcontext.AdminCtx, nil, 3, "成都",
|
|
||||||
[]*ditu.Coordinate{
|
|
||||||
&ditu.Coordinate{
|
|
||||||
Lng: 104.057218,
|
|
||||||
Lat: 30.6949,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
t.Fatal(err)
|
|
||||||
}
|
|
||||||
t.Log(utils.Format4Output(storeList, false))
|
|
||||||
t.Log(len(storeList))
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestGetCityShops(t *testing.T) {
|
func TestGetCityShops(t *testing.T) {
|
||||||
shopList, err := GetCityShops(jxcontext.AdminCtx, nil, []int{0, 3}, 510100, 5000, 3000)
|
shopList, err := GetCityShops(jxcontext.AdminCtx, nil, []int{0, 3}, 510100, 5000, 3000)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -207,7 +207,7 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
|
|||||||
case model.VendorIDMTWM: // 美团订单
|
case model.VendorIDMTWM: // 美团订单
|
||||||
if handler := partner.GetPurchaseOrderHandlerFromVendorID(v.VendorID); handler != nil {
|
if handler := partner.GetPurchaseOrderHandlerFromVendorID(v.VendorID); handler != nil {
|
||||||
if err := handler.GetOrderRider(v.VendorOrgCode, v.VendorStoreID, utils.Struct2Map(riderInfo, "", true)); err != nil {
|
if err := handler.GetOrderRider(v.VendorOrgCode, v.VendorStoreID, utils.Struct2Map(riderInfo, "", true)); err != nil {
|
||||||
globals.SugarLogger.Errorf("Error pushing meituan rider information :%s--%s--%v", v.VendorOrderID, utils.Format4Output(riderInfo, false), err)
|
globals.SugarLogger.Debugf("Error pushing meituan rider information :%s--%s--%v", v.VendorOrderID, utils.Format4Output(riderInfo, false), err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case model.VendorIDELM: // 饿了么
|
case model.VendorIDELM: // 饿了么
|
||||||
@@ -233,7 +233,7 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
|
|||||||
if orderId == "" {
|
if orderId == "" {
|
||||||
if handler := partner.GetPurchaseOrderHandlerFromVendorID(v.VendorID); handler != nil {
|
if handler := partner.GetPurchaseOrderHandlerFromVendorID(v.VendorID); handler != nil {
|
||||||
if err := handler.GetOrderRider(v.VendorOrgCode, v.VendorStoreID, utils.Struct2Map(riderInfo, "", true)); err != nil {
|
if err := handler.GetOrderRider(v.VendorOrgCode, v.VendorStoreID, utils.Struct2Map(riderInfo, "", true)); err != nil {
|
||||||
globals.SugarLogger.Errorf("Error pushing meituan rider information :%s--%s--%v", v.VendorOrderID, utils.Format4Output(riderInfo, false), err)
|
globals.SugarLogger.Debugf("Error pushing meituan rider information :%s--%s--%v", v.VendorOrderID, utils.Format4Output(riderInfo, false), err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else { // 订单状态改变 [配送中/用户签收/用户拒收]
|
} else { // 订单状态改变 [配送中/用户签收/用户拒收]
|
||||||
@@ -243,7 +243,7 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
globals.SugarLogger.Errorf("Order source error, non system order: %s", v.VendorOrderID)
|
globals.SugarLogger.Debugf("Order source error, non system order: %s", v.VendorOrderID)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -442,6 +442,7 @@ func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) {
|
func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) {
|
||||||
|
isSelfDelivery = model.IsOrderDeliveryByStore(order) || model.IsOrderDeliveryBySelf(order)
|
||||||
if !isSelfDelivery && globals.EnableJdStoreWrite {
|
if !isSelfDelivery && globals.EnableJdStoreWrite {
|
||||||
_, err = getAPI(order.VendorOrgCode).OrderJDZBDelivery(order.VendorOrderID, userName)
|
_, err = getAPI(order.VendorOrgCode).OrderJDZBDelivery(order.VendorOrderID, userName)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -514,6 +514,7 @@ func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) {
|
func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) {
|
||||||
|
isSelfDelivery = model.IsOrderDeliveryByStore(order) || model.IsOrderDeliveryBySelf(order)
|
||||||
if !isSelfDelivery {
|
if !isSelfDelivery {
|
||||||
if globals.EnableMtwmStoreWrite {
|
if globals.EnableMtwmStoreWrite {
|
||||||
// err = api.MtwmAPI.OrderConfirm(utils.Str2Int64(order.VendorOrderID))
|
// err = api.MtwmAPI.OrderConfirm(utils.Str2Int64(order.VendorOrderID))
|
||||||
|
|||||||
@@ -528,19 +528,19 @@ func (c *PurchaseHandler) CanSwitch2SelfDeliver(order *model.GoodsOrder) (isCan
|
|||||||
func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error) {
|
func (c *PurchaseHandler) Swtich2SelfDeliver(order *model.GoodsOrder, userName string) (err error) {
|
||||||
param, err := orderStatusChangeNotice(order, tao_vegetable.OrderStatusCallRider)
|
param, err := orderStatusChangeNotice(order, tao_vegetable.OrderStatusCallRider)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").DeliveryFinish(param); err != nil {
|
if err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").DeliveryFinish(param); err != nil && !strings.Contains(err.Error(), "当前状态不允许更新") {
|
||||||
globals.SugarLogger.Debugf("Swtich2SelfDeliver 出库失败可能是BizSubOrderId 没填写 : %s", err.Error())
|
globals.SugarLogger.Debugf("Swtich2SelfDeliver 出库失败可能是BizSubOrderId 没填写 : %s", err.Error())
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
return err
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Swtich2SelfDelivered 订单送达
|
// Swtich2SelfDelivered 订单送达
|
||||||
func (c *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName string) (err error) {
|
func (c *PurchaseHandler) Swtich2SelfDelivered(order *model.GoodsOrder, userName string) (err error) {
|
||||||
return err
|
param := OrderStatusChangeDelivery(order, tao_vegetable.OrderStatusDeliveryOver)
|
||||||
|
return getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").DeliveryFinish(param)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SelfDeliverDelivering 自配送订单配送中
|
// SelfDeliverDelivering 自配送订单配送中
|
||||||
|
|||||||
@@ -82,60 +82,38 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
|||||||
queryOrderDetailParam := &request591.AlibabaAelophyOrderGetRequest{OrderGetRequest: &domain591.AlibabaAelophyOrderGetOrderGetRequest{
|
queryOrderDetailParam := &request591.AlibabaAelophyOrderGetRequest{OrderGetRequest: &domain591.AlibabaAelophyOrderGetOrderGetRequest{
|
||||||
StoreId: utils.String2Pointer(refundData.StoreId),
|
StoreId: utils.String2Pointer(refundData.StoreId),
|
||||||
}}
|
}}
|
||||||
order, err := partner.CurOrderManager.LoadOrder2(refundData.OutOrderId, model.VendorIDTaoVegetable)
|
|
||||||
if err != nil {
|
queryOrderDetailParam.OrderGetRequest.BizOrderId = utils.Int64ToPointer(utils.Str2Int64(orderStatus.RefVendorOrderID))
|
||||||
globals.SugarLogger.Debugf("用户申请售后时,通过售后外部渠道订单号获取主订单失败:%s", err.Error())
|
|
||||||
return tao_vegetable.CallBackResultInfo(err)
|
|
||||||
}
|
|
||||||
if order == nil {
|
|
||||||
globals.SugarLogger.Debugf("数据库订单查询失败,订单号异常 :%s", refundData.OutOrderId)
|
|
||||||
return tao_vegetable.CallBackResultInfo(errors.New("订单号异常"))
|
|
||||||
}
|
|
||||||
queryOrderDetailParam.OrderGetRequest.BizOrderId = utils.Int64ToPointer(utils.Str2Int64(order.VendorOrderID))
|
|
||||||
skuList, err := api.QueryOrderDetail(queryOrderDetailParam)
|
skuList, err := api.QueryOrderDetail(queryOrderDetailParam)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return tao_vegetable.CallBackResultInfo(err)
|
return tao_vegetable.CallBackResultInfo(err)
|
||||||
}
|
}
|
||||||
if *skuList.OrderStatus != tao_vegetable.OrderStatusSuccess {
|
|
||||||
// 用户申请售后,只有订单完成之后才可以!现在是售中取消和售后取消都在走这个接口
|
|
||||||
// 所以只处理售后取消的消息
|
|
||||||
return tao_vegetable.CallBackResultInfo(nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
afsOrder = &model.AfsOrder{
|
|
||||||
VendorID: model.VendorIDTaoVegetable,
|
|
||||||
AfsOrderID: orderStatus.VendorOrderID,
|
|
||||||
VendorOrderID: orderStatus.RefVendorOrderID,
|
|
||||||
VendorStoreID: refundData.StoreId,
|
|
||||||
StoreID: 0,
|
|
||||||
AfsCreatedAt: orderStatus.StatusTime,
|
|
||||||
|
|
||||||
VendorAppealType: status, // 原始售后方式
|
|
||||||
AppealType: model.AfsAppealTypeUserCancel, // 淘宝这个接口下发的只有用户取消
|
|
||||||
VendorReasonType: refundData.RefundReason,
|
|
||||||
ReasonType: 0,
|
|
||||||
ReasonDesc: refundData.RefundReason,
|
|
||||||
ReasonImgList: utils.LimitUTF8StringLen(refundData.RefundPictures, 1024),
|
|
||||||
VendorOrgCode: api.GetVendorOrgCode(),
|
|
||||||
}
|
|
||||||
|
|
||||||
refundIds := make([]int64, 0, 0)
|
|
||||||
bizOrderIds := make([]int64, len(refundData.SubRefundOrders))
|
|
||||||
for _, v := range refundData.SubRefundOrders {
|
|
||||||
bizOrderIds = append(bizOrderIds, utils.Str2Int64(v.OutSubOrderId))
|
|
||||||
}
|
|
||||||
refundIds = append(refundIds, utils.Str2Int64(refundData.BizRefundId))
|
|
||||||
|
|
||||||
afsOrder.FreightUserMoney = 0 // 订单运费
|
|
||||||
afsOrder.AfsFreightMoney = 0 // 暂时未发现退货取件费用
|
|
||||||
afsOrder.BoxMoney = 0 // 餐盒费
|
|
||||||
afsOrder.TongchengFreightMoney = 0 // 同城配送费
|
|
||||||
afsOrder.SkuBoxMoney = 0 // 商品包装费
|
|
||||||
afsOrder.VendorStatus = orderStatus.VendorStatus // 退货状态
|
|
||||||
|
|
||||||
var refundSkuCount int64 = 0 // 子订单申请退款的商品数
|
|
||||||
var orderSkuCount int64 = 0 // 子订单购买的商品数
|
|
||||||
for _, refundSku := range refundData.SubRefundOrders { // 本次退款订单
|
for _, refundSku := range refundData.SubRefundOrders { // 本次退款订单
|
||||||
|
afsOrder = &model.AfsOrder{
|
||||||
|
VendorID: model.VendorIDTaoVegetable,
|
||||||
|
VendorOrderID: orderStatus.RefVendorOrderID,
|
||||||
|
VendorStoreID: refundData.StoreId,
|
||||||
|
StoreID: 0,
|
||||||
|
AfsCreatedAt: orderStatus.StatusTime,
|
||||||
|
VendorAppealType: status, // 原始售后方式
|
||||||
|
AppealType: model.AfsAppealTypeUserCancel, // 淘宝这个接口下发的只有用户取消
|
||||||
|
VendorReasonType: refundData.RefundReason,
|
||||||
|
ReasonType: 0,
|
||||||
|
ReasonDesc: refundData.RefundReason,
|
||||||
|
ReasonImgList: utils.LimitUTF8StringLen(refundData.RefundPictures, 1024),
|
||||||
|
VendorOrgCode: api.GetVendorOrgCode(),
|
||||||
|
VendorOrderID2: refundData.RefundId,
|
||||||
|
}
|
||||||
|
afsOrder.FreightUserMoney = 0 // 订单运费
|
||||||
|
afsOrder.AfsFreightMoney = 0 // 暂时未发现退货取件费用
|
||||||
|
afsOrder.BoxMoney = 0 // 餐盒费
|
||||||
|
afsOrder.TongchengFreightMoney = 0 // 同城配送费
|
||||||
|
afsOrder.SkuBoxMoney = 0 // 商品包装费
|
||||||
|
afsOrder.VendorStatus = orderStatus.VendorStatus // 退货状态
|
||||||
|
|
||||||
|
var refundSkuCount int64 = 0 // 子订单申请退款的商品数
|
||||||
|
var orderSkuCount int64 = 0 // 子订单购买的商品数
|
||||||
refundSkuCount += refundSku.RefundAmount
|
refundSkuCount += refundSku.RefundAmount
|
||||||
for _, sku := range *skuList.SubOrderResponseList { // 总订单
|
for _, sku := range *skuList.SubOrderResponseList { // 总订单
|
||||||
if refundSku.OutSubOrderId == *sku.OutSubOrderId {
|
if refundSku.OutSubOrderId == *sku.OutSubOrderId {
|
||||||
@@ -152,26 +130,42 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
|||||||
afsOrder.PmSkuSubsidyMoney += orderSku.PmSkuSubsidyMoney
|
afsOrder.PmSkuSubsidyMoney += orderSku.PmSkuSubsidyMoney
|
||||||
afsOrder.Skus = append(afsOrder.Skus, orderSku)
|
afsOrder.Skus = append(afsOrder.Skus, orderSku)
|
||||||
orderSkuCount += utils.Float64TwoInt64(*sku.BuySaleQuantity)
|
orderSkuCount += utils.Float64TwoInt64(*sku.BuySaleQuantity)
|
||||||
|
afsOrder.VendorOrderID = utils.Int64ToStr(*skuList.BizOrderId)
|
||||||
|
afsOrder.AfsOrderID = utils.Int64ToStr(*sku.BizSubOrderId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if refundSkuCount == orderSkuCount && refundData.RefundFee == *skuList.PayFee { // 全退
|
|
||||||
afsOrder.RefundType = model.AfsTypeFullRefund
|
|
||||||
} else {
|
|
||||||
afsOrder.RefundType = model.AfsTypePartRefund
|
|
||||||
}
|
|
||||||
afsOrder.SkuUserMoney += refundData.RefundFee
|
|
||||||
|
|
||||||
if afsOrder != nil {
|
if refundSkuCount == orderSkuCount && refundData.RefundFee == *skuList.PayFee { // 全退
|
||||||
|
afsOrder.RefundType = model.AfsTypeFullRefund
|
||||||
|
} else {
|
||||||
|
afsOrder.RefundType = model.AfsTypePartRefund
|
||||||
|
}
|
||||||
|
afsOrder.SkuUserMoney += refundData.RefundFee
|
||||||
|
|
||||||
|
afs2, _ := partner.CurOrderManager.LoadAfsOrder(afsOrder.AfsOrderID, afsOrder.VendorID)
|
||||||
|
if afs2 != nil {
|
||||||
|
_, err = dao.DeleteEntity(db, afsOrder, "VendorOrderID", "AfsOrderID", "VendorID")
|
||||||
|
_, err = dao.DeleteEntity(db, &model.OrderSkuFinancial{
|
||||||
|
VendorOrderID: afsOrder.VendorOrderID,
|
||||||
|
VendorID: afsOrder.VendorID,
|
||||||
|
IsAfsOrder: 1,
|
||||||
|
AfsOrderID: afsOrder.AfsOrderID,
|
||||||
|
}, "VendorOrderID", "VendorID", "IsAfsOrder", "AfsOrderID")
|
||||||
|
afsOrder.ReasonDesc += "(拒绝退款后,用户再次申请)"
|
||||||
|
}
|
||||||
//直接就来一个新的售后单,并且还是售后完成的
|
//直接就来一个新的售后单,并且还是售后完成的
|
||||||
if orderStatus.Status == model.AfsOrderStatusFinished {
|
if orderStatus.Status == model.AfsOrderStatusFinished {
|
||||||
afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt
|
afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt
|
||||||
}
|
}
|
||||||
|
orderStatus.RefVendorOrderID = afsOrder.VendorOrderID
|
||||||
|
orderStatus.VendorOrderID = afsOrder.AfsOrderID
|
||||||
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
||||||
}
|
}
|
||||||
|
|
||||||
case tao_vegetable.OrderStatusCancelAfs:
|
case tao_vegetable.OrderStatusCancelAfs:
|
||||||
|
globals.SugarLogger.Debugf("用户取消售后----------- %s", utils.Format4Output(msg, false))
|
||||||
// 删除售后单
|
// 删除售后单
|
||||||
afsOrder, err := dao.GetAfsOrders(db, model.VendorIDTaoVegetable, orderStatus.RefVendorOrderID, orderStatus.VendorOrderID)
|
afsOrder, err := dao.GetAfsOrders(db, model.VendorIDTaoVegetable, orderStatus.RefVendorOrderID, "")
|
||||||
if err != nil || afsOrder == nil {
|
if err != nil || afsOrder == nil {
|
||||||
globals.SugarLogger.Debugf("用户取消售后单,获取之前生成的售后单失败")
|
globals.SugarLogger.Debugf("用户取消售后单,获取之前生成的售后单失败")
|
||||||
return tao_vegetable.CallBackResultInfo(err)
|
return tao_vegetable.CallBackResultInfo(err)
|
||||||
@@ -180,27 +174,27 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
|||||||
cancelMsg := msg.(*tao_vegetable.UserCancelRefundApply)
|
cancelMsg := msg.(*tao_vegetable.UserCancelRefundApply)
|
||||||
for _, v := range afsOrder {
|
for _, v := range afsOrder {
|
||||||
// 商家驳回,会发出用户撤销的回调通知,不管他
|
// 商家驳回,会发出用户撤销的回调通知,不管他
|
||||||
if v.AfsOrderID == cancelMsg.RefundId && v.Flag == model.AfsOrderFlagRefuseUserRefund {
|
if v.VendorOrderID2 != cancelMsg.RefundId {
|
||||||
return tao_vegetable.CallBackResultInfo(nil)
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
// 用户撤销未处理的售后订单
|
// 用户撤销未处理的售后订单
|
||||||
if v.AfsOrderID == cancelMsg.RefundId && v.Flag == 0 {
|
if v.Flag == 0 {
|
||||||
// 下面处理用户撤销售后
|
// 下面处理用户撤销售后
|
||||||
if err = utils.CallFuncLogError(func() error {
|
if err = utils.CallFuncLogError(func() error {
|
||||||
_, err = dao.DeleteEntity(db, v, "VendorOrderID", "VendorID")
|
_, err = dao.DeleteEntity(db, v, "VendorOrderID", "AfsOrderID", "VendorID")
|
||||||
return err
|
return err
|
||||||
}, "SaveAfsOrder delete AfsOrder, afsOrderID:%s", v.AfsOrderID); err != nil {
|
}, "SaveAfsOrder delete AfsOrder, afsOrderID:%s", v.AfsOrderID); err != nil {
|
||||||
return tao_vegetable.CallBackResultInfo(err)
|
return tao_vegetable.CallBackResultInfo(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 删除售后商品
|
// 删除售后商品
|
||||||
if err = utils.CallFuncLogError(func() error {
|
if err = utils.CallFuncLogError(func() error {
|
||||||
_, err = dao.DeleteEntity(db, &model.OrderSkuFinancial{
|
_, err = dao.DeleteEntity(db, &model.OrderSkuFinancial{
|
||||||
VendorOrderID: v.VendorOrderID,
|
VendorOrderID: v.VendorOrderID,
|
||||||
VendorID: v.VendorID,
|
VendorID: v.VendorID,
|
||||||
IsAfsOrder: 1,
|
IsAfsOrder: 1,
|
||||||
}, "VendorOrderID", "VendorID", "IsAfsOrder")
|
AfsOrderID: v.AfsOrderID,
|
||||||
|
}, "VendorOrderID", "VendorID", "IsAfsOrder", "AfsOrderID")
|
||||||
return err
|
return err
|
||||||
}, "SaveAfsOrder delete OrderSkuFinancial, afsOrderID:%s", v.AfsOrderID); err != nil {
|
}, "SaveAfsOrder delete OrderSkuFinancial, afsOrderID:%s", v.AfsOrderID); err != nil {
|
||||||
return tao_vegetable.CallBackResultInfo(err)
|
return tao_vegetable.CallBackResultInfo(err)
|
||||||
@@ -212,6 +206,7 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
|||||||
// 你这边没有响应那么就不会退钱给用户,就会造成客诉。为什么不接售中取消呢
|
// 你这边没有响应那么就不会退钱给用户,就会造成客诉。为什么不接售中取消呢
|
||||||
case tao_vegetable.OrderStatusOnSaleCancel:
|
case tao_vegetable.OrderStatusOnSaleCancel:
|
||||||
onSaleMsg := msg.(*tao_vegetable.OnSaleCancel)
|
onSaleMsg := msg.(*tao_vegetable.OnSaleCancel)
|
||||||
|
globals.SugarLogger.Debugf("=========售中取消: %s", utils.Format4Output(msg, false))
|
||||||
var afsOrder *model.AfsOrder
|
var afsOrder *model.AfsOrder
|
||||||
var api = getAPI("", 0, onSaleMsg.PartCancelRequest.StoreId)
|
var api = getAPI("", 0, onSaleMsg.PartCancelRequest.StoreId)
|
||||||
queryOrderDetailParam := &request591.AlibabaAelophyOrderGetRequest{OrderGetRequest: &domain591.AlibabaAelophyOrderGetOrderGetRequest{
|
queryOrderDetailParam := &request591.AlibabaAelophyOrderGetRequest{OrderGetRequest: &domain591.AlibabaAelophyOrderGetOrderGetRequest{
|
||||||
@@ -223,75 +218,78 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
|||||||
return tao_vegetable.CallBackResultInfo(err)
|
return tao_vegetable.CallBackResultInfo(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
afsOrder = &model.AfsOrder{
|
for _, v1 := range onSaleMsg.PartCancelRequest.SubOrders {
|
||||||
VendorID: model.VendorIDTaoVegetable,
|
afsOrder = &model.AfsOrder{
|
||||||
AfsOrderID: onSaleMsg.PartCancelRequest.IdempotentId,
|
VendorID: model.VendorIDTaoVegetable,
|
||||||
VendorOrderID: orderStatus.RefVendorOrderID,
|
AfsOrderID: utils.Int64ToStr(v1.BizSubOrderId),
|
||||||
VendorStoreID: onSaleMsg.PartCancelRequest.StoreId,
|
VendorOrderID: orderStatus.RefVendorOrderID,
|
||||||
StoreID: 0,
|
VendorStoreID: onSaleMsg.PartCancelRequest.StoreId,
|
||||||
AfsCreatedAt: orderStatus.StatusTime,
|
StoreID: 0,
|
||||||
VendorAppealType: status, // 原始售后方式
|
AfsCreatedAt: orderStatus.StatusTime,
|
||||||
AppealType: model.AfsAppealTypeUserCancel, // 淘宝这个接口下发的只有用户取消
|
VendorAppealType: status, // 原始售后方式
|
||||||
VendorReasonType: tao_vegetable.OrderStatusOnSaleCancel,
|
AppealType: model.AfsAppealTypeUserCancel, // 淘宝这个接口下发的只有用户取消
|
||||||
ReasonType: 0,
|
VendorReasonType: tao_vegetable.OrderStatusOnSaleCancel,
|
||||||
ReasonDesc: "售中取消:订单未打包,或者长时间为送到!响应成功直接退款",
|
ReasonType: 0,
|
||||||
VendorOrgCode: api.GetVendorOrgCode(),
|
ReasonDesc: "售中取消:订单未打包,或者长时间为送到!响应成功直接退款",
|
||||||
}
|
VendorOrgCode: api.GetVendorOrgCode(),
|
||||||
afsOrder.FreightUserMoney = 0 // 订单运费
|
}
|
||||||
afsOrder.AfsFreightMoney = 0 // 暂时未发现退货取件费用
|
afsOrder.FreightUserMoney = 0 // 订单运费
|
||||||
afsOrder.BoxMoney = 0 // 餐盒费
|
afsOrder.AfsFreightMoney = 0 // 暂时未发现退货取件费用
|
||||||
afsOrder.TongchengFreightMoney = 0 // 同城配送费
|
afsOrder.BoxMoney = 0 // 餐盒费
|
||||||
afsOrder.SkuBoxMoney = 0 // 商品包装费
|
afsOrder.TongchengFreightMoney = 0 // 同城配送费
|
||||||
afsOrder.VendorStatus = orderStatus.VendorStatus // 退货状态
|
afsOrder.SkuBoxMoney = 0 // 商品包装费
|
||||||
|
afsOrder.VendorStatus = orderStatus.VendorStatus // 退货状态
|
||||||
|
|
||||||
ifAfsTypeFullRefund := false
|
ifAfsTypeFullRefund := false
|
||||||
var refundFee int64 = 0
|
var refundFee int64 = 0
|
||||||
for _, v := range *orderDetail.SubOrderResponseList {
|
for _, v := range *orderDetail.SubOrderResponseList {
|
||||||
for _, v2 := range onSaleMsg.PartCancelRequest.SubOrders {
|
for _, v2 := range onSaleMsg.PartCancelRequest.SubOrders {
|
||||||
if *v.BizSubOrderId == v2.BizSubOrderId {
|
if *v.BizSubOrderId == v2.BizSubOrderId {
|
||||||
orderSku := &model.OrderSkuFinancial{
|
orderSku := &model.OrderSkuFinancial{
|
||||||
Count: utils.Float64TwoInt(*v.BuySaleQuantity),
|
Count: utils.Float64TwoInt(*v.BuySaleQuantity),
|
||||||
VendorSkuID: *v.SkuCode,
|
VendorSkuID: *v.SkuCode,
|
||||||
SkuID: utils.Str2Int(*v.SkuCode),
|
SkuID: utils.Str2Int(*v.SkuCode),
|
||||||
Name: *v.SkuName,
|
Name: *v.SkuName,
|
||||||
UserMoney: *v.OriginalFee,
|
UserMoney: *v.OriginalFee,
|
||||||
PmSkuSubsidyMoney: *v.DiscountPlatformFee, // 平台补贴商品
|
PmSkuSubsidyMoney: *v.DiscountPlatformFee, // 平台补贴商品
|
||||||
VendorOrderID: orderStatus.VendorOrderID,
|
VendorOrderID: orderStatus.VendorOrderID,
|
||||||
VendorSubOrderID: *v.OutSubOrderId,
|
VendorSubOrderID: *v.OutSubOrderId,
|
||||||
|
}
|
||||||
|
afsOrder.PmSkuSubsidyMoney += orderSku.PmSkuSubsidyMoney
|
||||||
|
afsOrder.Skus = append(afsOrder.Skus, orderSku)
|
||||||
|
refundFee += *v.OriginalFee
|
||||||
}
|
}
|
||||||
afsOrder.PmSkuSubsidyMoney += orderSku.PmSkuSubsidyMoney
|
|
||||||
afsOrder.Skus = append(afsOrder.Skus, orderSku)
|
|
||||||
refundFee += *v.OriginalFee
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
if len(onSaleMsg.PartCancelRequest.SubOrders) == len(*orderDetail.SubOrderResponseList) {
|
||||||
if len(onSaleMsg.PartCancelRequest.SubOrders) == len(*orderDetail.SubOrderResponseList) {
|
ifAfsTypeFullRefund = true
|
||||||
ifAfsTypeFullRefund = true
|
}
|
||||||
|
|
||||||
|
afsOrder.SkuUserMoney += refundFee
|
||||||
|
if ifAfsTypeFullRefund { // 全退
|
||||||
|
afsOrder.RefundType = model.AfsTypeFullRefund
|
||||||
|
afsOrder.SkuUserMoney += *orderDetail.PostFee
|
||||||
|
afsOrder.Skus[len(afsOrder.Skus)-1].UserMoney += *orderDetail.PostFee
|
||||||
|
} else {
|
||||||
|
afsOrder.RefundType = model.AfsTypePartRefund
|
||||||
|
}
|
||||||
|
|
||||||
|
if afsOrder != nil {
|
||||||
|
//直接就来一个新的售后单,并且还是售后完成的
|
||||||
|
afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt
|
||||||
|
afsOrder.Flag = model.AfsOrderFlagAgreeUserRefund
|
||||||
|
orderStatus.VendorOrderID = afsOrder.AfsOrderID
|
||||||
|
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
afsOrder.SkuUserMoney += refundFee
|
|
||||||
if ifAfsTypeFullRefund { // 全退
|
|
||||||
afsOrder.RefundType = model.AfsTypeFullRefund
|
|
||||||
afsOrder.SkuUserMoney += *orderDetail.PostFee
|
|
||||||
afsOrder.Skus[len(afsOrder.Skus)-1].UserMoney += *orderDetail.PostFee
|
|
||||||
} else {
|
|
||||||
afsOrder.RefundType = model.AfsTypePartRefund
|
|
||||||
}
|
|
||||||
|
|
||||||
if afsOrder != nil {
|
|
||||||
//直接就来一个新的售后单,并且还是售后完成的
|
|
||||||
afsOrder.AfsFinishedAt = afsOrder.AfsCreatedAt
|
|
||||||
afsOrder.Flag = model.AfsOrderFlagAgreeUserRefund
|
|
||||||
err = partner.CurOrderManager.OnAfsOrderNew(afsOrder, orderStatus)
|
|
||||||
}
|
|
||||||
case tao_vegetable.OrderStatusRefundSuccess:
|
case tao_vegetable.OrderStatusRefundSuccess:
|
||||||
|
globals.SugarLogger.Debugf("=========售后成功: %s", utils.Format4Output(msg, false))
|
||||||
// 用户退款成功回调,缺货拣货时,送达回触发.此时并没有售后单
|
// 用户退款成功回调,缺货拣货时,送达回触发.此时并没有售后单
|
||||||
if scarceGoods != nil {
|
if scarceGoods != nil {
|
||||||
refundSuccess := msg.(*tao_vegetable.RefundOrderFinish)
|
refundSuccess := msg.(*tao_vegetable.RefundOrderFinish)
|
||||||
var afsOrder *model.AfsOrder
|
var afsOrder *model.AfsOrder
|
||||||
var api = getAPI("", 0, refundSuccess.StoreId)
|
var api = getAPI("", 0, refundSuccess.StoreId)
|
||||||
var isCreate = true
|
|
||||||
var outMainRefundIds = make(map[string]int64, 0)
|
|
||||||
detail, err := api.QueryAfsOrderDetail(&request591.AlibabaWdkOrderRefundGetRequest{
|
detail, err := api.QueryAfsOrderDetail(&request591.AlibabaWdkOrderRefundGetRequest{
|
||||||
OrderFrom: utils.Int64ToPointer(tao_vegetable.ChannelCome),
|
OrderFrom: utils.Int64ToPointer(tao_vegetable.ChannelCome),
|
||||||
ShopId: nil,
|
ShopId: nil,
|
||||||
@@ -301,84 +299,70 @@ func (c *PurchaseHandler) onAfsOrderMsg(status string, msg interface{}) (retVal
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return tao_vegetable.CallBackResultInfo(err)
|
return tao_vegetable.CallBackResultInfo(err)
|
||||||
}
|
}
|
||||||
finalList, _ := dao.GetOrderRefundSkuList(db, []string{refundSuccess.OutMainRefundId})
|
|
||||||
if len(finalList) != model.NO {
|
for _, v := range *detail.Orders {
|
||||||
for _, f := range finalList {
|
afs, _ := partner.CurOrderManager.LoadAfsOrder(utils.Int64ToStr(*v.OriginOrderId), model.VendorIDTaoVegetable)
|
||||||
for _, a := range *detail.Orders {
|
if afs != nil {
|
||||||
if f.SkuID == utils.Str2Int(*a.ItemCode) {
|
afsOrder = &model.AfsOrder{
|
||||||
isCreate = false // 本地已经存在了记录
|
VendorID: model.VendorIDTaoVegetable,
|
||||||
outMainRefundIds[*a.OutMainRefundId] = *a.RefundAmount
|
AfsOrderID: utils.Int64ToStr(*v.OriginOrderId),
|
||||||
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
}
|
|
||||||
|
|
||||||
// 本地已经存在了售后记录,直接修改售后状态,否则创建售后记录
|
|
||||||
if !isCreate {
|
|
||||||
for afsOrderId, afsMoney := range outMainRefundIds {
|
|
||||||
afs, _ := partner.CurOrderManager.LoadAfsOrder(afsOrderId, model.VendorIDTaoVegetable)
|
|
||||||
afs.VendorOrderID2 = refundSuccess.BizSubRefundId
|
afs.VendorOrderID2 = refundSuccess.BizSubRefundId
|
||||||
afs.AfsFinishedAt = time.Now()
|
afs.AfsFinishedAt = time.Now()
|
||||||
afs.Status = model.AfsOrderStatusFinished
|
afs.Status = model.AfsOrderStatusFinished
|
||||||
afs.AfsTotalShopMoney = afsMoney
|
afs.AfsTotalShopMoney = *v.RefundAmount
|
||||||
dao.UpdateEntity(db, afs, "VendorOrderID2", "AfsFinishedAt", "Status", "AfsTotalShopMoney")
|
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)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|
||||||
@@ -418,66 +402,62 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(status string, msg interface{})
|
|||||||
switch status {
|
switch status {
|
||||||
case tao_vegetable.OrderStatusApplyAfs: // 用户申请售后
|
case tao_vegetable.OrderStatusApplyAfs: // 用户申请售后
|
||||||
refundData := msg.(*tao_vegetable.UserApplyRefundCallBack)
|
refundData := msg.(*tao_vegetable.UserApplyRefundCallBack)
|
||||||
orderStatus.RefVendorOrderID = refundData.OutOrderId
|
|
||||||
orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusApplyAfs, "用户申请取消")
|
orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusApplyAfs, "用户申请取消")
|
||||||
orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusApplyAfs)
|
orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusApplyAfs)
|
||||||
orderStatus.StatusTime = time.Now()
|
orderStatus.StatusTime = time.Now()
|
||||||
orderStatus.Remark = refundData.Remarks
|
orderStatus.Remark = refundData.Remarks
|
||||||
orderStatus.VendorOrderID = refundData.RefundId
|
//orderStatus.VendorOrderID = refundData.RefundId
|
||||||
order, _ := partner.CurOrderManager.LoadOrder2(orderStatus.RefVendorOrderID, model.VendorIDTaoVegetable)
|
|
||||||
if order != nil {
|
order, _ := partner.CurOrderManager.LoadOrder2(refundData.OutOrderId, model.VendorIDTaoVegetable)
|
||||||
orderStatus.RefVendorOrderID = order.VendorOrderID
|
orderStatus.RefVendorOrderID = order.VendorOrderID
|
||||||
}
|
|
||||||
case tao_vegetable.OrderStatusCancelAfs: // 用户取消售后
|
case tao_vegetable.OrderStatusCancelAfs: // 用户取消售后
|
||||||
refundData := msg.(*tao_vegetable.UserCancelRefundApply)
|
refundData := msg.(*tao_vegetable.UserCancelRefundApply)
|
||||||
orderStatus.RefVendorOrderID = refundData.OutOrderId
|
|
||||||
orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusCancelAfs, "用户取消售后申请")
|
orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusCancelAfs, "用户取消售后申请")
|
||||||
orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusCancelAfs)
|
orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusCancelAfs)
|
||||||
orderStatus.StatusTime = time.Now()
|
orderStatus.StatusTime = time.Now()
|
||||||
orderStatus.VendorOrderID = refundData.RefundId
|
orderStatus.VendorOrderID = refundData.RefundId
|
||||||
order, _ := partner.CurOrderManager.LoadOrder2(orderStatus.RefVendorOrderID, model.VendorIDTaoVegetable)
|
order, _ := partner.CurOrderManager.LoadOrder2(refundData.OutOrderId, model.VendorIDTaoVegetable)
|
||||||
if order != nil {
|
orderStatus.RefVendorOrderID = order.VendorOrderID
|
||||||
orderStatus.RefVendorOrderID = order.VendorOrderID
|
|
||||||
}
|
|
||||||
case tao_vegetable.OrderStatusOnSaleCancel:
|
case tao_vegetable.OrderStatusOnSaleCancel:
|
||||||
refundData := msg.(*tao_vegetable.OnSaleCancel)
|
refundData := msg.(*tao_vegetable.OnSaleCancel)
|
||||||
orderStatus.RefVendorOrderID = utils.Int64ToStr(refundData.PartCancelRequest.BizOrderId)
|
orderStatus.RefVendorOrderID = utils.Int64ToStr(refundData.PartCancelRequest.BizOrderId)
|
||||||
orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusOnSaleCancel, "用户售中取消")
|
orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusOnSaleCancel, "用户售中取消")
|
||||||
orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusOnSaleCancel)
|
orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusOnSaleCancel)
|
||||||
orderStatus.StatusTime = time.Now()
|
orderStatus.StatusTime = time.Now()
|
||||||
//orderStatus.VendorOrderID = refundData.IdempotentId
|
orderStatus.VendorOrderID = utils.Int64ToStr(refundData.PartCancelRequest.SubOrders[0].BizSubOrderId)
|
||||||
case tao_vegetable.OrderStatusRefundSuccess: // 售后成功
|
case tao_vegetable.OrderStatusRefundSuccess: // 售后成功
|
||||||
refundData := msg.(*tao_vegetable.RefundOrderFinish)
|
refundData := msg.(*tao_vegetable.RefundOrderFinish)
|
||||||
afsOrder, _ := partner.CurOrderManager.LoadAfsOrder(refundData.OutMainRefundId, model.VendorIDTaoVegetable)
|
var refundAfs *domain591.AlibabaWdkOrderRefundGetOrderSyncRefundListResult
|
||||||
|
for i := 0; i < 4; i++ {
|
||||||
|
param := &request591.AlibabaWdkOrderRefundGetRequest{
|
||||||
|
OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)),
|
||||||
|
ShopId: nil,
|
||||||
|
StoreId: utils.String2Pointer(refundData.StoreId),
|
||||||
|
RefundIds: &[]int64{utils.Str2Int64(refundData.BizSubRefundId)},
|
||||||
|
}
|
||||||
|
refundAfs, _ = getAPI("", 0, refundData.StoreId).QueryAfsOrderDetail(param)
|
||||||
|
if refundAfs.Orders != nil {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
time.Sleep(time.Second * 1)
|
||||||
|
}
|
||||||
|
orders := *refundAfs.Orders
|
||||||
|
|
||||||
|
afsOrder, _ := partner.CurOrderManager.LoadAfsOrder(utils.Int64ToStr(*orders[0].OriginOrderId), model.VendorIDTaoVegetable)
|
||||||
if afsOrder != nil {
|
if afsOrder != nil {
|
||||||
orderStatus.RefVendorOrderID = afsOrder.VendorOrderID
|
orderStatus.RefVendorOrderID = afsOrder.VendorOrderID
|
||||||
orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusRefundSuccess, "用户售后退款成功")
|
orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusRefundSuccess, "用户售后退款成功")
|
||||||
orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusRefundSuccess)
|
orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusRefundSuccess)
|
||||||
orderStatus.StatusTime = time.Now()
|
orderStatus.StatusTime = time.Now()
|
||||||
orderStatus.Remark = fmt.Sprintf("QueryTaoAfsOrderId:%s", refundData.BizSubRefundId)
|
orderStatus.Remark = fmt.Sprintf("QueryTaoAfsOrderId:%s", refundData.BizSubRefundId)
|
||||||
orderStatus.VendorOrderID = refundData.OutMainRefundId
|
orderStatus.VendorOrderID = utils.Int64ToStr(*orders[0].OriginOrderId)
|
||||||
} else {
|
} else {
|
||||||
var refundAfs *domain591.AlibabaWdkOrderRefundGetOrderSyncRefundListResult
|
|
||||||
for i := 0; i < 4; i++ {
|
|
||||||
param := &request591.AlibabaWdkOrderRefundGetRequest{
|
|
||||||
OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)),
|
|
||||||
ShopId: nil,
|
|
||||||
StoreId: utils.String2Pointer(refundData.StoreId),
|
|
||||||
RefundIds: &[]int64{utils.Str2Int64(refundData.BizSubRefundId)},
|
|
||||||
}
|
|
||||||
refundAfs, _ = getAPI("", 0, refundData.StoreId).QueryAfsOrderDetail(param)
|
|
||||||
if refundAfs.Orders != nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
time.Sleep(time.Second * 1)
|
|
||||||
}
|
|
||||||
orders := *refundAfs.Orders
|
|
||||||
orderStatus.RefVendorOrderID = utils.Int64ToStr(*orders[0].OriginParentId)
|
orderStatus.RefVendorOrderID = utils.Int64ToStr(*orders[0].OriginParentId)
|
||||||
orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusRefundSuccess, "用户售中退款成功")
|
orderStatus.VendorStatus = fmt.Sprintf("%s:%s", tao_vegetable.OrderStatusRefundSuccess, "用户售中退款成功")
|
||||||
orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusRefundSuccess)
|
orderStatus.Status = c.GetAfsStatusFromVendorStatus(tao_vegetable.OrderStatusRefundSuccess)
|
||||||
orderStatus.StatusTime = time.Now()
|
orderStatus.StatusTime = time.Now()
|
||||||
orderStatus.Remark = fmt.Sprintf("QueryTaoAfsOrderId:%s", refundData.BizSubRefundId)
|
orderStatus.Remark = fmt.Sprintf("QueryTaoAfsOrderId:%s", refundData.BizSubRefundId)
|
||||||
orderStatus.VendorOrderID = *orders[0].OutMianOrderId
|
orderStatus.VendorOrderID = utils.Int64ToStr(*orders[0].OriginOrderId)
|
||||||
taoRefundList = refundAfs.Orders
|
taoRefundList = refundAfs.Orders
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -502,17 +482,18 @@ func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *mod
|
|||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
if approveType == partner.AfsApproveTypeRefused {
|
if approveType == partner.AfsApproveTypeRefused {
|
||||||
param := &request3156.AlibabaTclsAelophyRefundDisagreeRequest{
|
param := &request3156.AlibabaTclsAelophyRefundDisagreeRequest{
|
||||||
RefundId: utils.String2Pointer(order.AfsOrderID),
|
RefundId: utils.String2Pointer(order.VendorOrderID2),
|
||||||
RejectReason: utils.String2Pointer(reason),
|
RejectReason: utils.String2Pointer(reason),
|
||||||
OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)),
|
OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)),
|
||||||
}
|
}
|
||||||
err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromAfsOrder(order), order.VendorStoreID).DisAgreeUserCancel(param)
|
err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromAfsOrder(order), order.VendorStoreID).DisAgreeUserCancel(param)
|
||||||
//if err == nil {
|
if err == nil {
|
||||||
// order.Status = model.AfsOrderStatusFailed
|
order.Status = model.AfsOrderStatusFailed
|
||||||
// order.VendorStatus = "老板拒绝"
|
order.VendorStatus = "老板拒绝"
|
||||||
// order.ReasonDesc += "," + reason
|
order.Flag = model.AfsOrderFlagRefuseUserRefund
|
||||||
// dao.UpdateEntity(dao.GetDB(), order, "Status", "ReasonDesc", "VendorStatus")
|
order.ReasonDesc += "," + reason
|
||||||
//}
|
dao.UpdateEntity(dao.GetDB(), order, "Status", "ReasonDesc", "VendorStatus")
|
||||||
|
}
|
||||||
} else if approveType == partner.AfsApproveTypeRefusedToRefundMoney {
|
} else if approveType == partner.AfsApproveTypeRefusedToRefundMoney {
|
||||||
return errors.New("此平台暂时不支持")
|
return errors.New("此平台暂时不支持")
|
||||||
} else {
|
} else {
|
||||||
@@ -523,31 +504,18 @@ func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *mod
|
|||||||
param := &request3156.AlibabaTclsAelophyRefundAgreeRequest{
|
param := &request3156.AlibabaTclsAelophyRefundAgreeRequest{
|
||||||
StoreId: utils.String2Pointer(order.VendorStoreID),
|
StoreId: utils.String2Pointer(order.VendorStoreID),
|
||||||
OutOrderId: utils.String2Pointer(orderDetail.VendorOrderID2),
|
OutOrderId: utils.String2Pointer(orderDetail.VendorOrderID2),
|
||||||
RefundId: utils.String2Pointer(order.AfsOrderID),
|
RefundId: utils.String2Pointer(order.VendorOrderID2),
|
||||||
OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)),
|
OrderFrom: utils.Int64ToPointer(utils.Str2Int64(tao_vegetable.TaoVegetableChannelCode)),
|
||||||
}
|
}
|
||||||
// 加载购买商品
|
|
||||||
//sku, _ := dao.GetSimpleOrderSkus(db, order.VendorOrderID, nil)
|
|
||||||
//skuCount := 0
|
|
||||||
//for _, v := range sku {
|
|
||||||
// skuCount += v.Count
|
|
||||||
//}
|
|
||||||
|
|
||||||
//refundSkuCount := 0
|
|
||||||
subRefundList := make([]domain3156.AlibabaTclsAelophyRefundAgreeSubrefundlist, 0, len(afsSkuOrder))
|
subRefundList := make([]domain3156.AlibabaTclsAelophyRefundAgreeSubrefundlist, 0, len(afsSkuOrder))
|
||||||
for _, v := range afsSkuOrder {
|
for _, v := range afsSkuOrder {
|
||||||
subRefundList = append(subRefundList, domain3156.AlibabaTclsAelophyRefundAgreeSubrefundlist{
|
subRefundList = append(subRefundList, domain3156.AlibabaTclsAelophyRefundAgreeSubrefundlist{
|
||||||
OutSubOrderId: utils.String2Pointer(v.VendorSubOrderID),
|
OutSubOrderId: utils.String2Pointer(v.VendorSubOrderID),
|
||||||
RefundFee: utils.Int64ToPointer(v.UserMoney),
|
RefundFee: utils.Int64ToPointer(v.UserMoney),
|
||||||
})
|
})
|
||||||
//refundSkuCount += v.Count
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 全退退运费
|
|
||||||
//if skuCount == refundSkuCount {
|
|
||||||
// subRefundList[len(subRefundList)-1].RefundFee = utils.Int64ToPointer(*subRefundList[len(subRefundList)-1].RefundFee + orderDetail.BaseFreightMoney)
|
|
||||||
//}
|
|
||||||
|
|
||||||
param.SubRefundList = &subRefundList
|
param.SubRefundList = &subRefundList
|
||||||
param.AuditMemo = utils.String2Pointer(fmt.Sprintf("商户同意退款"))
|
param.AuditMemo = utils.String2Pointer(fmt.Sprintf("商户同意退款"))
|
||||||
if reason != "" {
|
if reason != "" {
|
||||||
|
|||||||
@@ -401,7 +401,7 @@ func checkNameLength(name string, weight int, uint string) string {
|
|||||||
if len(name) <= tao_vegetable.NameMaxLength {
|
if len(name) <= tao_vegetable.NameMaxLength {
|
||||||
return name
|
return name
|
||||||
}
|
}
|
||||||
|
lastName = name
|
||||||
if strings.Contains(name, "(") {
|
if strings.Contains(name, "(") {
|
||||||
startIndex := strings.Index(name, "(")
|
startIndex := strings.Index(name, "(")
|
||||||
endIndex := strings.Index(name, ")")
|
endIndex := strings.Index(name, ")")
|
||||||
@@ -452,6 +452,11 @@ func uploadImg(api *tao_vegetable.API, imgs []string) *string {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
body, _ := ioutil.ReadAll(resp.Body)
|
body, _ := ioutil.ReadAll(resp.Body)
|
||||||
|
// 图片失效
|
||||||
|
if strings.Contains(string(body), "Document not found") || len(body) == 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
if newImg, _ := api.UploadImg(&request1475.AlibabaWdkPictureUploadRequest{
|
if newImg, _ := api.UploadImg(&request1475.AlibabaWdkPictureUploadRequest{
|
||||||
PictureCategoryId: utils.Int64ToPointer(0),
|
PictureCategoryId: utils.Int64ToPointer(0),
|
||||||
Img: &body,
|
Img: &body,
|
||||||
|
|||||||
@@ -747,7 +747,7 @@ func (c *StoreController) DeletePrinterSeq() {
|
|||||||
|
|
||||||
// @Title 得到门店类别
|
// @Title 得到门店类别
|
||||||
// @Description 得到门店类别
|
// @Description 得到门店类别
|
||||||
// @Param token header string true "认证token"
|
// @Param token header string false "认证token"
|
||||||
// @Param parentID query int false "父ID"
|
// @Param parentID query int false "父ID"
|
||||||
// @Param level query int false "分类等级"
|
// @Param level query int false "分类等级"
|
||||||
// @Param storeID query int true "门店ID"
|
// @Param storeID query int true "门店ID"
|
||||||
|
|||||||
@@ -111,19 +111,21 @@ func (c *StoreSkuController) GetStoresSkus() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取用户权限,如果是普通用户不展示b2b相关目录,如果是门店老板或者管理则展示全部
|
// 获取用户权限,如果是普通用户不展示b2b相关目录,如果是门店老板或者管理则展示全部
|
||||||
userAuth, err := auth2.GetTokenInfo(params.Token)
|
userAuth, _ := auth2.GetTokenInfo(params.Token)
|
||||||
if err != nil {
|
|
||||||
return nil, "", err
|
var userType int8 = 0
|
||||||
}
|
if userAuth != nil {
|
||||||
user, total, err := dao.GetUsers(dao.GetDB(), 1, "", []string{userAuth.UserID}, nil, nil, 0, 1)
|
user, total, err := dao.GetUsers(dao.GetDB(), 1, "", []string{userAuth.UserID}, nil, nil, 0, 1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, "", err
|
return nil, "", err
|
||||||
}
|
}
|
||||||
if total != model.YES {
|
if total != model.YES {
|
||||||
return nil, "", errors.New("未注册用户")
|
return nil, "", errors.New("未注册用户")
|
||||||
}
|
}
|
||||||
if user[0].Type != model.YES {
|
userType = user[0].Type
|
||||||
return storeSku, "", nil
|
if user[0].Type != model.YES {
|
||||||
|
return storeSku, "", nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 判断门店是不是b2b门店,如果是,用户必须为系统管理员(门店老板和运营人员)
|
// 判断门店是不是b2b门店,如果是,用户必须为系统管理员(门店老板和运营人员)
|
||||||
@@ -144,7 +146,7 @@ func (c *StoreSkuController) GetStoresSkus() {
|
|||||||
for _, v := range store {
|
for _, v := range store {
|
||||||
for _, s := range storeSku.SkuNames {
|
for _, s := range storeSku.SkuNames {
|
||||||
if v.ID == s.StoreID {
|
if v.ID == s.StoreID {
|
||||||
if (v.BrandID == model.B2BNumberId || isMatterStore) && user[0].Type == model.YES { // 普通用户进入物料店和b2b店
|
if (v.BrandID == model.B2BNumberId || isMatterStore) && (userType == model.YES || userType == model.NO) { // 普通用户进入物料店和b2b店
|
||||||
continue
|
continue
|
||||||
} else {
|
} else {
|
||||||
result.TotalCount += len(s.Skus)
|
result.TotalCount += len(s.Skus)
|
||||||
|
|||||||
Reference in New Issue
Block a user