diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index b93c7b53b..e25da2483 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -2686,17 +2686,16 @@ func UpdateTiktokShopTotalMoney() { func UpdateTaoSettleInfo() { db := dao.GetDB() - storeMaps, err := dao.GetStoresMapList(db, []int{model.VendorIDTaoVegetable}, []int{667321}, nil, -9, -1, "", "", "") + storeMaps, err := dao.GetStoresMapList(db, []int{model.VendorIDTaoVegetable}, nil, nil, -9, -1, "", "", "") if err != nil { return } - globals.SugarLogger.Debugf("GetStoresMapList ========== %s", utils.Format4Output(storeMaps, false)) - timeStart := time.Now().Add(-72 * time.Hour) + timeStart := time.Now().Add(-24 * 90 * time.Hour) startTime := time.Date(timeStart.Year(), timeStart.Month(), timeStart.Day(), 0, 0, 0, 0, timeStart.Location()) + timeEnd := time.Now() endTiem := time.Date(timeEnd.Year(), timeEnd.Month(), timeEnd.Day()-1, 23, 59, 59, 0, timeStart.Location()) for _, v := range storeMaps { - globals.SugarLogger.Debugf("=============UpdateTaoSettleInfo := %s", utils.Format4Output(v, false)) settleInfo, err := tao.GetOrderTotalShopMoney(v.VendorOrgCode, v.VendorStoreID, startTime, endTiem) if err != nil { globals.SugarLogger.Errorf("获取淘鲜达结算信息异常 := %v", err) @@ -2708,7 +2707,6 @@ func UpdateTaoSettleInfo() { } for orderId2, settle := range settleInfo { - globals.SugarLogger.Debugf("=============settleInfo := %s,%s", utils.Format4Output(orderId2, false), settle) goodsOrder, err := partner.CurOrderManager.LoadOrder2(orderId2, model.VendorIDTaoVegetable) if err != nil || goodsOrder == nil { globals.SugarLogger.Debugf("门店[%d:%s],订单查询异常[%s:%v]", v.StoreID, v.StoreName, orderId2, err) @@ -2728,160 +2726,11 @@ func UpdateTaoSettleInfo() { } } } - if _, err := dao.UpdateEntity(db, v, "TotalShopMoney", "NewEarningPrice"); err != nil { + globals.SugarLogger.Debugf("更新本地订单结算信息 := %s,%d", goodsOrder.VendorOrderID, goodsOrder.TotalShopMoney) + if _, err := dao.UpdateEntity(db, goodsOrder, "TotalShopMoney", "NewEarningPrice"); err != nil { globals.SugarLogger.Errorf("更新本地订单结算信息错误 : %s", err) continue } } } } - -var storeList = []int64{ - //669053, - //103074, - //668985, - //103065, - //668960, - //668959, - //668953, - //103029, - //668949, - //103002, - //102999, - //668932, - //668931, - //668917, - //102969, - //102966, - //668909, - //668908, - //668905, - //668901, - //102946, - //102939, - //102938, - //668894, - //102934, - //102933, - //102930, - //668884, - //668878, - //102903, - //668757, - //102293, - //668622, - //668618, - //668592, - //100945, - //668583, - //100943, - //100935, - //100905, - //668498, - //668476, - //668462, - //100309, - 100299, - 100292, - 668276, - 668180, - 667320, - 667237, - 667036, - 668691, - 668673, - 668282, - 667447, - 667354, - 667335, - 667319, - 667316, - 667269, - 667268, - 667267, - 667260, - 667132, - 667030, - 666965, - 666714, - 666708, - 666705, - 103437, - 103349, - 103123, - 103121, - 103106, - 103038, - 103028, - 103019, - 102831, - 102751, - 102683, - 102542, - 102514, - 102382, - 102182, - 102178, - 102173, - 102098, - 102094, - 102080, - 102072, - 102069, - 101870, - 101869, - 101868, - 101867, - 101866, - 101865, - 100956, - 100930, - 100871, - 100786, - 100746, - 100744, - 100705, - 100400, - 100111, - 100108, - 100106, - 100104, - 100103, - 100102, - 100100, - 100097, - 100096, - 100095, - 100093, - 100092, - 100089, - 100087, - 100086, - 100085, - 100083, - 100082, - 100081, - 100079, - 100078, -} - -func UpdateTaoSkuUpdateOffShelf() { - // 标准模板店 - //skuCodeList := dao.GetStoreSkuBindList(dao.GetDB(), 100102) - - for _, storeId := range storeList { - ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "开始下架:", utils.Int64ToStr(storeId)) - storeSkuMap := dao.GetStoreSkuBindList(dao.GetDB(), storeId) - resultErr := tao.UpdateStoreSku(storeId, storeSkuMap) - if len(resultErr) > 0 { - ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "下架商品错误消息:", utils.Format4Output(resultErr, false)) - } - } - - //for _,storeId := range storeList { - // resultErr := tao.UpdateStoreSkuGrounding(storeId, skuCodeList) - // if len(resultErr) > 0 { - // ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "上架架商品错误消息:", utils.Format4Output(resultErr, false)) - // } - //} -} diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index b4801a298..29a745423 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -982,7 +982,6 @@ func (s *DefScheduler) createWaybillOn3rdProviders(savedOrderInfo *WatchOrderInf break } } - partner.CurOrderManager.OnOrderMsg(order, fmt.Sprintf("发起自动创建三方运单,目标创建运单平台[%s],排除平台[%s]", jxutils.GetVendorName(vendorID), utils.Format4Output(excludeVendorIDs, false)), "") if _, err = s.CreateWaybillOnProviders4SavedOrder(jxcontext.AdminCtx, savedOrderInfo, nil, excludeVendorIDs, false, maxDeliveryFee); err == nil { savedOrderInfo.retryCount++ } else { diff --git a/business/jxcallback/scheduler/defsch/defsch_afs.go b/business/jxcallback/scheduler/defsch/defsch_afs.go index a762a2935..4a7e855b3 100644 --- a/business/jxcallback/scheduler/defsch/defsch_afs.go +++ b/business/jxcallback/scheduler/defsch/defsch_afs.go @@ -32,9 +32,19 @@ func (s *DefScheduler) OnAfsOrderNew(order *model.AfsOrder, isPending bool) (err } } } - msghub.OnNewWait4ApproveAfsOrder(order) - weixinmsg.NotifyAfsOrderStatus(order) - push.NotifyAfsOrder(order) + + if order != nil && order.VendorID == model.VendorIDTaoVegetable { + result, _ := dao.GetAfsOrders(dao.GetDB(), model.VendorIDTaoVegetable, order.VendorOrderID, "") + if len(result) <= model.YES { + msghub.OnNewWait4ApproveAfsOrder(order) + weixinmsg.NotifyAfsOrderStatus(order) + push.NotifyAfsOrder(order) + } + } else { + msghub.OnNewWait4ApproveAfsOrder(order) + weixinmsg.NotifyAfsOrderStatus(order) + push.NotifyAfsOrder(order) + } // 京西云打印机打印数据-如果门店使用京西打印机才使用如下代码块 store, err := dao.GetStoreDetail(dao.GetDB(), order.JxStoreID, order.VendorID, order.VendorOrgCode) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 595c650f5..19ecd8e22 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -1744,7 +1744,6 @@ func UpdateStoresSkus(ctx *jxcontext.Context, causeFlag int, storeIDs []int, sku } } else { flag, _ := doStoreSkuAudit(ctx, storeIDs, skuBindInfos) - globals.SugarLogger.Debugf("========falg := %s", utils.Format4Output(flag, false)) if !flag { var num int64 db := dao.GetDB() diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 5ca595ff7..d7ee63754 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -486,6 +486,9 @@ func (v *VendorSync) SyncStoresCategory(ctx *jxcontext.Context, db *dao.DaoDB, v // func (v *VendorSync) SyncStoresSkus2(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag int, db *dao.DaoDB, vendorIDs []int, storeIDs []int, syncDisabled bool, skuIDs, excludeSkuIDs []int, setSyncStatus int, isAsync, isContinueWhenError bool) (hint string, err error) { + if len(vendorIDs) > 0 && vendorIDs[0] == model.VendorIDTaoVegetable { + globals.SugarLogger.Debugf("=====================storeIDs: %s", utils.Format4Output(storeIDs, false)) + } isManageIt := len(storeIDs) != 1 || len(skuIDs) == 0 || len(skuIDs) > 8 funcParam := func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) { loopMapInfo := batchItemList[0].(*LoopStoreMapInfo) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 7524ed4fc..327ba08b1 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -2,6 +2,7 @@ package misc import ( "fmt" + "git.rosy.net.cn/jx-callback/business/jxutils/enterprise_msg" "sync" "time" @@ -209,13 +210,6 @@ func Init() { "18:10:00", }) - // 下架所有北京上海门店商品 - ScheduleTimerFunc("UpdateTaoSkuUpdateOffShelf", func() { - orderman.UpdateTaoSkuUpdateOffShelf() - }, []string{ - "09:13:00", - }) - // 每分钟轮询一次,推送骑手信息 ScheduleTimerFuncByInterval(func() { delivery.UpdateFakeWayBillToTiktok() @@ -286,341 +280,29 @@ func Init() { // syncStoreSkuTiktok() // }, []string{"13:00:00"}) //} - // 淘鲜达更新门店商品 ,接口收费暂不使用 + if beego.BConfig.RunMode != "jxgy" { - ScheduleTimerFunc("RefreshSyncSkuList_tao", func() { - var hangzhou = []int{ - // 杭州 - //669073, - //668930, - //668922, - //668916, - //668915, - //668756, - //668705, - //668702, - //668681, - //668422, - //668417, - //668191, - //667996, - //667991, - //667985, - //667553, - //667044, - //103083, - //103073, - //103033, - //103032, - //102963, - //102923, - //102785, - //102594, - //102578, - //102329, - //101734, - //100229, - //100224, - //100217, - //100215, - //100210, - //100206, - //// 武汉 - //668352, 103200, 102958, 100887, 100236, - //// 广州 - // 668871, 668602, 668575, 668262, 103425, 101755, 101176, 100557, 100369, 100361, 100351, 100350, - //成都 - 669172, - 669171, - 669170, - 669169, - 669168, - 669165, - 669164, - 669163, - 669162, - 669157, - 669156, - 669155, - 669154, - 669153, - 669150, - 669149, - 669148, - 669147, - 669146, - 669144, - 669141, - 669139, - 669138, - 669137, - 669134, - 669132, - 669127, - 669124, - 669122, - 669121, - 669120, - 669119, - 669114, - 669113, - 669111, - 669110, - 669109, - 669108, - 669107, - 669106, - 669103, - 669100, - 669099, - 669098, - 669097, - 669096, - 669095, - 669094, - 669093, - 669092, - 669091, - 669087, - 669086, - 669085, - 669084, - 669083, - 669082, - 669079, - 669078, - 669077, - 669075, - 669074, - 669072, - 669070, - 669067, - 669064, - 669063, - 669062, - 669060, - 669059, - 669056, - 669055, - 669054, - 669050, - 669049, - 669047, - 669046, - 669045, - 669042, - 669041, - 669038, - 669036, - 669035, - 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(hangzhou) + ScheduleTimerFunc("RefreshSyncSkuListTao", func() { + syncStoreSkuTao() }, []string{ - "00:30:00", - "01:30:00", - "02:30:00", - "03:30:00", - "04:30:00", - "05:30:00", - "06:30:00", - "07:30:00", - "08:30:00", - "09:35:00", - "10:30:00", - "11:30:00", - "12:30:00", - "13:30:00", - "14:30:00", - "15:30:00", - "16:30:00", - "17:30:00", - "18:30:00", - "19:30:00", - "20:30:00", - "21:30:00", - "22:30:00", - "23:30:00", + "14:25:00", + "16:25:00", + "18:52:00", + "20:25:00", + "21:25:00", + "22:25:00", + "23:25:00", + "00:25:00", + "01:25:00", + "02:25:00", + "03:25:00", + "04:25:00", + "05:25:00", + "06:25:00", + "07:25:00", + "08:25:00", + "10:25:00", + "12:25:00", }) } @@ -976,31 +658,264 @@ func syncStoreSkuTiktok() { } var syncLen = 0 +var beijin = []int{ + //669113, + //669111, + //669110, + //669109, + //669108, + //669107, + //669106, + //669103, + //669100, + //669099, + //669098, + //669097, + //669096, + //669095, + //669094, + //669093, + //669092, + //669091, + //669087, + //669086, + //669085, + //669084, // zheer + //669083, + //669082, + //669079, + //669078, + //669077, + //669075, + //669074, + //669072, + //669070, + //669067, + //669064, + //669063, + //669062, + //669060, + //669059, + //669056, + //669055, + //669054, + //669050, + //669049, + //669047, // + //669046, + //669045, + //669042, + //669041, + //669038, + //669036, + //669035, + //669033, + //669032, // zher + //669031, + //669027, + //669025, + //669024, + //669022, + //669021, + //669020, + //669017, + //669015, /// zher + //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 同步商品到淘鲜达 -func syncStoreSkuTao(beijin []int) { +func syncStoreSkuTao() { syncFlag := 0 - task := tasksch.NewParallelTask("同步京西商品到淘鲜达平台,方案二使用", nil, jxcontext.AdminCtx, + task := tasksch.NewParallelTask("syncStoreSkuTao ", nil, jxcontext.AdminCtx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { step := batchItemList[0].(int) errList := errlist.New() db := dao.GetDB() switch step { case 0: - if beego.BConfig.RunMode != "jxgy" { - 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+3], false, nil, nil, syncFlag, true, true) - errList.AddErr(err) + if err := ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "淘鲜达消息:", utils.Format4Output(beijin[syncLen:syncLen+5], false)); err != nil { + globals.SugarLogger.Debugf("SendUserMessage := %s", utils.Format4Output(err, false)) } - case 1: + enterprise_msg.SendUserMessage("18981810340", "淘鲜达同步消息", utils.Format4Output(beijin[syncLen:syncLen+5], false), 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) + case 1: SaveImportantTaskID(TaskNameSyncStoreSku, SpecialTaskID) } err = errList.GetErrListAsOne() return retVal, err }, []int{0, 1}) tasksch.HandleTask(task, nil, true).Run() - syncLen += 3 + syncLen += 5 } func doDailyWork2() { diff --git a/business/jxstore/misc/misc2_test.go b/business/jxstore/misc/misc2_test.go index 685ebaf00..d853217ff 100644 --- a/business/jxstore/misc/misc2_test.go +++ b/business/jxstore/misc/misc2_test.go @@ -15,4 +15,4 @@ func TestStartOrEndOpStore(t *testing.T) { func TestIssny(t *testing.T) { cms.CurVendorSync.SyncStore2(jxcontext.AdminCtx, dao.GetDB(), []int{model.VendorIDMTWM, model.VendorIDJD, model.VendorIDEBAI}, nil, true, true) -} \ No newline at end of file +} diff --git a/business/model/dao/tao_sku_img.go b/business/model/dao/tao_sku_img.go new file mode 100644 index 000000000..6d206a49e --- /dev/null +++ b/business/model/dao/tao_sku_img.go @@ -0,0 +1,16 @@ +package dao + +import "git.rosy.net.cn/jx-callback/business/model" + +func GetVendorImg(skuId, vendorId int) (*model.TaoSkuImg, error) { + result := &model.TaoSkuImg{} + + sql := ` SELECT * FROM tao_sku_img WHERE sku_id = ? AND vendor_id = ?` + parma := []interface{}{skuId, vendorId} + + if err := GetRow(GetDB(), result, sql, parma); err != nil { + return nil, err + } + + return result, nil +} diff --git a/business/model/sku.go b/business/model/sku.go index e083b4254..248ebdf52 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -162,15 +162,15 @@ type SkuName struct { ExPrefixBegin *time.Time `orm:"null" json:"exPrefixBegin"` ExPrefixEnd *time.Time `orm:"null" json:"exPrefixEnd"` ExVendorID int `orm:"column(ex_vendor_id)" json:"exVendorID"` - BrandID int `orm:"column(brand_id);default(0)" json:"brandID"` // todo,此属性暂时没有使用,且有问题,应该是不同平台都有一个brandid - CategoryID int `orm:"column(category_id);index" json:"categoryID"` // 标准类别 - JdCategoryID int64 `orm:"column(jd_category_id)" json:"jdCategoryID"` // 这个是指对应的京东商品类别 - IsGlobal int8 `orm:"default(1)" json:"isGlobal"` // 是否是全部(全国)可见,如果否的话,可见性由SkuPlace决定 - Unit string `orm:"size(8)" json:"unit"` - SpecQuality float32 `json:"-"` // 为份必然为500,这个主要作用只是用于确保SkuName的唯一性 - SpecUnit string `orm:"size(8)" json:"-"` // 为份必然为克,这个主要作用只是用于确保SkuName的唯一性 - Price int `json:"price"` // 单位为分,标准价,不为份的就为实际标准价,为份的为每市斤价,实际还要乘质量。todo 为份的确定必须有质量 - Img string `orm:"size(512)" json:"img"` + BrandID int `orm:"column(brand_id);default(0)" json:"brandID"` // todo,此属性暂时没有使用,且有问题,应该是不同平台都有一个brandid + CategoryID int `orm:"column(category_id);index" json:"categoryID"` // 标准类别 + JdCategoryID int64 `orm:"column(jd_category_id)" json:"jdCategoryID"` // 这个是指对应的京东商品类别 + IsGlobal int8 `orm:"default(1)" json:"isGlobal"` // 是否是全部(全国)可见,如果否的话,可见性由SkuPlace决定 + Unit string `orm:"size(8)" json:"unit"` // + SpecQuality float32 `json:"-"` // 为份必然为500,这个主要作用只是用于确保SkuName的唯一性 + SpecUnit string `orm:"size(8)" json:"-"` // 为份必然为克,这个主要作用只是用于确保SkuName的唯一性 + Price int `json:"price"` // 单位为分,标准价,不为份的就为实际标准价,为份的为每市斤价,实际还要乘质量。todo 为份的确定必须有质量 + Img string `orm:"size(512)" json:"img"` // Img2 string `orm:"size(512)" json:"img2"` // 第二张图片 Img3 string `orm:"size(512)" json:"img3"` //第三张图片 Img4 string `orm:"size(512)" json:"img4"` //第三张图片 diff --git a/business/model/tao_sku_img.go b/business/model/tao_sku_img.go new file mode 100644 index 000000000..c2148bd3d --- /dev/null +++ b/business/model/tao_sku_img.go @@ -0,0 +1,19 @@ +package model + +type TaoSkuImg struct { + ID int64 `orm:"column(id)" json:"id"` + SkuID int `orm:"column(sku_id)"` + VendorID int `orm:"column(vendor_id)" json:"vendorID"` + Img string `orm:"size(512)" json:"img"` + Img2 string `orm:"size(512)" json:"img2"` // 第二张图片 + Img3 string `orm:"size(512)" json:"img3"` //第三张图片 + Img4 string `orm:"size(512)" json:"img4"` //第三张图片 + Img5 string `orm:"size(512)" json:"img5"` //第三张图片 + DescImg string `orm:"size(512)" json:"descImg"` // 商品详情图片描述 +} + +func (*TaoSkuImg) TableUnique() [][]string { + return [][]string{ + []string{"SkuID", "VendorID"}, + } +} diff --git a/business/partner/purchase/mtwm/order.go b/business/partner/purchase/mtwm/order.go index 7606501d9..b49e20007 100644 --- a/business/partner/purchase/mtwm/order.go +++ b/business/partner/purchase/mtwm/order.go @@ -515,13 +515,14 @@ func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI 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 { err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").PreparationMealComplete(utils.Str2Int64(order.VendorOrderID)) } } - if err == nil { + if err == nil || strings.Contains(err.Error(), "808") { // 配送类型只能为美团配送或美团企客配送 level:0, code:808 c.postFakeMsg(order.VendorOrderID, FakeMsgType, fakeFinishedPickup) + return nil } return err } diff --git a/business/partner/purchase/tao_vegetable/order.go b/business/partner/purchase/tao_vegetable/order.go index b9757e4db..27fa9e57b 100644 --- a/business/partner/purchase/tao_vegetable/order.go +++ b/business/partner/purchase/tao_vegetable/order.go @@ -10,8 +10,6 @@ import ( "git.rosy.net.cn/baseapi/platformapi/tao_vegetable" domain3156 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability3156/domain" request3156 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability3156/request" - domain587 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability587/domain" - request587 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability587/request" domain591 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability591/domain" request591 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability591/request" "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/util" @@ -845,31 +843,6 @@ func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64 return 0, nil } -// 下架 -func UpdateStoreSku(storeId int64, skuCode []string) []string { - api := getAPI("34402634", 0, "") - return api.StoreSkuUpdateOffShelfList(storeId, skuCode) -} - -// 上架 -func UpdateStoreSkuGrounding(storeId int64, skuCode []string) []string { - api := getAPI("34402634", 0, "") - - result := make([]string, 0, 0) - for _, v := range skuCode { - param := &request587.AlibabaAxChannelSkuStatusUpdateRequest{ChannelSkuUpdateStatusReq: &domain587.AlibabaAxChannelSkuStatusUpdateChannelSkuUpdateStatusReq{ - SkuCode: utils.String2Pointer(v), - StoreId: utils.String2Pointer(fmt.Sprintf("JX%d", storeId)), - ChannelCode: utils.String2Pointer("31"), - OnlineSaleFlag: utils.Int64ToPointer(1), - }} - if err := api.StoreSkuUpdateOffShelf(param); err != nil { - result = append(result, fmt.Sprintf(" [storeId:%d,skuCode:%s]"+err.Error(), storeId, v)) - } - } - return result -} - // GetOrderTotalShopMoney 获取门店结算信息 func GetOrderTotalShopMoney(appOrgCode string, vendorStoreID string, start, end time.Time) (map[string]string, error) { if appOrgCode == "" || vendorStoreID == "" { diff --git a/business/partner/purchase/tao_vegetable/store_sku2.go b/business/partner/purchase/tao_vegetable/store_sku2.go index 184b1f9a1..4be767488 100644 --- a/business/partner/purchase/tao_vegetable/store_sku2.go +++ b/business/partner/purchase/tao_vegetable/store_sku2.go @@ -41,19 +41,19 @@ var ( func (p *PurchaseHandler) GetStoreSkusBatchSize(funcID int) (batchSize int) { switch funcID { case partner.FuncUpdateStoreSkusStock, partner.FuncUpdateStoreSkusStatus, partner.FuncUpdateStoreSkusPrice: - batchSize = 5 + batchSize = 20 case partner.FuncDeleteStoreSkus: - batchSize = 5 + batchSize = 20 case partner.FuncCreateStoreSkus: - batchSize = 5 // 可考虑用批量操作 + batchSize = 20 // 可考虑用批量操作 case partner.FuncUpdateStoreSkus: - batchSize = 5 // mtwmapi.MaxStoreSkuBatchSize + batchSize = 20 // mtwmapi.MaxStoreSkuBatchSize case partner.FuncGetStoreSkusFullInfo: - batchSize = 5 + batchSize = 20 case partner.FuncCreateActs: - batchSize = 5 + batchSize = 20 case partner.FuncCancelActs: - batchSize = 5 + batchSize = 20 } return batchSize } @@ -253,7 +253,10 @@ func UpdateTaoVegetable(api *tao_vegetable.API, storeSkuList []*dao.StoreSkuSync 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, v.SkuID, model.VendorIDTaoVegetable, []string{v.Img, v.Img2, v.Img3, v.Img4, v.Img5, v.DescImg}) + if updateSku.SkuPicUrls == nil { + continue + } updateSkuList = append(updateSkuList, updateSku) } @@ -320,7 +323,11 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku RichText: utils.String2Pointer(storeSku.Name), AllowAppSale: utils.Int64ToPointer(tao_vegetable.IsAllowAppSale), } - sku.SkuPicUrls = uploadImg(api, []string{storeSku.Img, storeSku.Img2, storeSku.Img3, storeSku.Img4, storeSku.Img5, storeSku.DescImg}) + // 赠品专区 + if storeSku.VendorCatID == "175" { + sku.MerchantCatCode = utils.String2Pointer("1751") + } + sku.SkuPicUrls = uploadImg(api, storeSku.SkuID, model.VendorIDTaoVegetable, []string{storeSku.Img, storeSku.Img2, storeSku.Img3, storeSku.Img4, storeSku.Img5, storeSku.DescImg}) if sku.SkuPicUrls == nil { continue } @@ -438,34 +445,80 @@ func checkNameLength(name string, weight int, uint string) string { return lastName[0:60] } -func uploadImg(api *tao_vegetable.API, imgs []string) *string { +func uploadImg(api *tao_vegetable.API, skuId, vendorId int, imgs []string) *string { + vendorImg, _ := dao.GetVendorImg(skuId, vendorId) result := make([]string, 0, 0) - for _, v := range imgs { - if v == "" { - continue - } + taoImgs := &model.TaoSkuImg{} + isCreate := false + if vendorImg == nil || (vendorImg.Img == "" && vendorImg.Img2 == "" && vendorImg.Img3 == "" && vendorImg.Img4 == "" && vendorImg.Img5 == "" && vendorImg.DescImg == "") { + isCreate = true + for i := 0; i < len(imgs); i++ { + if imgs[i] == "" { + continue + } - inputTitle := strings.LastIndex(v, "/") - title := strings.LastIndex(v, ".") - resp, err := http.Get(v) - if err != nil { - continue + inputTitle := strings.LastIndex(imgs[i], "/") + title := strings.LastIndex(imgs[i], ".") + resp, err := http.Get(imgs[i]) + if err != nil { + continue + } + body, _ := ioutil.ReadAll(resp.Body) + // 图片失效 + if strings.Contains(string(body), "Document not found") || len(body) == 0 { + continue + } + newImg, _ := api.UploadImg(&request1475.AlibabaWdkPictureUploadRequest{ + PictureCategoryId: utils.Int64ToPointer(0), + Img: &body, + ImgInputTitle: utils.String2Pointer(imgs[i][inputTitle:]), + Title: utils.String2Pointer(imgs[i][inputTitle:title]), + }) + if newImg != "" { + result = append(result, newImg) + switch i { + case 0: + taoImgs.Img = newImg + case 1: + taoImgs.Img2 = newImg + case 2: + taoImgs.Img3 = newImg + case 3: + taoImgs.Img4 = newImg + case 4: + taoImgs.Img5 = newImg + case 5: + taoImgs.DescImg = newImg + } + } } - body, _ := ioutil.ReadAll(resp.Body) - // 图片失效 - if strings.Contains(string(body), "Document not found") || len(body) == 0 { - continue + } else { + if vendorImg.Img != "" { + result = append(result, vendorImg.Img) } - - if newImg, _ := api.UploadImg(&request1475.AlibabaWdkPictureUploadRequest{ - PictureCategoryId: utils.Int64ToPointer(0), - Img: &body, - ImgInputTitle: utils.String2Pointer(v[inputTitle:]), - Title: utils.String2Pointer(v[inputTitle:title]), - }); newImg != "" { - result = append(result, newImg) + if vendorImg.Img2 != "" { + result = append(result, vendorImg.Img2) + } + if vendorImg.Img3 != "" { + result = append(result, vendorImg.Img3) + } + if vendorImg.Img4 != "" { + result = append(result, vendorImg.Img4) + } + if vendorImg.Img5 != "" { + result = append(result, vendorImg.Img5) + } + if vendorImg.DescImg != "" { + result = append(result, vendorImg.DescImg) } } + + if isCreate { + taoImgs.SkuID = skuId + taoImgs.VendorID = vendorId + dao.CreateEntity(dao.GetDB(), taoImgs) + } + // 商品图片最多五张 if len(result) > 5 { return utils.String2Pointer(strings.Join(result[1:], ",")) @@ -539,6 +592,8 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg CleanSkuMemberPrice: utils.Int64ToPointer(model.YES), SubTitle: utils.String2Pointer("小时达"), } + // 临时更新上传图片错误的,或图片上传失败的商品 + updateSku.SkuPicUrls = uploadImg(api, v.SkuID, model.VendorIDTaoVegetable, nil) updateSkuList = append(updateSkuList, updateSku) } param.ParamList = &updateSkuList diff --git a/controllers/jd_callback.go b/controllers/jd_callback.go index 616babe6d..ff0d6d7e1 100644 --- a/controllers/jd_callback.go +++ b/controllers/jd_callback.go @@ -111,6 +111,7 @@ func (c *DjswController) OrderCommentPush() { func (c *DjswController) Token() { urlValues, err := utils.HTTPBody2Values(c.Ctx.Input.RequestBody, false) globals.SugarLogger.Info(utils.Format4Output(utils.Format4Output(err, false), false)) + globals.SugarLogger.Info(utils.Format4Output(utils.Format4Output(urlValues, false), false)) jd.OnTokenChange(urlValues) c.Data["json"] = c.transferResponse("Token", nil) c.ServeJSON() diff --git a/globals/beegodb/beegodb.go b/globals/beegodb/beegodb.go index b2b3d56a8..7844d3a7a 100644 --- a/globals/beegodb/beegodb.go +++ b/globals/beegodb/beegodb.go @@ -67,6 +67,7 @@ func Init() { orm.RegisterModel(&model.Brand{}, &model.BrandCategoryMap{}) orm.RegisterModel(&model.BrandStore{}) orm.RegisterModel(&model.BrandBill{}, &model.BrandOrder{}, &model.BrandUser{}) + orm.RegisterModel(&model.TaoSkuImg{}) orm.RegisterModel(&model.AuthBind{}, &model.User{})