Merge remote-tracking branch 'origin/mark' into don

This commit is contained in:
Rosy-zhudan
2019-08-30 16:01:12 +08:00
8 changed files with 92 additions and 90 deletions

View File

@@ -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) { 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 var num int64
db := dao.GetDB() db := dao.GetDB()
skuIDs, err := updateStoresSkusWithoutSync(ctx, db, storeIDs, skuBindInfos) 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 { // if err = checkStoresSkusSaleCity(ctx, db, storeIDs, skuBindInfos); err != nil {
// return nil, err // return nil, err
// } // }
if storeIDs, skuBindInfos, err = filterStorePriceChange(ctx, storeIDs, skuBindInfos); err != nil { // if storeIDs, skuBindInfos, err = filterStorePriceChange(ctx, storeIDs, skuBindInfos); err != nil {
return nil, err // return nil, err
} // }
// globals.SugarLogger.Debugf("updateStoresSkusWithoutSync2, storeIDs:%v, skuBindInfos:%s", storeIDs, utils.Format4Output(skuBindInfos, false)) // globals.SugarLogger.Debugf("updateStoresSkusWithoutSync2, storeIDs:%v, skuBindInfos:%s", storeIDs, utils.Format4Output(skuBindInfos, false))
userName := ctx.GetUserName() userName := ctx.GetUserName()

View File

@@ -180,6 +180,8 @@ func (task *ParallelTask) Run() {
close(task.subFinishChan) close(task.subFinishChan)
task.jobList = nil // 如果不释放,任务被管理的话,会导致内存不能释放 task.jobList = nil // 如果不释放,任务被管理的话,会导致内存不能释放
task.worker = nil task.worker = nil
task.subFinishChan = nil
task.taskChan = nil
}) })
} }

View File

