From 27adff6adde3b42ae05d5267859b7eb21789bdff Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 30 Aug 2019 08:50:07 +0800 Subject: [PATCH 1/6] =?UTF-8?q?-=20ParallelTask=E7=BB=93=E6=9D=9F=E5=90=8E?= =?UTF-8?q?=EF=BC=8C=E6=B8=85=E9=99=A4subFinishChan=E4=B8=8EtaskChan?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxutils/tasksch/parallel_task.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/jxutils/tasksch/parallel_task.go b/business/jxutils/tasksch/parallel_task.go index d402e8a2c..00723b8f5 100644 --- a/business/jxutils/tasksch/parallel_task.go +++ b/business/jxutils/tasksch/parallel_task.go @@ -180,6 +180,8 @@ func (task *ParallelTask) Run() { close(task.subFinishChan) task.jobList = nil // 如果不释放,任务被管理的话,会导致内存不能释放 task.worker = nil + task.subFinishChan = nil + task.taskChan = nil }) } From 7afd15cf0e617fe3f29637769a02ab5179161e65 Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 30 Aug 2019 09:54:23 +0800 Subject: [PATCH 2/6] =?UTF-8?q?-=20=E4=BC=98=E5=8C=96dao.GenQuestionMarks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/dao_utils.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/business/model/dao/dao_utils.go b/business/model/dao/dao_utils.go index c1a0c6ed0..b45b4386c 100644 --- a/business/model/dao/dao_utils.go +++ b/business/model/dao/dao_utils.go @@ -73,12 +73,18 @@ func WrapUpdateULEntity(item interface{}, lastOperator string) interface{} { return item } -func GenQuestionMarks(count int) string { - marks := "" +func GenQuestionMarks(count int) (marks string) { if count > 0 { - marks = "?" - for i := 1; i < count; i++ { - marks += ", ?" + if count == 1 { + marks = "?" + } else { + builder := &strings.Builder{} + builder.Grow(1 + (count-1)*3) + builder.WriteString("?") + for i := 1; i < count; i++ { + builder.WriteString(", ?") + } + marks = builder.String() } } return marks From 0b899d612fa361db0050423702d3620043a76d62 Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 30 Aug 2019 12:09:27 +0800 Subject: [PATCH 3/6] =?UTF-8?q?-=20UpdateStoresSkus=E4=B8=AD=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E8=B0=83=E8=AF=95=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 736766c2c..f3fb4bfb2 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -973,6 +973,8 @@ func UpdateStoreSkus(ctx *jxcontext.Context, storeID int, skuBindInfos []*StoreS } func UpdateStoresSkus(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*StoreSkuBindInfo, isAsync, isContinueWhenError bool) (hint string, err error) { + globals.SugarLogger.Debugf("UpdateStoresSkus:%s, storeIDs:%v, skuBindInfos:%s", ctx.GetTrackInfo(), storeIDs, utils.Format4Output(skuBindInfos, true)) + var num int64 db := dao.GetDB() skuIDs, err := updateStoresSkusWithoutSync(ctx, db, storeIDs, skuBindInfos) From 46527e139e8d93d2a3dd178fe7a06354690d0969 Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 30 Aug 2019 12:21:48 +0800 Subject: [PATCH 4/6] - enablePendingChange = false --- conf/app.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/app.conf b/conf/app.conf index c809a05f0..98da0ecf8 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -31,7 +31,7 @@ enableElmStoreWrite = false enableMtwmStoreWrite = false enableWscStoreWrite = false -enablePendingChange = true +enablePendingChange = false aliKey = "LTAI6xJUGaP6WdMQ" aliSecret = "CLmx5T93Bgi89EGAxWM4RTAXUsiHbM" From d428a0334aed3d6e2ec31136277e5cd64ff2712c Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 30 Aug 2019 14:07:25 +0800 Subject: [PATCH 5/6] =?UTF-8?q?-=20=E6=B3=A8=E9=87=8A=E6=8E=89=E4=BB=B7?= =?UTF-8?q?=E6=A0=BC=E5=AE=A1=E6=A0=B8=E7=9B=B8=E5=85=B3=E7=9A=84=E4=B8=80?= =?UTF-8?q?=E4=BA=9B=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 6 +- conf/app.conf | 2 - controllers/cms_store_sku.go | 113 +++++++++++++------------- globals/globals.go | 2 +- routers/commentsRouter_controllers.go | 18 ---- 5 files changed, 60 insertions(+), 81 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index f3fb4bfb2..8b0cbe12b 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -1111,9 +1111,9 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs // if err = checkStoresSkusSaleCity(ctx, db, storeIDs, skuBindInfos); err != nil { // return nil, err // } - if storeIDs, skuBindInfos, err = filterStorePriceChange(ctx, storeIDs, skuBindInfos); err != nil { - return nil, err - } + // if storeIDs, skuBindInfos, err = filterStorePriceChange(ctx, storeIDs, skuBindInfos); err != nil { + // return nil, err + // } // globals.SugarLogger.Debugf("updateStoresSkusWithoutSync2, storeIDs:%v, skuBindInfos:%s", storeIDs, utils.Format4Output(skuBindInfos, false)) userName := ctx.GetUserName() diff --git a/conf/app.conf b/conf/app.conf index 98da0ecf8..a0e40f04d 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -31,8 +31,6 @@ enableElmStoreWrite = false enableMtwmStoreWrite = false enableWscStoreWrite = false -enablePendingChange = false - aliKey = "LTAI6xJUGaP6WdMQ" aliSecret = "CLmx5T93Bgi89EGAxWM4RTAXUsiHbM" diff --git a/controllers/cms_store_sku.go b/controllers/cms_store_sku.go index 4b1d44889..f58053f15 100644 --- a/controllers/cms_store_sku.go +++ b/controllers/cms_store_sku.go @@ -1,7 +1,6 @@ package controllers import ( - "fmt" "math" "time" @@ -321,63 +320,63 @@ func (c *StoreSkuController) GetStoresSkusSaleInfo() { }) } -// @Title 得到商家商品修改价格请求信息 -// @Description 得到商家商品修改价格请求信息 -// @Param token header string true "认证token" -// @Param fromTime query string false "申请开始时间" -// @Param toTime query string false "申请结束时间" -// @Param keyword query string false "查询关键字(可以为空,为空表示不限制)" -// @Param storeIDs query string false "门店ID列表" -// @Param itemIDs query string false "id列表对象,当前指skuname id" -// @Param types query string false "类型列表对象" -// @Param statuss query string false "状态列表对象" -// @Param offset query int false "门店列表起始序号(以0开始,缺省为0)" -// @Param pageSize query int false "门店列表页大小(缺省为50,-1表示全部)" -// @Success 200 {object} controllers.CallResult -// @Failure 200 {object} controllers.CallResult -// @router /GetStoreOpRequests [get] -func (c *StoreSkuController) GetStoreOpRequests() { - c.callGetStoreOpRequests(func(params *tStoreSkuGetStoreOpRequestsParams) (retVal interface{}, errCode string, err error) { - var ( - timeList []time.Time - storeIDs, typeList, statusList, itemIDs []int - ) - if timeList, err = jxutils.BatchStr2Time(params.FromTime, params.ToTime); err != nil { - return retVal, "", err - } - if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs, params.Types, &typeList, params.Statuss, &statusList, params.ItemIDs, &itemIDs); err != nil { - return retVal, "", err - } - retVal, err = cms.GetStoreOpRequests(params.Ctx, timeList[0], timeList[1], params.Keyword, storeIDs, itemIDs, typeList, statusList, params.Offset, params.PageSize) - return retVal, "", err - }) -} +// // @Title 得到商家商品修改价格请求信息 +// // @Description 得到商家商品修改价格请求信息 +// // @Param token header string true "认证token" +// // @Param fromTime query string false "申请开始时间" +// // @Param toTime query string false "申请结束时间" +// // @Param keyword query string false "查询关键字(可以为空,为空表示不限制)" +// // @Param storeIDs query string false "门店ID列表" +// // @Param itemIDs query string false "id列表对象,当前指skuname id" +// // @Param types query string false "类型列表对象" +// // @Param statuss query string false "状态列表对象" +// // @Param offset query int false "门店列表起始序号(以0开始,缺省为0)" +// // @Param pageSize query int false "门店列表页大小(缺省为50,-1表示全部)" +// // @Success 200 {object} controllers.CallResult +// // @Failure 200 {object} controllers.CallResult +// // @router /GetStoreOpRequests [get] +// func (c *StoreSkuController) GetStoreOpRequests() { +// c.callGetStoreOpRequests(func(params *tStoreSkuGetStoreOpRequestsParams) (retVal interface{}, errCode string, err error) { +// var ( +// timeList []time.Time +// storeIDs, typeList, statusList, itemIDs []int +// ) +// if timeList, err = jxutils.BatchStr2Time(params.FromTime, params.ToTime); err != nil { +// return retVal, "", err +// } +// if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs, params.Types, &typeList, params.Statuss, &statusList, params.ItemIDs, &itemIDs); err != nil { +// return retVal, "", err +// } +// retVal, err = cms.GetStoreOpRequests(params.Ctx, timeList[0], timeList[1], params.Keyword, storeIDs, itemIDs, typeList, statusList, params.Offset, params.PageSize) +// return retVal, "", err +// }) +// } -// @Title 处理商家商品价格申请 -// @Description 处理商家商品价格申请 -// @Param token header string true "认证token" -// @Param reqIDs formData string true "请求ID列表对象" -// @Param handleType formData int true "-1拒绝,1批准" -// @Param rejectReason formData string false "拒绝理由,拒绝时要求" -// @Success 200 {object} controllers.CallResult -// @Failure 200 {object} controllers.CallResult -// @router /HandleStoreOpRequest [put] -func (c *StoreSkuController) HandleStoreOpRequest() { - c.callHandleStoreOpRequest(func(params *tStoreSkuHandleStoreOpRequestParams) (retVal interface{}, errCode string, err error) { - var reqIDs []int - if err = jxutils.Strings2Objs(params.ReqIDs, &reqIDs); err != nil { - return retVal, "", err - } - if params.HandleType == 1 { - err = cms.AcceptStoreOpRequests(params.Ctx, reqIDs) - } else if params.HandleType == -1 { - err = cms.RejectStoreOpRequests(params.Ctx, reqIDs, params.RejectReason) - } else { - err = fmt.Errorf("handleType=%d是非法值", params.HandleType) - } - return retVal, "", err - }) -} +// // @Title 处理商家商品价格申请 +// // @Description 处理商家商品价格申请 +// // @Param token header string true "认证token" +// // @Param reqIDs formData string true "请求ID列表对象" +// // @Param handleType formData int true "-1拒绝,1批准" +// // @Param rejectReason formData string false "拒绝理由,拒绝时要求" +// // @Success 200 {object} controllers.CallResult +// // @Failure 200 {object} controllers.CallResult +// // @router /HandleStoreOpRequest [put] +// func (c *StoreSkuController) HandleStoreOpRequest() { +// c.callHandleStoreOpRequest(func(params *tStoreSkuHandleStoreOpRequestParams) (retVal interface{}, errCode string, err error) { +// var reqIDs []int +// if err = jxutils.Strings2Objs(params.ReqIDs, &reqIDs); err != nil { +// return retVal, "", err +// } +// if params.HandleType == 1 { +// err = cms.AcceptStoreOpRequests(params.Ctx, reqIDs) +// } else if params.HandleType == -1 { +// err = cms.RejectStoreOpRequests(params.Ctx, reqIDs, params.RejectReason) +// } else { +// err = fmt.Errorf("handleType=%d是非法值", params.HandleType) +// } +// return retVal, "", err +// }) +// } // @Title 根据厂家门店商品信息相应刷新本地数据 // @Description 根据厂家门店商品信息相应刷新本地数据 diff --git a/globals/globals.go b/globals/globals.go index 8580982e0..80e17da46 100644 --- a/globals/globals.go +++ b/globals/globals.go @@ -73,7 +73,7 @@ func Init() { EnableElmStoreWrite = EnableStoreWrite && beego.AppConfig.DefaultBool("enableElmStoreWrite", false) EnableMtwmStoreWrite = EnableStoreWrite && beego.AppConfig.DefaultBool("enableMtwmStoreWrite", false) EnableWscStoreWrite = EnableStoreWrite && beego.AppConfig.DefaultBool("enableWscStoreWrite", false) - EnablePendingChange = beego.AppConfig.DefaultBool("enablePendingChange", false) + // EnablePendingChange = beego.AppConfig.DefaultBool("enablePendingChange", false) QiniuBucket = beego.AppConfig.String("qiniuBucket") diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index 5c1efe789..1bfd13eee 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1375,15 +1375,6 @@ 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: "GetStoreOpRequests", - Router: `/GetStoreOpRequests`, - 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: "GetStoreSkus", @@ -1420,15 +1411,6 @@ 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: "HandleStoreOpRequest", - Router: `/HandleStoreOpRequest`, - 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: "RefreshStoresSkuByVendor", From 03296d1a995cebfb7e909f2a8f1a424a6f1a26cc Mon Sep 17 00:00:00 2001 From: gazebo Date: Fri, 30 Aug 2019 15:56:43 +0800 Subject: [PATCH 6/6] =?UTF-8?q?-=20dao.GetSkuByCats=E4=B8=AD=EF=BC=8C?= =?UTF-8?q?=E8=A6=81=E5=88=A4=E6=96=ADsku=5Fname=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E8=A2=AB=E5=88=A0=E9=99=A4=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/sku.go | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/business/model/dao/sku.go b/business/model/dao/sku.go index bedf9d785..33c8f238b 100644 --- a/business/model/dao/sku.go +++ b/business/model/dao/sku.go @@ -8,6 +8,16 @@ import ( "git.rosy.net.cn/jx-callback/globals" ) +type SkuCategoryWithVendor struct { + model.SkuCategory + + VendorID int `orm:"column(vendor_id)" json:"vendorID"` + VendorOrgCode string `orm:"size(32)" json:"vendorOrgCode"` // 同一平台下不同的商户代码,如果只有一个,可以为空 + + VendorCatID string `orm:"size(32);column(vendor_cat_id)" json:"vendorCatID"` + SyncStatus int8 `orm:"default(2)"` +} + func GetSellCities(db *DaoDB, nameID int, vendorID int) (cities []*model.Place, err error) { cities = []*model.Place{} sql := ` @@ -148,18 +158,18 @@ func GetSkuByCats(db *DaoDB, catIDs []int) (skuList []*model.Sku, err error) { sql := ` SELECT t1.* FROM sku t1 - JOIN sku_name t2 ON t2.id = t1.name_id - WHERE t1.deleted_at = ? - ` + JOIN sku_name t2 ON t2.id = t1.name_id AND t2.deleted_at = ? + WHERE t1.deleted_at = ?` sqlParams := []interface{}{ utils.DefaultTimeValue, + utils.DefaultTimeValue, } if len(catIDs) > 0 { sql += " AND t2.category_id IN (" + GenQuestionMarks(len(catIDs)) + ")" sqlParams = append(sqlParams, catIDs) } err = GetRows(db, &skuList, sql, sqlParams...) - globals.SugarLogger.Debugf("GetSkuByCats err:%v", err) + // globals.SugarLogger.Debugf("GetSkuByCats err:%v", err) return skuList, err } @@ -187,3 +197,6 @@ func SetSkuSyncStatus(db *DaoDB, vendorID int, skuIDs []int, syncStatus int) (nu } return ExecuteSQL(db, sql, sqlParams...) } + +// func GetSkuCategoryWithVendor(db *DaoDB, vendorIDs []int, appOrgCodes []string, catIDs []int) (num int64, err error) { +// }