diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 736766c2c..8b0cbe12b 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) @@ -1109,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/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 }) } 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 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) { +// } diff --git a/conf/app.conf b/conf/app.conf index c809a05f0..a0e40f04d 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -31,8 +31,6 @@ enableElmStoreWrite = false enableMtwmStoreWrite = false enableWscStoreWrite = false -enablePendingChange = true - 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 c1cf51191..bb9fd39a0 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -1384,15 +1384,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", @@ -1429,15 +1420,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",