Merge remote-tracking branch 'origin/mark' into don
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -180,6 +180,8 @@ func (task *ParallelTask) Run() {
|
||||
close(task.subFinishChan)
|
||||
task.jobList = nil // 如果不释放,任务被管理的话,会导致内存不能释放
|
||||
task.worker = nil
|
||||
task.subFinishChan = nil
|
||||
task.taskChan = nil
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
// }
|
||||
|
||||
@@ -31,8 +31,6 @@ enableElmStoreWrite = false
|
||||
enableMtwmStoreWrite = false
|
||||
enableWscStoreWrite = false
|
||||
|
||||
enablePendingChange = true
|
||||
|
||||
aliKey = "LTAI6xJUGaP6WdMQ"
|
||||
aliSecret = "CLmx5T93Bgi89EGAxWM4RTAXUsiHbM"
|
||||
|
||||
|
||||
@@ -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 根据厂家门店商品信息相应刷新本地数据
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user