@@ -73,12 +73,18 @@ func WrapUpdateULEntity(item interface{}, lastOperator string) interface{} {
return item return item
} }
func GenQuestionMarks(count int) string { func GenQuestionMarks(count int) (marks string) {
marks := ""
if count > 0 { if count > 0 {
marks = "?" if count == 1 {
for i := 1; i < count; i++ { marks = "?"
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 return marks

View File

@@ -8,6 +8,16 @@ import (
"git.rosy.net.cn/jx-callback/globals" "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) { func GetSellCities(db *DaoDB, nameID int, vendorID int) (cities []*model.Place, err error) {
cities = []*model.Place{} cities = []*model.Place{}
sql := ` sql := `
@@ -148,18 +158,18 @@ func GetSkuByCats(db *DaoDB, catIDs []int) (skuList []*model.Sku, err error) {
sql := ` sql := `
SELECT t1.* SELECT t1.*
FROM sku t1 FROM sku t1
JOIN sku_name t2 ON t2.id = t1.name_id JOIN sku_name t2 ON t2.id = t1.name_id AND t2.deleted_at = ?
WHERE t1.deleted_at = ? WHERE t1.deleted_at = ?`
`
sqlParams := []interface{}{ sqlParams := []interface{}{
utils.DefaultTimeValue, utils.DefaultTimeValue,
utils.DefaultTimeValue,
} }
if len(catIDs) > 0 { if len(catIDs) > 0 {
sql += " AND t2.category_id IN (" + GenQuestionMarks(len(catIDs)) + ")" sql += " AND t2.category_id IN (" + GenQuestionMarks(len(catIDs)) + ")"
sqlParams = append(sqlParams, catIDs) sqlParams = append(sqlParams, catIDs)
} }
err = GetRows(db, &skuList, sql, sqlParams...) err = GetRows(db, &skuList, sql, sqlParams...)
globals.SugarLogger.Debugf("GetSkuByCats err:%v", err) // globals.SugarLogger.Debugf("GetSkuByCats err:%v", err)
return skuList, err return skuList, err
} }
@@ -187,3 +197,6 @@ func SetSkuSyncStatus(db *DaoDB, vendorID int, skuIDs []int, syncStatus int) (nu
} }
return ExecuteSQL(db, sql, sqlParams...) return ExecuteSQL(db, sql, sqlParams...)
} }
// func GetSkuCategoryWithVendor(db *DaoDB, vendorIDs []int, appOrgCodes []string, catIDs []int) (num int64, err error) {
// }

View File

@@ -31,8 +31,6 @@ enableElmStoreWrite = false
enableMtwmStoreWrite = false enableMtwmStoreWrite = false
enableWscStoreWrite = false enableWscStoreWrite = false
enablePendingChange = true
aliKey = "LTAI6xJUGaP6WdMQ" aliKey = "LTAI6xJUGaP6WdMQ"
aliSecret = "CLmx5T93Bgi89EGAxWM4RTAXUsiHbM" aliSecret = "CLmx5T93Bgi89EGAxWM4RTAXUsiHbM"

View File

@@ -1,7 +1,6 @@
package controllers package controllers
import ( import (
"fmt"
"math" "math"
"time" "time"
@@ -321,63 +320,63 @@ func (c *StoreSkuController) GetStoresSkusSaleInfo() {
}) })
} }
// @Title 得到商家商品修改价格请求信息 // // @Title 得到商家商品修改价格请求信息
// @Description 得到商家商品修改价格请求信息 // // @Description 得到商家商品修改价格请求信息
// @Param token header string true "认证token" // // @Param token header string true "认证token"
// @Param fromTime query string false "申请开始时间" // // @Param fromTime query string false "申请开始时间"
// @Param toTime query string false "申请结束时间" // // @Param toTime query string false "申请结束时间"
// @Param keyword query string false "查询关键字(可以为空,为空表示不限制)" // // @Param keyword query string false "查询关键字(可以为空,为空表示不限制)"
// @Param storeIDs query string false "门店ID列表" // // @Param storeIDs query string false "门店ID列表"
// @Param itemIDs query string false "id列表对象当前指skuname id" // // @Param itemIDs query string false "id列表对象当前指skuname id"
// @Param types query string false "类型列表对象" // // @Param types query string false "类型列表对象"
// @Param statuss query string false "状态列表对象" // // @Param statuss query string false "状态列表对象"
// @Param offset query int false "门店列表起始序号以0开始缺省为0" // // @Param offset query int false "门店列表起始序号以0开始缺省为0"
// @Param pageSize query int false "门店列表页大小缺省为50-1表示全部" // // @Param pageSize query int false "门店列表页大小缺省为50-1表示全部"
// @Success 200 {object} controllers.CallResult // // @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult // // @Failure 200 {object} controllers.CallResult
// @router /GetStoreOpRequests [get] // // @router /GetStoreOpRequests [get]
func (c *StoreSkuController) GetStoreOpRequests() { // func (c *StoreSkuController) GetStoreOpRequests() {
c.callGetStoreOpRequests(func(params *tStoreSkuGetStoreOpRequestsParams) (retVal interface{}, errCode string, err error) { // c.callGetStoreOpRequests(func(params *tStoreSkuGetStoreOpRequestsParams) (retVal interface{}, errCode string, err error) {
var ( // var (
timeList []time.Time // timeList []time.Time
storeIDs, typeList, statusList, itemIDs []int // storeIDs, typeList, statusList, itemIDs []int
) // )
if timeList, err = jxutils.BatchStr2Time(params.FromTime, params.ToTime); err != nil { // if timeList, err = jxutils.BatchStr2Time(params.FromTime, params.ToTime); err != nil {
return retVal, "", err // return retVal, "", err
} // }
if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs, params.Types, &typeList, params.Statuss, &statusList, params.ItemIDs, &itemIDs); err != nil { // if err = jxutils.Strings2Objs(params.StoreIDs, &storeIDs, params.Types, &typeList, params.Statuss, &statusList, params.ItemIDs, &itemIDs); err != nil {
return retVal, "", err // return retVal, "", err
} // }
retVal, err = cms.GetStoreOpRequests(params.Ctx, timeList[0], timeList[1], params.Keyword, storeIDs, itemIDs, typeList, statusList, params.Offset, params.PageSize) // retVal, err = cms.GetStoreOpRequests(params.Ctx, timeList[0], timeList[1], params.Keyword, storeIDs, itemIDs, typeList, statusList, params.Offset, params.PageSize)
return retVal, "", err // return retVal, "", err
}) // })
} // }
// @Title 处理商家商品价格申请 // // @Title 处理商家商品价格申请
// @Description 处理商家商品价格申请 // // @Description 处理商家商品价格申请
// @Param token header string true "认证token" // // @Param token header string true "认证token"
// @Param reqIDs formData string true "请求ID列表对象" // // @Param reqIDs formData string true "请求ID列表对象"
// @Param handleType formData int true "-1拒绝1批准" // // @Param handleType formData int true "-1拒绝1批准"
// @Param rejectReason formData string false "拒绝理由,拒绝时要求" // // @Param rejectReason formData string false "拒绝理由,拒绝时要求"
// @Success 200 {object} controllers.CallResult // // @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult // // @Failure 200 {object} controllers.CallResult
// @router /HandleStoreOpRequest [put] // // @router /HandleStoreOpRequest [put]
func (c *StoreSkuController) HandleStoreOpRequest() { // func (c *StoreSkuController) HandleStoreOpRequest() {
c.callHandleStoreOpRequest(func(params *tStoreSkuHandleStoreOpRequestParams) (retVal interface{}, errCode string, err error) { // c.callHandleStoreOpRequest(func(params *tStoreSkuHandleStoreOpRequestParams) (retVal interface{}, errCode string, err error) {
var reqIDs []int // var reqIDs []int
if err = jxutils.Strings2Objs(params.ReqIDs, &reqIDs); err != nil { // if err = jxutils.Strings2Objs(params.ReqIDs, &reqIDs); err != nil {
return retVal, "", err // return retVal, "", err
} // }
if params.HandleType == 1 { // if params.HandleType == 1 {
err = cms.AcceptStoreOpRequests(params.Ctx, reqIDs) // err = cms.AcceptStoreOpRequests(params.Ctx, reqIDs)
} else if params.HandleType == -1 { // } else if params.HandleType == -1 {
err = cms.RejectStoreOpRequests(params.Ctx, reqIDs, params.RejectReason) // err = cms.RejectStoreOpRequests(params.Ctx, reqIDs, params.RejectReason)
} else { // } else {
err = fmt.Errorf("handleType=%d是非法值", params.HandleType) // err = fmt.Errorf("handleType=%d是非法值", params.HandleType)
} // }
return retVal, "", err // return retVal, "", err
}) // })
} // }
// @Title 根据厂家门店商品信息相应刷新本地数据 // @Title 根据厂家门店商品信息相应刷新本地数据
// @Description 根据厂家门店商品信息相应刷新本地数据 // @Description 根据厂家门店商品信息相应刷新本地数据

