From e00d73b06c28955f062caf01eb78c338eedcfeb3 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 31 Dec 2019 17:40:42 +0800 Subject: [PATCH 1/8] =?UTF-8?q?doDailyWork,=20AmendMissingOrders=E6=94=B9?= =?UTF-8?q?=E4=B8=BA72=E5=B0=8F=E6=97=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/misc/misc.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/jxstore/misc/misc.go b/business/jxstore/misc/misc.go index 769bed0d4..a19c191ff 100644 --- a/business/jxstore/misc/misc.go +++ b/business/jxstore/misc/misc.go @@ -216,7 +216,7 @@ func doDailyWork() { // 每天补全前一天与当天的订单 curDate := utils.Time2Date(time.Now()) - orderman.FixedOrderManager.AmendMissingOrders(jxcontext.AdminCtx, nil, 0, curDate.Add(-24*time.Hour), curDate, true, true) + orderman.FixedOrderManager.AmendMissingOrders(jxcontext.AdminCtx, nil, 0, curDate.Add(-72*time.Hour), curDate, true, true) //订单门店归属补漏 //fromDate, toDate都不传默认刷新当前天5天以前的订单,只传fromDate默认刷新fromDate到当天的订单 //只传toDate默认刷新toDate到5天以前的订单 From 08f2c440f541ac4b1356fafb47192fc19560f688 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 31 Dec 2019 17:55:17 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E9=A2=84=E5=94=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/sku.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/model/sku.go b/business/model/sku.go index c248691ff..2fcdb1d40 100644 --- a/business/model/sku.go +++ b/business/model/sku.go @@ -93,6 +93,7 @@ var ( "鲜切", "进口", "冰镇", + "预售", } SpecialUnit = "份" From 929370a7b13f4ce237bfe525e5b384592fbb4186 Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 1 Jan 2020 11:17:24 +0800 Subject: [PATCH 3/8] +RefreshPageShops --- business/netspider/netspider.go | 69 +++++++++++++-------------- controllers/net_spider.go | 13 +++++ routers/commentsRouter_controllers.go | 9 ++++ 3 files changed, 56 insertions(+), 35 deletions(-) diff --git a/business/netspider/netspider.go b/business/netspider/netspider.go index ff791a588..2e345795e 100644 --- a/business/netspider/netspider.go +++ b/business/netspider/netspider.go @@ -51,30 +51,34 @@ func GetCityShops(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs [] func getStorePageInfo(ctx *jxcontext.Context, handler partner.IPurchasePlatformNetSpiderHandler, cityCode int, vendorStoreID string) (storePageInfo *model.PageShop, err error) { storePageInfo, err = handler.GetStorePageInfo(ctx, vendorStoreID) if err == nil && storePageInfo != nil { - if !(storePageInfo.Lng != 0 && storePageInfo.Lat != 0) { - storePageInfo.Lng, storePageInfo.Lat, storePageInfo.DistrictCode = api.AutonaviAPI.GetCoordinateFromAddress(storePageInfo.Address, utils.Int2Str(cityCode)) - if storePageInfo.DistrictCode == 0 && cityCode != 0 { - if place, err := dao.GetPlaceByCode(dao.GetDB(), cityCode); err == nil { - storePageInfo.Lng, storePageInfo.Lat, storePageInfo.DistrictCode = api.AutonaviAPI.GetCoordinateFromAddress(storePageInfo.Address, utils.Int2Str(place.ParentCode)) - } - } - } else if storePageInfo.DistrictCode == 0 { - storePageInfo.DistrictCode = api.AutonaviAPI.GetCoordinateDistrictCode(storePageInfo.Lng, storePageInfo.Lat) - } - if storePageInfo.CityCode == 0 { - if storePageInfo.DistrictCode != 0 { - if place, err := dao.GetPlaceByCode(dao.GetDB(), storePageInfo.DistrictCode); err == nil { - storePageInfo.CityCode = place.ParentCode - } - } - if storePageInfo.CityCode == 0 { - storePageInfo.CityCode = cityCode - } - } + updatePageShopCityDistrictInfo(ctx, storePageInfo, cityCode) } return storePageInfo, err } +func updatePageShopCityDistrictInfo(ctx *jxcontext.Context, storePageInfo *model.PageShop, cityCode int) { + if !(storePageInfo.Lng != 0 && storePageInfo.Lat != 0) { + storePageInfo.Lng, storePageInfo.Lat, storePageInfo.DistrictCode = api.AutonaviAPI.GetCoordinateFromAddress(storePageInfo.Address, utils.Int2Str(cityCode)) + if storePageInfo.DistrictCode == 0 && cityCode != 0 { + if place, err := dao.GetPlaceByCode(dao.GetDB(), cityCode); err == nil { + storePageInfo.Lng, storePageInfo.Lat, storePageInfo.DistrictCode = api.AutonaviAPI.GetCoordinateFromAddress(storePageInfo.Address, utils.Int2Str(place.ParentCode)) + } + } + } else if storePageInfo.DistrictCode == 0 { + storePageInfo.DistrictCode = api.AutonaviAPI.GetCoordinateDistrictCode(storePageInfo.Lng, storePageInfo.Lat) + } + if storePageInfo.CityCode == 0 { + if storePageInfo.DistrictCode != 0 { + if place, err := dao.GetPlaceByCode(dao.GetDB(), storePageInfo.DistrictCode); err == nil { + storePageInfo.CityCode = place.ParentCode + } + } + if storePageInfo.CityCode == 0 { + storePageInfo.CityCode = cityCode + } + } +} + func getStoreListByCoordinates(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorID, cityCode int, coordList []*ditu.Coordinate) (storeList []*model.PageShop, err error) { if len(coordList) > 0 { if handler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IPurchasePlatformNetSpiderHandler); handler != nil { @@ -230,28 +234,23 @@ func GetAndStoreCitiesShops(ctx *jxcontext.Context, vendorIDs []int, cityCodeLis return hint, err } -func RefreshPageStore(ctx *jxcontext.Context) (err error) { +func RefreshPageShops(ctx *jxcontext.Context) (err error) { sql := ` SELECT * FROM page_shop t1 - WHERE t1.vendor_id = 0 - ` + WHERE t1.district_code = 0 AND t1.lng != 0 AND t1.lat != 0` db := dao.GetDB() var shopList []*model.PageShop if err = dao.GetRows(db, &shopList, sql); err != nil { return err } - for _, v := range shopList { - if handler, _ := partner.GetPurchasePlatformFromVendorID(v.VendorID).(partner.IPurchasePlatformNetSpiderHandler); handler != nil { - storePageInfo, err2 := getStorePageInfo(ctx, handler, v.CityCode, v.VendorStoreID) - if err2 == nil { - v.RecentOrderNum = storePageInfo.RecentOrderNum - v.SkuCount = storePageInfo.SkuCount - dao.UpdateEntity(db, v, "RecentOrderNum", "SkuCount") - } else { - globals.SugarLogger.Debugf("RefreshPageStore err:%v", err) - } - } - } + task := tasksch.NewParallelTask(fmt.Sprintf("刷新网页门店信息:%d", len(shopList)), nil, ctx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + pageShop := batchItemList[0].(*model.PageShop) + updatePageShopCityDistrictInfo(ctx, pageShop, pageShop.CityCode) + _, err = dao.UpdateEntity(db, pageShop, "CityCode", "DistrictCode", "Lng", "Lat") + return retVal, err + }, shopList) + tasksch.HandleTask(task, nil, true).Run() return err } diff --git a/controllers/net_spider.go b/controllers/net_spider.go index 8b2979ddb..4c40ae0f1 100644 --- a/controllers/net_spider.go +++ b/controllers/net_spider.go @@ -136,3 +136,16 @@ func (l PageShopList) Less(i, j int) bool { func (l PageShopList) Swap(i, j int) { l[i], l[j] = l[j], l[i] } + +// @Title 刷新网页门店信息 +// @Description 刷新网页门店信息 +// @Param token header string true "认证token" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /RefreshPageShops [post] +func (c *NetSpiderController) RefreshPageShops() { + c.callRefreshPageShops(func(params *tNetspiderRefreshPageShopsParams) (retVal interface{}, errCode string, err error) { + err = netspider.RefreshPageShops(params.Ctx) + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index e01df7596..8dd75fed7 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -702,6 +702,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:NetSpiderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:NetSpiderController"], + beego.ControllerComments{ + Method: "RefreshPageShops", + Router: `/RefreshPageShops`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"], beego.ControllerComments{ Method: "AcceptOrRefuseFailedGetOrder", From 44bfc4a6ca404d8a1a9a9dadbba71bfbf84dc829 Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 2 Jan 2020 10:22:47 +0800 Subject: [PATCH 4/8] up --- business/model/const.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/business/model/const.go b/business/model/const.go index f96a52a4e..8ffff9d36 100644 --- a/business/model/const.go +++ b/business/model/const.go @@ -41,8 +41,10 @@ var ( OrderStatusUnlocked: "解锁", OrderStatusLocked: "锁定", // OrderStatusApplyRefund: "申请退款", - OrderStatusUndoApplyCancel: "取消申请取消", - OrderStatusApplyCancel: "申请取消", + OrderStatusUndoApplyCancel: "取消申请取消", + OrderStatusVendorRejectCancel: "拒绝取消", + OrderStatusVendorAgreeCancel: "同意取消", + OrderStatusApplyCancel: "申请取消", OrderStatusUnknown: "一般事件", From 8c5c0bb83b6c9d0f531da7e077e0eb152c3a0308 Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 2 Jan 2020 10:55:20 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E9=99=90=E5=88=B6=E4=BA=AC=E4=B8=9C?= =?UTF-8?q?=E9=97=A8=E5=90=8D=E9=95=BF=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jd/store.go | 1 + 1 file changed, 1 insertion(+) diff --git a/business/partner/purchase/jd/store.go b/business/partner/purchase/jd/store.go index 40c97678b..e4c9fdfd1 100644 --- a/business/partner/purchase/jd/store.go +++ b/business/partner/purchase/jd/store.go @@ -152,6 +152,7 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin } else { storeParams.StationName = jxutils.ComposeStoreName(store.Name, model.VendorIDJD) } + storeParams.StationName = utils.LimitUTF8StringLen(storeParams.StationName, jdapi.MaxStoreNameLen) } if store.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreAddress) != 0 { storeParams.StationAddress = store.Address From ccfb852b586c63ebc191df37cf749b5fc33d3dd0 Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 2 Jan 2020 13:52:04 +0800 Subject: [PATCH 6/8] up --- business/model/dao/act.go | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/business/model/dao/act.go b/business/model/dao/act.go index 4d15fcf8e..cacbcdc6e 100644 --- a/business/model/dao/act.go +++ b/business/model/dao/act.go @@ -395,14 +395,8 @@ func GetEffectiveActStoreSkuInfo(db *DaoDB, actID int, vendorIDs []int, actType model.SyncFlagNewMask, model.ActSkuFake, - utils.DefaultTimeValue, - model.SyncFlagNewMask, - model.ActSkuFake, - - utils.DefaultTimeValue, - model.ActStatusCreated, - endAt, - beginAt, + utils.DefaultTimeValue, model.SyncFlagNewMask, model.ActSkuFake, + utils.DefaultTimeValue, model.ActStatusCreated, endAt, beginAt, } if len(vendorIDs) > 0 { sql += " AND (t1.vendor_mask & ?) <> 0 AND t3.vendor_id IN (" + GenQuestionMarks(len(vendorIDs)) + ")" From dcd4dd683d75fcdf4a5ef0618133753ddb6347e8 Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 2 Jan 2020 14:00:44 +0800 Subject: [PATCH 7/8] UpdateStoreSkuNamePrice --- business/jxstore/cms/store_sku.go | 14 ++++++++++++++ controllers/cms_store_sku.go | 17 +++++++++++++++++ routers/commentsRouter_controllers.go | 9 +++++++++ 3 files changed, 40 insertions(+) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index b9dee32f5..0d5ad4671 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -2909,3 +2909,17 @@ func FocusStoreSkusBySku(ctx *jxcontext.Context, skuIDs []int, isAsync, isContin } return hint, err } + +func UpdateStoreSkuNamePrice(ctx *jxcontext.Context, storeID, nameID, unitPrice int, isAsync bool) (hint string, err error) { + // db := dao.GetDB() + // skuList, err := dao.GetSkus(db, nil, []int{nameID}, nil, nil) + // if err != nil || len(skuList) == 0 { + // return "", err + // } + // var skuIDs []int + // for _, v := range skuList { + // skuIDs = append(skuIDs, v.ID) + // } + // actStoreSkuList, err :=dao.GetEffectiveActStoreSkuInfo(db, 0, nil, model.ActSkuDirectDown, []int{storeID}, skuIDs, time.Now(),time.Now()) + return hint, err +} diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 0a56d880a..9f6adbf28 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -244,6 +244,23 @@ func (c *StoreSkuController) UpdateStoresSkusByBind() { }) } +// @Title 修改门店SkuName价格 +// @Description 修改门店SkuName价格(支持活动中改价) +// @Param token header string true "认证token" +// @Param storeID formData int true "门店ID" +// @Param nameID formData int true "SkuName ID" +// @Param unitPrice formData int true "单价" +// @Param isAsync formData bool false "是否异步操作" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /UpdateStoreSkuNamePrice [put] +func (c *StoreSkuController) UpdateStoreSkuNamePrice() { + c.callUpdateStoreSkuNamePrice(func(params *tStoreSkuUpdateStoreSkuNamePriceParams) (retVal interface{}, errCode string, err error) { + retVal, err = cms.UpdateStoreSkuNamePrice(params.Ctx, params.StoreID, params.NameID, params.UnitPrice, params.IsAsync) + return retVal, "", err + }) +} + // @Title 拷贝门店SKU信息 // @Description 拷贝门店SKU信息(此函数当前只是本地数据操作,要同步到远端需要调用SyncStoresSkus) // @Param token header string true "认证token" diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 8dd75fed7..3448c579f 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1800,6 +1800,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], + beego.ControllerComments{ + Method: "UpdateStoreSkuNamePrice", + Router: `/UpdateStoreSkuNamePrice`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"], beego.ControllerComments{ Method: "UpdateStoreSkus", From c444202330d859865bc55dfc04ee1f62d181e263 Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 2 Jan 2020 14:41:45 +0800 Subject: [PATCH 8/8] =?UTF-8?q?store=5Fsku.go=E4=B8=AD=E5=8E=BB=E6=8E=89?= =?UTF-8?q?=E5=AF=B9=E4=BA=8EJdID=E7=9A=84=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 0d5ad4671..667a60b0f 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -1890,7 +1890,7 @@ func RefreshStoresSkuByVendor(ctx *jxcontext.Context, storeIDs []int, vendorID i return "", fmt.Errorf("此功能当前只支持京东到家平台") } db := dao.GetDB() - storeMapList, err := dao.GetStoresMapList(db, nil, storeIDs, model.StoreStatusAll, model.StoreIsSyncAll, "") + storeMapList, err := dao.GetStoresMapList(db, []int{vendorID}, storeIDs, model.StoreStatusAll, model.StoreIsSyncAll, "") if err != nil { return "", err } @@ -1907,13 +1907,13 @@ func RefreshStoresSkuByVendor(ctx *jxcontext.Context, storeIDs []int, vendorID i return "", err } } - skuList, err := dao.GetSkus(db, nil, nil, nil, nil) + skuList, err := dao.GetSkusWithVendor(db, []int{vendorID}, nil, nil, nil, false) if err != nil { return "", err } skuNameMap := make(map[int]*model.SkuName) - skuMap := make(map[int]*model.SkuAndName) - var bareStoreSkuList []*partner.StoreSkuInfo + skuMap := make(map[int]*dao.StoreSkuSyncInfo) + bareStoreSkuMap := make(map[string][]*partner.StoreSkuInfo) for _, sku := range skuList { if skuNameMap[sku.NameID] == nil { skuNameMap[sku.NameID] = &model.SkuName{ @@ -1922,9 +1922,9 @@ func RefreshStoresSkuByVendor(ctx *jxcontext.Context, storeIDs []int, vendorID i } skuMap[sku.ID] = sku - bareStoreSkuList = append(bareStoreSkuList, &partner.StoreSkuInfo{ + bareStoreSkuMap[sku.VendorOrgCode] = append(bareStoreSkuMap[sku.VendorOrgCode], &partner.StoreSkuInfo{ SkuID: sku.ID, - VendorSkuID: utils.Int64ToStr(sku.JdID), + VendorSkuID: sku.VendorSkuID, }) } @@ -1937,7 +1937,7 @@ func RefreshStoresSkuByVendor(ctx *jxcontext.Context, storeIDs []int, vendorID i func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { switch step { case 0: - bareStoreSkuList, err2 := handler.GetStoreSkusBareInfo(ctx, oneStoreMap.VendorOrgCode, task, oneStoreMap.StoreID, oneStoreMap.VendorStoreID, bareStoreSkuList) + bareStoreSkuList, err2 := handler.GetStoreSkusBareInfo(ctx, oneStoreMap.VendorOrgCode, task, oneStoreMap.StoreID, oneStoreMap.VendorStoreID, bareStoreSkuMap[oneStoreMap.VendorOrgCode]) // globals.SugarLogger.Debug(utils.Format4Output(bareStoreSkuList, false)) if err = err2; err == nil || len(bareStoreSkuList) > 0 { err = nil // todo 如果部分失败,强制忽略错误 @@ -2624,15 +2624,15 @@ func GetVendorStoreSkuPrice(ctx *jxcontext.Context, vendorIDs []int, skuID int, outStoreSkuList []*partner.StoreSkuInfo ) db := dao.GetDB() - skuNameList, err := dao.GetSkus(db, []int{skuID}, nil, nil, nil) + skuList, err := dao.GetSkusWithVendor(db, []int{vendorID}, []string{v}, nil, []int{skuID}, false) if err != nil { return retVal, err } if partner.IsMultiStore(vendorID) { multiHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IMultipleStoresHandler) storeDetail, err = multiHandler.ReadStore(ctx, v, vendorStoreID) - if len(skuNameList) > 0 { - inStoreSku.VendorSkuID = utils.Int64ToStr(skuNameList[0].JdID) + if len(skuList) > 0 { + inStoreSku.VendorSkuID = skuList[0].VendorSkuID } } else { singleHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreHandler) @@ -2652,7 +2652,7 @@ func GetVendorStoreSkuPrice(ctx *jxcontext.Context, vendorIDs []int, skuID int, StoreID: vendorStoreID, StoreName: storeDetail.Name, SkuID: skuID, - SkuName: skuNameList[0].Name, + SkuName: skuList[0].Name, VendorPrice: "", } retVal = []DataVendorStoreSkuPrice{data} @@ -2661,7 +2661,7 @@ func GetVendorStoreSkuPrice(ctx *jxcontext.Context, vendorIDs []int, skuID int, StoreID: vendorStoreID, StoreName: storeDetail.Name, SkuID: skuID, - SkuName: skuNameList[0].Name, + SkuName: skuList[0].Name, VendorPrice: utils.Float64ToStr(utils.Str2Float64(utils.Int64ToStr(outStoreSkuList[0].VendorPrice)) / 100), } retVal = []DataVendorStoreSkuPrice{data}