From f4c400d69ef47ee2578dcd1e1c48e6f1c847c4ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Dec 2019 10:25:12 +0800 Subject: [PATCH 1/8] =?UTF-8?q?=E6=8E=A8=E8=8D=90=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index c4f0e03a1..7d6e8834f 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -665,7 +665,7 @@ func GetStoreSkusByNameIDs(db *DaoDB, storeIDs []int, nameID int) (skuList []*St func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (skuAndName []*model.SkuAndName, err error) { sql := ` - SELECT * + SELECT t2.*,t3.name, t3.unit, t3.prefix, t3.is_spu FROM( SELECT SUM(b.count) count,b.sku_id FROM goods_order a From 6dbb783aec43fdfb85f5bdab5cf81713931b0d30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Dec 2019 10:42:50 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E6=8E=A8=E8=8D=90=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store_sku.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 8fb649557..0418386aa 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -665,12 +665,13 @@ func GetStoreSkusByNameIDs(db *DaoDB, storeIDs []int, nameID int) (skuList []*St func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (skuAndName []*model.SkuAndName, err error) { sql := ` - SELECT t2.*,t3.name, t3.unit, t3.prefix, t3.is_spu + SELECT t3.* FROM( - SELECT SUM(b.count) count,b.sku_id + SELECT SUM(b.count) count,d.id FROM goods_order a JOIN order_sku b ON a.vendor_order_id = b.vendor_order_id JOIN sku c ON b.sku_id = c.id AND c.deleted_at = ? + JOIN sku_name d ON d.id = c.name_id WHERE 1=1 ` sqlParams := []interface{}{ @@ -682,9 +683,8 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (skuAndName []*model.SkuAnd } sql += ` AND b.sale_price > ? - GROUP BY b.sku_id)t1 - JOIN sku t2 ON t1.sku_id = t2.id - JOIN sku_name t3 ON t2.name_id = t3.id + GROUP BY d.id)t1 + JOIN sku_name t3 ON t1.id = t3.id ORDER BY t1.count DESC LIMIT ? ` From dc5818072902798e053a1ff91a2054887e668bde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Dec 2019 10:45:42 +0800 Subject: [PATCH 3/8] =?UTF-8?q?=E6=8E=A8=E8=8D=90=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 8 ++++---- business/model/dao/store_sku.go | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 54274907d..1eb5b3e51 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -2121,14 +2121,14 @@ func ReCalculateJxPrice(ctx *jxcontext.Context, storeIDs []int) (err error) { return err } -func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (skuAndName []*model.SkuAndName, err error) { +func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (skuName []*model.SkuName, err error) { if len(storeIDs) == 0 { - return skuAndName, err + return skuName, err } db := dao.GetDB() - skuAndName, err = dao.GetTopSkusByStoreIDs(db, storeIDs) + skuName, err = dao.GetTopSkusByStoreIDs(db, storeIDs) if err != nil { return nil, err } - return skuAndName, err + return skuName, err } diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index 0418386aa..e9a891a5d 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -663,7 +663,7 @@ func GetStoreSkusByNameIDs(db *DaoDB, storeIDs []int, nameID int) (skuList []*St return skuList, err } -func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (skuAndName []*model.SkuAndName, err error) { +func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (skuName []*model.SkuName, err error) { sql := ` SELECT t3.* FROM( @@ -689,8 +689,8 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (skuAndName []*model.SkuAnd LIMIT ? ` sqlParams = append(sqlParams, 100, 30) - err = GetRows(db, &skuAndName, sql, sqlParams...) - return skuAndName, err + err = GetRows(db, &skuName, sql, sqlParams...) + return skuName, err } func SetStoreSkuBindVendorPrice(storeSkuBind *model.StoreSkuBind, vendorID int, vendorPrice int) { From d570664efacdb2acc9f8c7b8b06ad9b140b39b2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Dec 2019 11:03:52 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E6=8E=A8=E8=8D=90=E5=88=86=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 12 +++++++++ business/model/dao/store_sku.go | 36 ++++++++++++++++++++++++++- controllers/cms_store_sku.go | 17 +++++++++++++ routers/commentsRouter_controllers.go | 9 +++++++ 4 files changed, 73 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 1eb5b3e51..7e4cccbe9 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -2132,3 +2132,15 @@ func GetTopSkusByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (skuName []*mo } return skuName, err } + +func GetTopCategorysByStoreIDs(ctx *jxcontext.Context, storeIDs []int) (skuCategory []*model.SkuCategory, err error) { + if len(storeIDs) == 0 { + return skuCategory, err + } + db := dao.GetDB() + skuCategory, err = dao.GetTopCategorysByStoreIDs(db, storeIDs) + if err != nil { + return nil, err + } + return skuCategory, err +} diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index e9a891a5d..e2c0d1686 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -671,11 +671,12 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (skuName []*model.SkuName, FROM goods_order a JOIN order_sku b ON a.vendor_order_id = b.vendor_order_id JOIN sku c ON b.sku_id = c.id AND c.deleted_at = ? - JOIN sku_name d ON d.id = c.name_id + JOIN sku_name d ON d.id = c.name_id AND d.deleted_at = ? WHERE 1=1 ` sqlParams := []interface{}{ utils.DefaultTimeValue, + utils.DefaultTimeValue, } if len(storeIDs) > 0 { sql += " AND a.store_id in(" + GenQuestionMarks(len(storeIDs)) + ")" @@ -693,6 +694,39 @@ func GetTopSkusByStoreIDs(db *DaoDB, storeIDs []int) (skuName []*model.SkuName, return skuName, err } +func GetTopCategorysByStoreIDs(db *DaoDB, storeIDs []int) (skuCategory []*model.SkuCategory, err error) { + sql := ` + SELECT t3.* + FROM( + SELECT SUM(b.count) count,d.category_id + FROM goods_order a + JOIN order_sku b ON a.vendor_order_id = b.vendor_order_id + JOIN sku c ON b.sku_id = c.id AND c.deleted_at = ? + JOIN sku_name d ON d.id = c.name_id AND d.deleted_at = ? + WHERE 1=1 + ` + sqlParams := []interface{}{ + utils.DefaultTimeValue, + utils.DefaultTimeValue, + } + if len(storeIDs) > 0 { + sql += " AND a.store_id in(" + GenQuestionMarks(len(storeIDs)) + ")" + sqlParams = append(sqlParams, storeIDs) + } + sql += ` + AND b.sale_price > ? + GROUP BY d.category_id)t1 + JOIN sku_category t3 ON t1.category_id = t3.id + AND t3.level = ? + AND t3.deleted_at = ? + ORDER BY t1.count DESC + LIMIT ? + ` + sqlParams = append(sqlParams, 100, 10, 2, utils.DefaultTimeValue) + err = GetRows(db, &skuCategory, sql, sqlParams...) + return skuCategory, err +} + func SetStoreSkuBindVendorPrice(storeSkuBind *model.StoreSkuBind, vendorID int, vendorPrice int) { switch vendorID { case model.VendorIDJD: diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 0a6857dc7..afd4811a7 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -455,3 +455,20 @@ func (c *StoreSkuController) GetTopSkusByStoreIDs() { return retVal, "", err }) } + +// @Title 根据门店信息查找推荐分类(按商品销量) +// @Description 根据门店信息查找推荐分类(按商品销量) +// @Param token header string true "认证token" +// @Param storeIDs query string true "门店列表" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /GetTopCategorysByStoreIDs [get] +func (c *StoreSkuController) GetTopCategorysByStoreIDs() { + var storeIDList []int + c.callGetTopCategorysByStoreIDs(func(params *tStoreSkuGetTopCategorysByStoreIDsParams) (retVal interface{}, errCode string, err error) { + if jxutils.Strings2Objs(params.StoreIDs, &storeIDList); err == nil { + retVal, err = cms.GetTopCategorysByStoreIDs(params.Ctx, storeIDList) + } + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index efb874ecf..e82a9f5a1 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1584,6 +1584,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: "GetTopCategorysByStoreIDs", + Router: `/GetTopCategorysByStoreIDs`, + AllowHTTPMethods: []string{"get"}, + 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: "GetTopSkusByStoreIDs", From ab9bdbbff9f4e0db41ae7dedb7767f0b65c00cfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Tue, 3 Dec 2019 11:09:06 +0800 Subject: [PATCH 5/8] =?UTF-8?q?=E6=8E=A8=E8=8D=90=E5=88=86=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/store_sku.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index e2c0d1686..071cf6913 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -722,7 +722,7 @@ func GetTopCategorysByStoreIDs(db *DaoDB, storeIDs []int) (skuCategory []*model. ORDER BY t1.count DESC LIMIT ? ` - sqlParams = append(sqlParams, 100, 10, 2, utils.DefaultTimeValue) + sqlParams = append(sqlParams, 100, 2, utils.DefaultTimeValue, 10) err = GetRows(db, &skuCategory, sql, sqlParams...) return skuCategory, err } From 9dd4c76074c5d907e120e6218fba9104d241f9f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 5 Dec 2019 14:46:52 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=90=84=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E6=9C=AA=E8=90=A5=E4=B8=9A=E9=97=A8=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 143 +++++++++++++++++++++++++ business/jxstore/report/report.go | 5 + business/model/dao/report.go | 4 + business/partner/purchase/ebai/ebai.go | 5 +- controllers/cms_store.go | 19 ++++ controllers/jx_report.go | 18 ++++ routers/commentsRouter_controllers.go | 18 ++++ 7 files changed, 211 insertions(+), 1 deletion(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 5254a0ed5..f1d1958d6 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -129,6 +129,14 @@ type JxBadCommentsExt struct { VendorOrderID2 string `orm:"column(vendor_order_id2);size(48);index" json:"vendorOrderID2"` } +type VendorStoreExcel struct { + StoreID int `json:"门店ID"` + VendorStoreName string `json:"门店名"` + Status string `json:"营业状态"` + Tel1 string `json:"电话1"` + Tel2 string `json:"电话2"` +} + var ( ErrMissingInput = errors.New("没有有效的输入参数") ErrCanNotFindVendor = errors.New("vendorID参数不合法") @@ -160,6 +168,13 @@ var ( "15:00:00", "20:00:00", } + titleListStore = []string{ + "门店ID", + "门店名", + "营业状态", + "电话1", + "电话2", + } ) func getStoresSql(ctx *jxcontext.Context, keyword string, params map[string]interface{}, orderTimeFrom, orderTimeTo time.Time) (sql string, sqlParams []interface{}, sqlFrom string, sqlFromParams []interface{}, err error) { @@ -2269,3 +2284,131 @@ func ExecuteFileName(filename string) (name string) { name = fileRealName + utils.Int64ToStr(time.Now().Unix()) + filePrefix return name } + +func GetVendorStoreInfo(ctx *jxcontext.Context, vendorIDList []int, isAsync, isContinueWhenError bool) (hint string, err error) { + var ( + storeListJD []VendorStoreExcel + storeListMT []VendorStoreExcel + storeListEB []VendorStoreExcel + ) + taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { + switch step { + case 0: + for _, vendorID := range vendorIDList { + iStoreHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IStoreHandler) + storeIDs, err := iStoreHandler.GetAllStoresVendorID(ctx) + if err != nil { + return "", err + } + taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + var storeDetail *dao.StoreDetail + storeID := batchItemList[0].(string) + if partner.IsMultiStore(vendorID) { + multiHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IMultipleStoresHandler) + storeDetail, err = multiHandler.ReadStore(ctx, storeID) + if err != nil { + return retVal, err + } + } else { + singleHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreHandler) + storeDetail, err = singleHandler.ReadStore(ctx, storeID) + if err != nil { + return retVal, err + } + } + if storeDetail.Status != model.StoreStatusOpened { + var storeExcel = VendorStoreExcel{ + StoreID: storeDetail.ID, + VendorStoreName: storeDetail.Name, + Tel1: storeDetail.Tel1, + Tel2: storeDetail.Tel2, + Status: StoreStatus2Chinese(storeDetail.Status), + } + retVal = []VendorStoreExcel{storeExcel} + } + return retVal, err + } + taskParallel := tasksch.NewParallelTask("获取各平台未营业门店", tasksch.NewParallelConfig(), ctx, taskFunc, storeIDs) + tasksch.HandleTask(taskParallel, task, true).Run() + storeList, err := taskParallel.GetResult(0) + for _, v := range storeList { + if vendorID == model.VendorIDJD { + storeListJD = append(storeListJD, v.(VendorStoreExcel)) + } + if vendorID == model.VendorIDEBAI { + storeListEB = append(storeListEB, v.(VendorStoreExcel)) + } + if vendorID == model.VendorIDMTWM { + storeListMT = append(storeListMT, v.(VendorStoreExcel)) + } + } + } + case 1: + WriteToExcelStore(task, storeListJD, storeListMT, storeListEB) + } + return result, err + } + taskSeq := tasksch.NewSeqTask2("导出各平台未营业门店-序列任务", ctx, isContinueWhenError, taskSeqFunc, 2) + tasksch.HandleTask(taskSeq, nil, true).Run() + if !isAsync { + _, err = taskSeq.GetResult(0) + hint = "1" + } else { + hint = taskSeq.GetID() + } + return hint, err +} + +func WriteToExcelStore(task *tasksch.SeqTask, storeListJD, storeListMT, storeListEB []VendorStoreExcel) (err error) { + var sheetList []*excel.Obj2ExcelSheetConfig + var downloadURL, fileName string + if len(storeListJD) > 0 { + excelConf := &excel.Obj2ExcelSheetConfig{ + Title: "京东平台", + Data: storeListJD, + CaptionList: titleListStore, + } + sheetList = append(sheetList, excelConf) + } + if len(storeListMT) > 0 { + excelConf := &excel.Obj2ExcelSheetConfig{ + Title: "饿百平台", + Data: storeListMT, + CaptionList: titleListStore, + } + sheetList = append(sheetList, excelConf) + } + if len(storeListEB) > 0 { + excelConf := &excel.Obj2ExcelSheetConfig{ + Title: "美团平台", + Data: storeListEB, + CaptionList: titleListStore, + } + sheetList = append(sheetList, excelConf) + } + if len(sheetList) == 0 { + return errors.New("所选平台没有未营业的门店!") + } else { + downloadURL, fileName, err = jxutils.UploadExeclAndPushMsg(sheetList, "各平台未营业门店统计") + if err != nil { + baseapi.SugarLogger.Errorf("WriteToExcel:upload %s failed error:%v", fileName, err) + } else { + noticeMsg := fmt.Sprintf("[详情点我]path=%s \n", downloadURL) + task.SetNoticeMsg(noticeMsg) + baseapi.SugarLogger.Debugf("WriteToExcel:upload %s success, downloadURL:%s", fileName, downloadURL) + } + } + return err +} + +func StoreStatus2Chinese(status int) (str string) { + if status == model.StoreStatusOpened { + return "正常营业" + } else if status == model.StoreStatusDisabled { + return "暂停营业" + } else if status == model.StoreStatusClosed { + return "休息中" + } else { + return "未知的营业状态" + } +} diff --git a/business/jxstore/report/report.go b/business/jxstore/report/report.go index 0538ea1ab..692825794 100644 --- a/business/jxstore/report/report.go +++ b/business/jxstore/report/report.go @@ -33,3 +33,8 @@ func GetStatisticsReportForAfsOrders(ctx *jxcontext.Context, storeIDs []int, fro statisticsReportForOrdersList, err = dao.GetGetStatisticsReportForAfsOrders(db, storeIDs, fromDateParm, toDateParm) return statisticsReportForOrdersList, err } + +func StatisticsReportForStoreSkusPrice(ctx *jxcontext.Context, cityCodes, skuIDs []int) (err error) { + db := dao.GetDB() + return dao.GetStatisticsReportForStoreSkusPrice(db, cityCodes, skuIDs) +} diff --git a/business/model/dao/report.go b/business/model/dao/report.go index a668c5a4b..ac3df5749 100644 --- a/business/model/dao/report.go +++ b/business/model/dao/report.go @@ -177,3 +177,7 @@ func GetGetStatisticsReportForAfsOrders(db *DaoDB, storeIDs []int, fromDate time } return nil, err } + +func GetStatisticsReportForStoreSkusPrice(db *DaoDB, cityCodes, skuIDs []int) (err error) { + return err +} diff --git a/business/partner/purchase/ebai/ebai.go b/business/partner/purchase/ebai/ebai.go index c5cd5fe05..ffc778422 100644 --- a/business/partner/purchase/ebai/ebai.go +++ b/business/partner/purchase/ebai/ebai.go @@ -39,9 +39,12 @@ func New() (obj *PurchaseHandler) { } func EbaiBusStatus2JxStatus(ebaiStatus int) int { - if ebaiStatus == ebaiapi.ShopBusStatusHaveRest || ebaiStatus == ebaiapi.ShopBusStatusSuspended { + if ebaiStatus == ebaiapi.ShopBusStatusHaveRest { return model.StoreStatusClosed } + if ebaiStatus == ebaiapi.ShopBusStatusSuspended { + return model.StoreStatusDisabled + } return model.StoreStatusOpened } diff --git a/controllers/cms_store.go b/controllers/cms_store.go index d11275fbc..edfac4245 100644 --- a/controllers/cms_store.go +++ b/controllers/cms_store.go @@ -562,3 +562,22 @@ func (c *StoreController) JdStoreInfoCoordinateRecover() { return retVal, "", err }) } + +// @Title 导出平台门店信息 +// @Description 导出平台门店信息 +// @Param token header string true "认证token" +// @Param vendorIDs formData string true "平台ID列表" +// @Param isAsync formData bool false "是否异步操作" +// @Param isContinueWhenError formData bool false "单个同步失败是否继续,缺省false" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /GetVendorStoreInfo [post] +func (c *StoreController) GetVendorStoreInfo() { + var vendorIDList []int + c.callGetVendorStoreInfo(func(params *tStoreGetVendorStoreInfoParams) (retVal interface{}, errCode string, err error) { + if err = jxutils.Strings2Objs(params.VendorIDs, &vendorIDList); err == nil { + retVal, err = cms.GetVendorStoreInfo(params.Ctx, vendorIDList, params.IsAsync, params.IsContinueWhenError) + } + return retVal, "", err + }) +} diff --git a/controllers/jx_report.go b/controllers/jx_report.go index f839a14cc..c4ce656f4 100644 --- a/controllers/jx_report.go +++ b/controllers/jx_report.go @@ -48,3 +48,21 @@ func (c *ReportController) StatisticsReportForAfsOrders() { return retVal, "", err }) } + +// @Title 查询京西门店商品价格统计相关信息 +// @Description 查询京西门店商品价格统计相关信息 +// @Param token header string true "认证token" +// @Param cityCodes formData string true "城市ID列表[1,2,3]" +// @Param skuIDs formData string true "skuID列表[1,2,3]" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /StatisticsReportForStoreSkusPrice [post] +func (c *ReportController) StatisticsReportForStoreSkusPrice() { + c.callStatisticsReportForStoreSkusPrice(func(params *tReportStatisticsReportForStoreSkusPriceParams) (retVal interface{}, errCode string, err error) { + var cityCodeList, skuIDList []int + if err = jxutils.Strings2Objs(params.CityCodes, &cityCodeList, params.SkuIDs, &skuIDList); err == nil { + err = report.StatisticsReportForStoreSkusPrice(params.Ctx, cityCodeList, skuIDList) + } + return retVal, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index ed7fc9280..67c2124b1 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1062,6 +1062,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:ReportController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:ReportController"], + beego.ControllerComments{ + Method: "StatisticsReportForStoreSkusPrice", + Router: `/StatisticsReportForStoreSkusPrice`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SkuController"], beego.ControllerComments{ Method: "AddCategory", @@ -1404,6 +1413,15 @@ func init() { Filters: nil, Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"], + beego.ControllerComments{ + Method: "GetVendorStoreInfo", + Router: `/GetVendorStoreInfo`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreController"], beego.ControllerComments{ Method: "GetWeeklyStoreScore", From ab08935d4d0102ad9e195f06404f174360889012 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 5 Dec 2019 15:06:45 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=9C=AA=E8=90=A5?= =?UTF-8?q?=E4=B8=9A=E9=97=A8=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 6 ++++-- business/model/dao/report.go | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index f1d1958d6..6cfee7610 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2306,12 +2306,14 @@ func GetVendorStoreInfo(ctx *jxcontext.Context, vendorIDList []int, isAsync, isC if partner.IsMultiStore(vendorID) { multiHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IMultipleStoresHandler) storeDetail, err = multiHandler.ReadStore(ctx, storeID) + time.Sleep(time.Second / 2) if err != nil { return retVal, err } } else { singleHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreHandler) storeDetail, err = singleHandler.ReadStore(ctx, storeID) + time.Sleep(time.Second / 4) if err != nil { return retVal, err } @@ -2372,7 +2374,7 @@ func WriteToExcelStore(task *tasksch.SeqTask, storeListJD, storeListMT, storeLis } if len(storeListMT) > 0 { excelConf := &excel.Obj2ExcelSheetConfig{ - Title: "饿百平台", + Title: "美团平台", Data: storeListMT, CaptionList: titleListStore, } @@ -2380,7 +2382,7 @@ func WriteToExcelStore(task *tasksch.SeqTask, storeListJD, storeListMT, storeLis } if len(storeListEB) > 0 { excelConf := &excel.Obj2ExcelSheetConfig{ - Title: "美团平台", + Title: "饿百平台", Data: storeListEB, CaptionList: titleListStore, } diff --git a/business/model/dao/report.go b/business/model/dao/report.go index ac3df5749..bf53ac726 100644 --- a/business/model/dao/report.go +++ b/business/model/dao/report.go @@ -179,5 +179,6 @@ func GetGetStatisticsReportForAfsOrders(db *DaoDB, storeIDs []int, fromDate time } func GetStatisticsReportForStoreSkusPrice(db *DaoDB, cityCodes, skuIDs []int) (err error) { + return err } From 25982cf994abb735461d52b0c83e7c2323be237a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 5 Dec 2019 15:33:55 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=90=84=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E6=9C=AA=E8=90=A5=E4=B8=9A=E9=97=A8=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/business/jxstore/cms/store.go b/business/jxstore/cms/store.go index 6cfee7610..d11e87be3 100644 --- a/business/jxstore/cms/store.go +++ b/business/jxstore/cms/store.go @@ -2306,14 +2306,12 @@ func GetVendorStoreInfo(ctx *jxcontext.Context, vendorIDList []int, isAsync, isC if partner.IsMultiStore(vendorID) { multiHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.IMultipleStoresHandler) storeDetail, err = multiHandler.ReadStore(ctx, storeID) - time.Sleep(time.Second / 2) if err != nil { return retVal, err } } else { singleHandler, _ := partner.GetPurchasePlatformFromVendorID(vendorID).(partner.ISingleStoreHandler) storeDetail, err = singleHandler.ReadStore(ctx, storeID) - time.Sleep(time.Second / 4) if err != nil { return retVal, err } @@ -2330,7 +2328,7 @@ func GetVendorStoreInfo(ctx *jxcontext.Context, vendorIDList []int, isAsync, isC } return retVal, err } - taskParallel := tasksch.NewParallelTask("获取各平台未营业门店", tasksch.NewParallelConfig(), ctx, taskFunc, storeIDs) + taskParallel := tasksch.NewParallelTask("获取各平台未营业门店", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, taskFunc, storeIDs) tasksch.HandleTask(taskParallel, task, true).Run() storeList, err := taskParallel.GetResult(0) for _, v := range storeList {