View File

@@ -73,7 +73,7 @@ func Init() {
EnableElmStoreWrite = EnableStoreWrite && beego.AppConfig.DefaultBool("enableElmStoreWrite", false) EnableElmStoreWrite = EnableStoreWrite && beego.AppConfig.DefaultBool("enableElmStoreWrite", false)
EnableMtwmStoreWrite = EnableStoreWrite && beego.AppConfig.DefaultBool("enableMtwmStoreWrite", false) EnableMtwmStoreWrite = EnableStoreWrite && beego.AppConfig.DefaultBool("enableMtwmStoreWrite", false)
EnableWscStoreWrite = EnableStoreWrite && beego.AppConfig.DefaultBool("enableWscStoreWrite", 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") QiniuBucket = beego.AppConfig.String("qiniuBucket")

View File

@@ -1384,15 +1384,6 @@ func init() {
Filters: nil, Filters: nil,
Params: 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.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"],
beego.ControllerComments{ beego.ControllerComments{
Method: "GetStoreSkus", Method: "GetStoreSkus",
@@ -1429,15 +1420,6 @@ func init() {
Filters: nil, Filters: nil,
Params: 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.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:StoreSkuController"],
beego.ControllerComments{ beego.ControllerComments{
Method: "RefreshStoresSkuByVendor", Method: "RefreshStoresSkuByVendor",