From c27d610fbbbf84d8456a85f5f3490f78439099e3 Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 16 Aug 2019 14:12:11 +0800 Subject: [PATCH 1/9] =?UTF-8?q?-=20=E6=95=B4=E7=90=86sync.go?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/cms.go | 3 +-- business/jxstore/cms/sku.go | 6 ++--- business/jxstore/cms/sync.go | 43 +++++------------------------------- business/partner/partner.go | 23 +++++++++++++++++++ 4 files changed, 32 insertions(+), 43 deletions(-) diff --git a/business/jxstore/cms/cms.go b/business/jxstore/cms/cms.go index dff8ca85a..38b14b286 100644 --- a/business/jxstore/cms/cms.go +++ b/business/jxstore/cms/cms.go @@ -89,11 +89,10 @@ func InitServiceInfo(version string, buildTime time.Time, gitCommit string) { "actCreateTypeName": model.ActCreateTypeName, "storeAuditStatusName": model.StoreAuditStatusName, "configTypeName": model.ConfigTypeName, - "autoSaleAt": "20:45:00", + "autoSaleAt": AutoSaleAtStr, "userTypeName": model.UserTypeName, }, } - Init() } func GetServiceInfo(ctx *jxcontext.Context) interface{} { diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index ba33c7d9d..997f4ab1e 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -174,7 +174,7 @@ func SetStoreCategorySyncStatus2(db *dao.DaoDB, storeIDs []int, catIDs []int, sy } } }() - for _, vendorID := range CurVendorSync.SingleStoreVendorIDs { + for _, vendorID := range partner.GetSingleStoreVendorIDs() { num2, err2 := dao.SetStoreCategorySyncStatus(db, vendorID, storeIDs, catIDs, syncStatus) if err = err2; err != nil { return 0, err @@ -703,7 +703,7 @@ func UpdateSkuName(ctx *jxcontext.Context, nameID int, payload map[string]interf if err == nil { skuIDs, err2 := dao.GetSkuIDByNames(db, []int{nameID}) if err = err2; err == nil && len(skuIDs) > 0 { - _, err = SetStoreSkuSyncStatus2(db, nil, CurVendorSync.SingleStoreVendorIDs, skuIDs, model.SyncFlagModifiedMask) + _, err = SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), skuIDs, model.SyncFlagModifiedMask) } if err == nil { dao.Commit(db) @@ -832,7 +832,7 @@ func UpdateSku(ctx *jxcontext.Context, skuID int, payload map[string]interface{} t1.spec_unit = t2.spec_unit WHERE t1.deleted_at = ? AND t2.id = ? AND t1.unit <> ? `, utils.DefaultTimeValue, skuID, model.SpecialUnit); err == nil { - if _, err = SetStoreSkuSyncStatus2(db, nil, CurVendorSync.SingleStoreVendorIDs, []int{skuID}, model.SyncFlagModifiedMask); err == nil { + if _, err = SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), []int{skuID}, model.SyncFlagModifiedMask); err == nil { if maskValue&model.SyncFlagSpecMask != 0 { err = refreshStoreSkuPrice(ctx, db, skuID) } diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index 0507ae995..f7945d6da 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -3,7 +3,6 @@ package cms import ( "errors" "fmt" - "reflect" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils" @@ -13,7 +12,6 @@ import ( "git.rosy.net.cn/jx-callback/business/model/dao" "git.rosy.net.cn/jx-callback/business/partner" "git.rosy.net.cn/jx-callback/globals" - "git.rosy.net.cn/jx-callback/globals/api" "git.rosy.net.cn/jx-callback/globals/refutil" ) @@ -23,9 +21,6 @@ type LoopStoreMapInfo struct { } type VendorSync struct { - MultiStoreVendorIDs []int - SingleStoreVendorIDs []int - PurchaseHandlers map[int]partner.IPurchasePlatformHandler } type SyncError struct { @@ -52,34 +47,6 @@ var ( ErrEntityNotExist = errors.New("找不到相应实体") ) -func Init() { - apiMap := map[int]interface{}{ - model.VendorIDJD: api.JdAPI, - model.VendorIDELM: api.ElmAPI, - model.VendorIDEBAI: api.EbaiAPI, - model.VendorIDMTWM: api.MtwmAPI, - model.VendorIDWSC: api.WeimobAPI, - } - CurVendorSync.PurchaseHandlers = make(map[int]partner.IPurchasePlatformHandler) - for k, v := range partner.PurchasePlatformHandlers { - if !reflect.ValueOf(apiMap[k]).IsNil() { - if multiHandler, ok := v.(partner.IMultipleStoresHandler); ok { - CurVendorSync.MultiStoreVendorIDs = append(CurVendorSync.MultiStoreVendorIDs, k) - CurVendorSync.PurchaseHandlers[k] = &MultiStoreHandlerWrapper{ - IMultipleStoresHandler: multiHandler, - } - } else if singleHandler, ok := v.(partner.ISingleStoreHandler); ok { - CurVendorSync.SingleStoreVendorIDs = append(CurVendorSync.SingleStoreVendorIDs, k) - CurVendorSync.PurchaseHandlers[k] = &SingleStoreHandlerWrapper{ - ISingleStoreHandler: singleHandler, - } - } else { - panic(fmt.Sprintf("platform:%d type is wrong!", k)) - } - } - } -} - func (p *MultiStoreHandlerWrapper) DeleteCategory(db *dao.DaoDB, cat *model.SkuCategory, userName string) (err error) { if jxutils.IsEmptyID(cat.JdID) { return nil @@ -112,18 +79,18 @@ func (p *MultiStoreHandlerWrapper) UpdateSku(db *dao.DaoDB, sku *model.Sku, user } func (v *VendorSync) GetStoreHandler(vendorID int) partner.IPurchasePlatformHandler { - return v.PurchaseHandlers[vendorID] + return partner.GetPurchasePlatformFromVendorID(vendorID) } func (v *VendorSync) GetMultiStoreHandler(vendorID int) partner.IMultipleStoresHandler { - if handler, ok := v.PurchaseHandlers[vendorID].(partner.IMultipleStoresHandler); ok { + if handler, ok := v.GetStoreHandler(vendorID).(partner.IMultipleStoresHandler); ok { return handler } return nil } func (v *VendorSync) GetSingleStoreHandler(vendorID int) partner.ISingleStoreHandler { - if handler, ok := v.PurchaseHandlers[vendorID].(partner.ISingleStoreHandler); ok { + if handler, ok := v.GetStoreHandler(vendorID).(partner.ISingleStoreHandler); ok { return handler } return nil @@ -162,7 +129,7 @@ func (v *VendorSync) syncCategories(ctx *jxcontext.Context, parentTask tasksch.I } func (v *VendorSync) SyncCategory(ctx *jxcontext.Context, db *dao.DaoDB, categoryID int, isAsync bool, userName string) (hint string, err error) { - globals.SugarLogger.Debug(v.MultiStoreVendorIDs) + globals.SugarLogger.Debug("SyncCategory") hint, err = v.LoopMultiStoresVendors(ctx, db, fmt.Sprintf("同步分类信息:%d", categoryID), isAsync, false, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) { vendorID := batchItemList[0].(int) @@ -595,7 +562,7 @@ func (v *VendorSync) LoopStoresMap(ctx *jxcontext.Context, db *dao.DaoDB, taskNa } func (v *VendorSync) LoopMultiStoresVendors(ctx *jxcontext.Context, db *dao.DaoDB, taskName string, isAsync bool, isManageIt bool, handler tasksch.WorkFunc) (hint string, err error) { - task := tasksch.NewParallelTask(taskName, tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, handler, v.MultiStoreVendorIDs) + task := tasksch.NewParallelTask(taskName, tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, handler, partner.GetMultiStoreVendorIDs()) tasksch.HandleTask(task, nil, isManageIt).Run() if !isAsync { result, err2 := task.GetResult(0) diff --git a/business/partner/partner.go b/business/partner/partner.go index b235ada26..8d08c2f71 100644 --- a/business/partner/partner.go +++ b/business/partner/partner.go @@ -211,9 +211,32 @@ func RegisterPurchasePlatform(handler IPurchasePlatformHandler) { if _, ok := PurchasePlatformHandlers[vendorID]; ok { panic(fmt.Sprintf("purchase vendor:%d, already exists", vendorID)) } + _, isSingleStore := handler.(ISingleStoreHandler) + _, isMultiStore := handler.(IMultipleStoresHandler) + if !isSingleStore && !isMultiStore { + panic(fmt.Sprintf("platform:%d type is wrong!", vendorID)) + } PurchasePlatformHandlers[vendorID] = handler } func GetPurchasePlatformFromVendorID(vendorID int) IPurchasePlatformHandler { return PurchasePlatformHandlers[vendorID] } + +func GetMultiStoreVendorIDs() (vendorIDs []int) { + for k, v := range PurchasePlatformHandlers { + if _, ok := v.(IMultipleStoresHandler); ok { + vendorIDs = append(vendorIDs, k) + } + } + return vendorIDs +} + +func GetSingleStoreVendorIDs() (vendorIDs []int) { + for k, v := range PurchasePlatformHandlers { + if _, ok := v.(ISingleStoreHandler); !ok { + vendorIDs = append(vendorIDs, k) + } + } + return vendorIDs +} From 79533bed0951758fd1f5c2d42b99e01b647c1e8b Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 16 Aug 2019 15:06:20 +0800 Subject: [PATCH 2/9] =?UTF-8?q?-=20=E5=90=8C=E6=AD=A5=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E6=B7=BB=E5=8A=A0excludeSkuIDs=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync.go | 10 +++++----- business/jxstore/cms/sync_store_sku.go | 20 +++++++++++++++----- business/jxstore/misc/misc.go | 2 +- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index f7945d6da..cb4834d3b 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -362,7 +362,7 @@ func (v *VendorSync) SyncStoresCategory(ctx *jxcontext.Context, db *dao.DaoDB, v } // -func (v *VendorSync) SyncStoresSkus2(ctx *jxcontext.Context, db *dao.DaoDB, vendorIDs []int, storeIDs []int, skuIDs []int, setSyncStatus int, isAsync, isContinueWhenError bool) (hint string, err error) { +func (v *VendorSync) SyncStoresSkus2(ctx *jxcontext.Context, db *dao.DaoDB, vendorIDs []int, storeIDs, excludeSkuIDs []int, skuIDs []int, setSyncStatus int, isAsync, isContinueWhenError bool) (hint string, err error) { globals.SugarLogger.Debug("SyncStoresSkus2") isManageIt := isAsync || len(storeIDs) != 1 || len(skuIDs) == 0 || len(skuIDs) > 8 task, hint, err := v.LoopStoresMap2(ctx, db, fmt.Sprintf("同步门店商品信息:%v", storeIDs), isAsync, isManageIt, vendorIDs, storeIDs, @@ -380,7 +380,7 @@ func (v *VendorSync) SyncStoresSkus2(ctx *jxcontext.Context, db *dao.DaoDB, vend tasksch.NewParallelConfig().SetParallelCount(parallelCount).SetIsContinueWhenError(isContinueWhenError), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { storeMap := batchItemList[0].(*model.StoreMap) - if _, err = v.proxySyncStoreSku(ctx, task, storeMap, nil, skuIDs, false, isContinueWhenError); err != nil { + if _, err = v.proxySyncStoreSku(ctx, task, storeMap, nil, skuIDs, excludeSkuIDs, false, isContinueWhenError); err != nil { globals.SugarLogger.Debugf("SyncStoresSkus2 failed2 store:%d failed with error:%v", storeMap.StoreID, err) } return nil, err @@ -413,7 +413,7 @@ func (v *VendorSync) SyncStoresSkus(ctx *jxcontext.Context, db *dao.DaoDB, vendo if isForce { setSyncStatus = model.SyncFlagStoreSkuModifiedMask } - return v.SyncStoresSkus2(ctx, db, vendorIDs, storeIDs, skuIDs, setSyncStatus, isAsync, isContinueWhenError) + return v.SyncStoresSkus2(ctx, db, vendorIDs, storeIDs, skuIDs, nil, setSyncStatus, isAsync, isContinueWhenError) } // func isUseOldSyncLogic(storeMap *model.StoreMap) bool { @@ -428,11 +428,11 @@ func (v *VendorSync) proxySyncStoreCategory(ctx *jxcontext.Context, parentTask t return SyncStorCategories(ctx, parentTask, storeMap.VendorID, storeMap.StoreID, storeMap.VendorStoreID, nil, skuIDs, isAsync, isContinueWhenError) } -func (v *VendorSync) proxySyncStoreSku(ctx *jxcontext.Context, parentTask tasksch.ITask, storeMap *model.StoreMap, nameIDs, skuIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) { +func (v *VendorSync) proxySyncStoreSku(ctx *jxcontext.Context, parentTask tasksch.ITask, storeMap *model.StoreMap, nameIDs, skuIDs, excludeSkuIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) { // if isUseOldSyncLogic(storeMap) { // return v.GetStoreHandler(storeMap.VendorID).SyncStoreSkus(ctx, parentTask, storeMap.StoreID, skuIDs, isAsync, isContinueWhenError) // } - return SyncStoreSkuNew(ctx, parentTask, storeMap.VendorID, storeMap.StoreID, storeMap.VendorStoreID, nil, skuIDs, isAsync, isContinueWhenError) + return SyncStoreSkuNew(ctx, parentTask, storeMap.VendorID, storeMap.StoreID, storeMap.VendorStoreID, nil, skuIDs, excludeSkuIDs, isAsync, isContinueWhenError) } func (v *VendorSync) proxyFullSyncStoreSku(ctx *jxcontext.Context, parentTask tasksch.ITask, storeMap *model.StoreMap, isAsync, isContinueWhenError bool) (hint string, err error) { diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index 72c4466ba..01cab3073 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -112,7 +112,7 @@ func SyncStorCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendor return hint, err } -func SyncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorID, storeID int, vendorStoreID string, nameIDs, skuIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) { +func SyncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorID, storeID int, vendorStoreID string, nameIDs, skuIDs, excludeSkuIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) { singleStoreHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler) if singleStoreHandler != nil { if err = CreateStoreCategoryByStoreSku(ctx, vendorID, storeID, vendorStoreID, nameIDs, skuIDs); err != nil { @@ -127,7 +127,7 @@ func SyncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorID, _, err = SyncStorCategories(ctx, task, vendorID, storeID, vendorStoreID, nameIDs, skuIDs, false, isContinueWhenError) } case 1: - err = syncStoreSkuNew(ctx, task, false, vendorID, storeID, nameIDs, skuIDs, isContinueWhenError) + err = syncStoreSkuNew(ctx, task, false, vendorID, storeID, nameIDs, skuIDs, excludeSkuIDs, isContinueWhenError) } return result, err }, 2) @@ -154,9 +154,9 @@ func FullSyncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo } case 1: if singleStoreHandler != nil { - _, err = SyncStoreSkuNew(ctx, task, vendorID, storeID, vendorStoreID, nil, nil, false, isContinueWhenError) + _, err = SyncStoreSkuNew(ctx, task, vendorID, storeID, vendorStoreID, nil, nil, nil, false, isContinueWhenError) } else { - err = syncStoreSkuNew(ctx, task, true, vendorID, storeID, nil, nil, isContinueWhenError) + err = syncStoreSkuNew(ctx, task, true, vendorID, storeID, nil, nil, nil, isContinueWhenError) } } return retVal, err @@ -252,7 +252,7 @@ func updateStoreSku(db *dao.DaoDB, vendorID int, storeSkuList []*dao.StoreSkuSyn return num, err } -func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bool, vendorID, storeID int, nameIDs, skuIDs []int, isContinueWhenError bool) (err error) { +func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bool, vendorID, storeID int, nameIDs, skuIDs, excludeSkuIDs []int, isContinueWhenError bool) (err error) { db := dao.GetDB() storeDetail, err := dao.GetStoreDetail(db, storeID, vendorID) if err != nil { @@ -269,6 +269,16 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo if err != nil || len(skus) == 0 { return err } + if len(excludeSkuIDs) > 0 { + excludeSkuMap := jxutils.IntList2Map(excludeSkuIDs) + var skus2 []*dao.StoreSkuSyncInfo + for _, v := range skus { + if excludeSkuMap[v.SkuID] == 0 { + skus2 = append(skus2, v) + } + } + skus = skus2 + } formalizeStoreSkuList(skus) singleStoreHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreStoreSkuHandler) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 7895ca639..bed33e252 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -115,7 +115,7 @@ func doDailyWork() { // cms.CurVendorSync.FullSyncStoresSkus(jxcontext.AdminCtx, dao.GetDB(), []int{model.VendorIDJD}, nil, true, true) SaveImportantTaskID(TaskNameSyncStoreSku, SpecialTaskID) - taskID, _ := cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, dao.GetDB(), []int{model.VendorIDJD, model.VendorIDEBAI, model.VendorIDMTWM}, nil, nil, model.SyncFlagSaleMask|model.SyncFlagPriceMask, true, true) + taskID, _ := cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, dao.GetDB(), []int{model.VendorIDJD, model.VendorIDEBAI, model.VendorIDMTWM}, nil, nil, []int{27379, 30768}, model.SyncFlagSaleMask|model.SyncFlagPriceMask, true, true) SaveImportantTaskID(TaskNameSyncStoreSku, taskID) } From 8ea31c1967a7739d5502b1fd34cb8d21c81853a5 Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 16 Aug 2019 17:41:15 +0800 Subject: [PATCH 3/9] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=E8=AE=A1=E7=AE=97Goo?= =?UTF-8?q?dsOrder.EarningPrice=E7=9A=84bug.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index df4209051..e4ec6fc35 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -319,7 +319,7 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db *dao. if skuBindInfo.Price == 0 { globals.SugarLogger.Infof("updateOrderSkuOtherInfo [运营%s]%s订单sku门店价格为零(一般原因为没有门店价格信息),orderID:%s, StoreID:%d, SkuID:%d, sku:%v", opNumStr, model.VendorChineseNames[order.VendorID], order.VendorOrderID, jxStoreID, v.JxSkuID, v) } - v.EarningPrice = jxutils.CaculateSkuEarningPrice(v.ShopPrice, v.SalePrice, storePayPercentage) + // v.EarningPrice = jxutils.CaculateSkuEarningPrice(v.ShopPrice, v.SalePrice, storePayPercentage) } } @@ -363,22 +363,22 @@ func (c *OrderManager) updateOrderOtherInfo(order *model.GoodsOrder, db *dao.Dao } if err = c.updateOrderSkuOtherInfo(order, db, payPercentage); err == nil { jxutils.RefreshOrderSkuRelated(order) - // caculateOrderEarningPrice(order, payPercentage) + caculateOrderEarningPrice(order, payPercentage) } return err } // 计算结算给门店的金额 -// func caculateOrderEarningPrice(order *model.GoodsOrder, storePayPercentage int) { -// order.EarningPrice = 0 -// for _, v := range order.Skus { -// skuEarningPrice := v.EarningPrice -// if skuEarningPrice == 0 { -// skuEarningPrice = jxutils.CaculateSkuEarningPrice(v.ShopPrice, v.SalePrice, storePayPercentage) -// } -// order.EarningPrice += skuEarningPrice * int64(v.Count) -// } -// } +func caculateOrderEarningPrice(order *model.GoodsOrder, storePayPercentage int) { + order.EarningPrice = 0 + for _, v := range order.Skus { + skuEarningPrice := v.EarningPrice + if skuEarningPrice == 0 { + skuEarningPrice = jxutils.CaculateSkuEarningPrice(v.ShopPrice, v.SalePrice, storePayPercentage) + } + order.EarningPrice += skuEarningPrice * int64(v.Count) + } +} func (c *OrderManager) addOrderStatus(orderStatus *model.OrderStatus, db *dao.DaoDB) (isDuplicated bool, order *model.GoodsOrder, err error) { globals.SugarLogger.Debugf("addOrderStatus refOrderID:%s, orderID:%s", orderStatus.RefVendorOrderID, orderStatus.VendorOrderID) From 60d5940f3e734ecf95defaf9763de2aa3eae4def Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 16 Aug 2019 17:49:52 +0800 Subject: [PATCH 4/9] =?UTF-8?q?-=20GetStores=E6=97=B6keyword=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E8=AF=81=E7=85=A7=E7=9B=B8=E5=85=B3=E7=9A=84=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index edf11d8fe..b0a5c0d1b 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -240,8 +240,8 @@ func GetStores(ctx *jxcontext.Context, keyword string, params map[string]interfa if keyword != "" { keywordLike := "%" + keyword + "%" sqlWhere += ` AND (t1.name LIKE ? OR t1.tel1 LIKE ? OR t1.tel2 LIKE ? OR t1.operator_phone LIKE ? OR t1.market_man_phone LIKE ? - OR t1.last_operator LIKE ? OR city.name LIKE ? OR t1.address LIKE ? OR t1.printer_sn LIKE ?` - sqlWhereParams = append(sqlWhereParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike) + OR t1.last_operator LIKE ? OR city.name LIKE ? OR t1.address LIKE ? OR t1.printer_sn LIKE ? OR t1.licence_code LIKE ? OR t1.id_code LIKE ?` + sqlWhereParams = append(sqlWhereParams, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike, keywordLike) if keywordInt64, err2 := strconv.ParseInt(keyword, 10, 64); err2 == nil { if !globals.EnableWXAuth2 && jxutils.IsLegalMobileNumber(keywordInt64) { From 33e4b7e329134e8ae5b94f35502cce9b647ed8e5 Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 16 Aug 2019 17:51:32 +0800 Subject: [PATCH 5/9] - up --- business/jxstore/cms/store.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index b0a5c0d1b..d168b74b9 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -1711,7 +1711,7 @@ func SaveAndSendAlarmVendorSnapshot(ctx *jxcontext.Context, vendorIDs, storeIDs func SyncStoresQualify(ctx *jxcontext.Context, storeIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) { if len(storeIDs) > 0 { db := dao.GetDB() - task := tasksch.NewParallelTask("上传门店资质", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError), ctx, + task := tasksch.NewParallelTask(fmt.Sprintf("上传门店资质:%v", storeIDs), tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { vendorID := model.VendorIDJD if handler := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IStoreSyncQualifyHandler); handler != nil { From e7acd75c256a597ab6394bf7c091762a285273bc Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 16 Aug 2019 21:08:18 +0800 Subject: [PATCH 6/9] =?UTF-8?q?-=20SyncQualify=E4=B8=AD=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=97=A8=E5=BA=97=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jd/store.go | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/business/partner/purchase/jd/store.go b/business/partner/purchase/jd/store.go index 0d5aa3894..65ddab394 100644 --- a/business/partner/purchase/jd/store.go +++ b/business/partner/purchase/jd/store.go @@ -367,12 +367,21 @@ func (c *PurchaseHandler) storeUploadImgByURL(inImgURL string) (imgURL string, e return imgURL, err } +func addStoreInfo2Err(err error, storeID int) error { + if err != nil { + errExt := utils.NewErrorCode(err.Error(), "999") + errExt.AddPrefixMsg(fmt.Sprintf("门店%d", storeID)) + err = errExt + } + return err +} + func (c *PurchaseHandler) SyncQualify(ctx *jxcontext.Context, storeDetail *dao.StoreDetail) (err error) { if storeDetail.LicenceCode == "" || storeDetail.Licence == "" { - return fmt.Errorf("营业执照信息不全") + return addStoreInfo2Err(fmt.Errorf("营业执照信息不全"), storeDetail.ID) } if storeDetail.IDCode == "" || storeDetail.IDCardFront == "" || storeDetail.IDCardBack == "" || storeDetail.IDValid == "" { - return fmt.Errorf("个人信息不全") + return addStoreInfo2Err(fmt.Errorf("个人信息不全"), storeDetail.ID) } var qualifyList []*jdapi.QualifyItem licenceDetail, err := api.JdPageAPI.GetCorporationInfo(storeDetail.VendorStoreID, storeDetail.LicenceCode) @@ -399,7 +408,7 @@ func (c *PurchaseHandler) SyncQualify(ctx *jxcontext.Context, storeDetail *dao.S idFrondURL, err := c.storeUploadImgByURL(storeDetail.IDCardFront) if err != nil { - return err + return addStoreInfo2Err(err, storeDetail.ID) } // 个体经营,个体工商户 if storeDetail.LicenceType == 0 { // 个人 @@ -433,7 +442,7 @@ func (c *PurchaseHandler) SyncQualify(ctx *jxcontext.Context, storeDetail *dao.S if storeDetail.IDExpire == "" { idBackURL, err := c.storeUploadImgByURL(storeDetail.IDCardBack) if err != nil { - return err + return addStoreInfo2Err(err, storeDetail.ID) } qualifyList = append(qualifyList, &jdapi.QualifyItem{ QualifyType: jdapi.QualifyTypeAddInfo, @@ -447,5 +456,5 @@ func (c *PurchaseHandler) SyncQualify(ctx *jxcontext.Context, storeDetail *dao.S err = api.JdPageAPI.SaveQualify(storeDetail.VendorStoreID, jdapi.SaveQualifyActionTypeCommit, qualifyList) // err = api.JdPageAPI.SaveQualify(storeDetail.VendorStoreID, jdapi.SaveQualifyActionTypeSave, qualifyList) } - return err + return addStoreInfo2Err(err, storeDetail.ID) } From 882a7c60adb668e79ad4dd737ad81c02361b9fd8 Mon Sep 17 00:00:00 2001 From: gazebo Date: Sat, 17 Aug 2019 11:16:21 +0800 Subject: [PATCH 7/9] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8D=E6=B7=BB=E5=8A=A0exc?= =?UTF-8?q?ludeSkuIDs=E5=BC=95=E5=85=A5=E7=9A=84=E5=90=8C=E6=AD=A5bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sync.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/cms/sync.go b/business/jxstore/cms/sync.go index cb4834d3b..cb295b9fb 100644 --- a/business/jxstore/cms/sync.go +++ b/business/jxstore/cms/sync.go @@ -362,7 +362,7 @@ func (v *VendorSync) SyncStoresCategory(ctx *jxcontext.Context, db *dao.DaoDB, v } // -func (v *VendorSync) SyncStoresSkus2(ctx *jxcontext.Context, db *dao.DaoDB, vendorIDs []int, storeIDs, excludeSkuIDs []int, skuIDs []int, setSyncStatus int, isAsync, isContinueWhenError bool) (hint string, err error) { +func (v *VendorSync) SyncStoresSkus2(ctx *jxcontext.Context, db *dao.DaoDB, vendorIDs []int, storeIDs, skuIDs, excludeSkuIDs []int, setSyncStatus int, isAsync, isContinueWhenError bool) (hint string, err error) { globals.SugarLogger.Debug("SyncStoresSkus2") isManageIt := isAsync || len(storeIDs) != 1 || len(skuIDs) == 0 || len(skuIDs) > 8 task, hint, err := v.LoopStoresMap2(ctx, db, fmt.Sprintf("同步门店商品信息:%v", storeIDs), isAsync, isManageIt, vendorIDs, storeIDs, From 68d7b107f72521d7ceed00823fbc9f65b2ec45ac Mon Sep 17 00:00:00 2001 From: gazebo Date: Sat, 17 Aug 2019 16:23:51 +0800 Subject: [PATCH 8/9] =?UTF-8?q?-=20=E9=99=90=E5=88=B6ConsigneeName?= =?UTF-8?q?=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index e4ec6fc35..42014d9c7 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -206,6 +206,7 @@ func (c *OrderManager) SaveOrder(order *model.GoodsOrder, isAdjust bool, db *dao } } + order.ConsigneeName = utils.LimitUTF8StringLen(order.ConsigneeName, 32) // globals.SugarLogger.Debugf("saveOrder isAdjust:%t, order:%v", isAdjust, order) created, _, err2 := db.Db.ReadOrCreate(order, "VendorOrderID", "VendorID") if err = err2; err == nil { From 93a3022925c038d4ab74673b1112a506e0fb6abf Mon Sep 17 00:00:00 2001 From: gazebo Date: Sun, 18 Aug 2019 14:06:49 +0800 Subject: [PATCH 9/9] =?UTF-8?q?-=20=E6=9B=B4=E6=96=B0=E4=BA=AC=E4=B8=9C?= =?UTF-8?q?=E4=B8=8E=E9=A5=BF=E7=99=BE=E7=BD=91=E9=A1=B5cookie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/app.conf | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/conf/app.conf b/conf/app.conf index ee021b122..691989212 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -49,9 +49,9 @@ weixinMiniSecret = "e7ec67c86cbd4dfa531af7af7533cdc9" backstageHost = "http://www.jxc4.com" wxBackstageHost = "http://wx.jxc4.com" -jdStorePageCookie = "YYJV3NHVBPHLD36FWP6F3EM5PTXJ2XZQS7U4HWRIDPP4IWGUKUIB4XG5N26CZRDLDF7PKOXBPD6BNTUAJLETLZOIWMCVFI3K6MYZIY4QBIXIMXYDJNUKFGJVQTN5356SAD6WPCIHWNQAG7DDMF7L7S3SHDYZP7PPVMRGO4VWG2JRBMKFTOGIWZ5L2XHXC3SXQ4OLX7EL4RKUPZQT6GOH63KE3EVK37L5LG7TGSDGXFQP4377YK72UB5YZG6IJH6PY25YLLCJYPMDSHKPGYBUFJ4MMMKGN6MWB37CP7XVDBBZJ3U462ENTEXH744AWCQCIG2AAE2PKYVHC" -ebaiStorePageCookieWMUSS = "4AAPQCAAB5PF0aUGcBVzoRTCEkOFhFIhx-Yk9vN2EfPHYoLlROKBEsQmAUQjhNUgRt0ADAP5x-RFklwAAdjxGO11iOj8xKXYSSDIJb2BcPghsaklNfQwGS10JOVRFfhAiYElhEXFXIzoJKyloCGdwdFE6Qk9FRxojUFN3FVEHNjJPZJu4Bt9nxQ13cwoMbjA" -ebaiStorePageCookieWMSTOKEN = "AcAANQZAABbC04rUBZFc2UYanlocDAaP0dcfzZCeS1SHQ1qJ15ExgAA13A2dGLjdbcitBZJu4Bn6B_g6cZAAA0tyyFm8cdBaNAQAAwug8HTG0xRjwt1UZzbcAAN7ofRO" +jdStorePageCookie = "YYJV3NHVBPHLD36FWP6F3EM5PTXJ2XZQS7U4HWRIDPP4IWGUKUIB4XG5N26CZRDLDF7PKOXBPD6BNTUAJLETLZOIWMCVFI3K6MYZIY4QBIXIMXYDJNUKFGJVQTN5356SAD6WPCIHWNQAG7DDMF7L7S3SHCT3RM3CQG7IJIPUQ3THS5UIUYWMKINM7ETUOQB7OBPOPZVCT3ZJY55243TDVXLO25PP4UYSPTTPMNQ7HPMWOJKJ3BJWGVHD243MXH7NZWW264TKN5UOCJBSSSOKD2QQII" +ebaiStorePageCookieWMUSS = "B0AAFQCAAAGbhkuMCsvcyYBDkkyAxBGIBlgXAQYVwc7VwYZFkx2HDoPSmo5eV1femopWgJRawhgAALG04cg1RUmhUakBbJRdgPS0tNEhnQhNRewwuWwYYBDEFPCQSDXV5YWA6PAVRHUJ9SnVGMThYAjNjLw9pRxIbS04-XFo05AQgBl%7ERLA33vWcR73gEAKZ" +ebaiStorePageCookieWMSTOKEN = "gAALgNAAAGfBI5YEBHSQdZY1InIS8CVQU9aBU1f3VLWVQqKHAAAc5LnRLZ1QLLx0S5IuzCSX8ZQ7oUwAAUr-GEm9JpRc9AQAAsLkLHHXzuhh2lZkbyrcAAAWBESKg3ZA" mtpsStoreToken = "M0p9VatZSeSHfrosD5IViAVl73IcA8mlcuHIV5sG6Zpv83a7JE0wY3t26aEhrrs_MR5gtLSFF1UIkt8HAjaXow" weimobAppID = "319F5E7FB6784DFCA3684C9333EB7744" @@ -168,12 +168,12 @@ dbConnectStr = "root:WebServer@1@tcp(127.0.0.1:3306)/jxgy?charset=utf8mb4&loc=Lo jdToken = "84541069-fbe2-424b-b625-9b2ba1d4c9e6" jdAppKey = "5d5577a2506f41b8b4ec520ba83490f5" jdSecret = "0b01b9eeb15b41dab1c3d05d95c17a26" -jdStorePageCookie = "YDYCWYUGKSROMV3MKJQIFINJ5CLPYH6IRVFUMFJD3JI6VQKHX3YPHTWDIDBNMCBUKSY3P7SKAHHKR7PHQDSFRXZEWXA4XOUTALIQDGDYIEUCMDPWSYGDVT42DJ27CD27QKCR3UN7KF7EPIHGPR7GCRTBD7SYBZDLN74NRL62XOF7D7DWFVGOTM4HRJBSMMQJ77SR62PYMP6RCG33IRQGP6PRCKAO4M7FUA7G2ZM2SFQ6F6WUNO5GXDJSVUELLBJT" +jdStorePageCookie = "YDYCWYUGKSROMV3MKJQIFINJ5CLPYH6IRVFUMFJD3JI6VQKHX3YPHTWDIDBNMCBUKSY3P7SKAHHKR7PHQDSFRXZEWXA4XOUTALIQDGDYIEUCMDPWSYGDVT42DJ27CD27QKCR3UN7KF7EPIHGPR7GCRTBD6NFNB5MFIV6EPYE6RGXH6K2VN6O67WVPV5PLGYFIAKGHFCQNCPB4GL5IIBN4ARWFQ23OEMGXQRC77UCFGE7JOWTZG2KLEWZL5JBAVSZUYFDYFEFHXZNSJPWMFCADAJTUQ" ebaiSource = "35957" ebaiSecret = "10013fbb7c2ddad7" -ebaiStorePageCookieWMUSS = "AAHYDAAA-WUYHCDg5IVUYE1ZgVgEsWVIWZEJALR14JCJrZBIKImpPKHIIYRNceCYzDAPIXvhaFigAAWXw0BVUHGzpIW2ZkVAoHP24ZSBADGDh1HxoJexMvL2srYnABaQw6MWYgFjoqHHkYNEIoN1lfLXd5NXMMYyJ2DgVnDm1yBPxVClFNXg6wz00RdBUNAw" -ebaiStorePageCookieWMSTOKEN = "QAAHAZAAAoL2cgKBwUM341Kg06EhsoBWJFXUl4cVpIfgJMTVR2N3AAAEHdX9tFicJKVoIBM8kCfKvNA1dZwAA0tyyFu9YqhQ9AQAAr-R3GModaxvgfY8YW6gAAFJE5HB" +ebaiStorePageCookieWMUSS = "YBAABKPRplPSpTCX4YSUAvSg8dSjYpIwF3FzBsGEw7agNbNT90GnwfbAYdBU5cjRX%7EjwAAMxhrUGEheAUicBtSXDIeGB0hclFgZ2tcBlhhIlwwfRBHaV8pClctLEhIfSR6HDwXPC5nHBVTeBsrWjwHCjoXUCN1eS1NBKLzB9E9WREwhfALlGMDAJsPmAwAAO" +ebaiStorePageCookieWMSTOKEN = "gAAA4OkFSZBsOayRIAnRqd24YRRVvWgRFE2w2CGtjKlAIsYg1sNHEIQlwsBKLzB5sulw9nVQAA0tyyFu-F2xVbAQAAi6OrHIFNnBwgJlQdmb8AAHssrx9_zgABBgAABQ" mtwmAppID = "4123" mtwmSecret = "df2c88338b85f830cebce2a9eab56628"