查询skunames优化
This commit is contained in:
@@ -72,7 +72,7 @@ func changeStoreSkusByOrder(order *weimobapi.OrderDetail) {
|
||||
for _, v := range skuBindInfos {
|
||||
nameIDs = append(nameIDs, v.NameID)
|
||||
}
|
||||
if skuNamesInfo, err := cms.GetSkuNames(ctx, "", false, map[string]interface{}{
|
||||
if skuNamesInfo, err := cms.GetSkuNames(ctx, "", false, false, map[string]interface{}{
|
||||
"nameIDs": string(utils.MustMarshal(nameIDs)),
|
||||
}, 0, 0); err == nil {
|
||||
for _, skuName := range skuNamesInfo.SkuNames {
|
||||
|
||||
@@ -410,19 +410,22 @@ func DeleteCategoryMap(ctx *jxcontext.Context, db *dao.DaoDB, categoryID int) (n
|
||||
})
|
||||
}
|
||||
|
||||
func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku bool, params map[string]interface{}, offset, pageSize int) (skuNamesInfo *SkuNamesInfo, err error) {
|
||||
func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku, isQueryMidPrice bool, params map[string]interface{}, offset, pageSize int) (skuNamesInfo *SkuNamesInfo, err error) {
|
||||
db := dao.GetDB()
|
||||
sql := `
|
||||
FROM sku_name t1
|
||||
LEFT JOIN sku t2 ON t1.id = t2.name_id AND t2.deleted_at = ?
|
||||
LEFT JOIN sku_name_place_bind t3 ON t1.id = t3.name_id
|
||||
LEFT JOIN price_refer_snapshot t4 ON t4.city_code = ? AND t4.snapshot_at = ? AND t4.name_id = t1.id
|
||||
WHERE t1.deleted_at = ?`
|
||||
`
|
||||
sqlParams := []interface{}{
|
||||
utils.DefaultTimeValue,
|
||||
0, utils.Time2Date(time.Now().AddDate(0, 0, -1)),
|
||||
utils.DefaultTimeValue,
|
||||
}
|
||||
if isQueryMidPrice {
|
||||
sql += " LEFT JOIN price_refer_snapshot t4 ON t4.city_code = ? AND t4.snapshot_at = ? AND t4.name_id = t1.id"
|
||||
sqlParams = append(sqlParams, 0, utils.Time2Date(time.Now().AddDate(0, 0, -1)))
|
||||
}
|
||||
sql += " WHERE t1.deleted_at = ?"
|
||||
sqlParams = append(sqlParams, utils.DefaultTimeValue)
|
||||
if keyword != "" {
|
||||
keywordLike := "%" + keyword + "%"
|
||||
sql += `
|
||||
@@ -588,8 +591,12 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku bool, params ma
|
||||
t1.ex_prefix,
|
||||
t1.ex_prefix_begin,
|
||||
t1.ex_prefix_end,
|
||||
t1.yb_name_suffix,
|
||||
t4.mid_unit_price`
|
||||
t1.yb_name_suffix
|
||||
`
|
||||
if isQueryMidPrice {
|
||||
sql += `,
|
||||
t4.mid_unit_pirce`
|
||||
}
|
||||
if isBySku {
|
||||
sql += `,
|
||||
t2.id`
|
||||
@@ -624,7 +631,12 @@ func GetSkuNames(ctx *jxcontext.Context, keyword string, isBySku bool, params ma
|
||||
t1.ex_prefix_begin,
|
||||
t1.ex_prefix_end,
|
||||
t1.yb_name_suffix,
|
||||
t4.mid_unit_price,
|
||||
`
|
||||
if isQueryMidPrice {
|
||||
sqlData += " t4.mid_unit_price,"
|
||||
}
|
||||
sqlData +=
|
||||
`
|
||||
CONCAT("[", GROUP_CONCAT(DISTINCT CONCAT('{"id":', t2.id, ',"comment":"', t2.comment, '","status":', t2.status,
|
||||
',"createdAt":"', CONCAT(REPLACE(t2.created_at," ","T"),"+08:00"), '","updatedAt":"', CONCAT(REPLACE(t2.updated_at," ","T"),"+08:00"),
|
||||
'","lastOperator":"', t2.last_operator, '","specQuality":', t2.spec_quality, ',"specUnit":"', t2.spec_unit,
|
||||
@@ -841,7 +853,7 @@ func AddSkuName(ctx *jxcontext.Context, skuNameExt *model.SkuNameExt, userName s
|
||||
}
|
||||
dao.Commit(db)
|
||||
|
||||
tmpInfo, err := GetSkuNames(ctx, "", false, utils.Params2Map("nameID", skuNameExt.SkuName.ID), 0, 1)
|
||||
tmpInfo, err := GetSkuNames(ctx, "", false, false, utils.Params2Map("nameID", skuNameExt.SkuName.ID), 0, 1)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -1091,7 +1103,7 @@ func AddSku(ctx *jxcontext.Context, nameID int, sku *model.Sku, userName string)
|
||||
}
|
||||
dao.Commit(db)
|
||||
|
||||
result, err2 := GetSkuNames(ctx, "", false, utils.Params2Map("skuID", sku.ID), 0, 0)
|
||||
result, err2 := GetSkuNames(ctx, "", false, false, utils.Params2Map("skuID", sku.ID), 0, 0)
|
||||
if err = err2; err == nil {
|
||||
if result.TotalCount == 1 {
|
||||
outSkuNameExt = result.SkuNames[0]
|
||||
@@ -1978,7 +1990,7 @@ func writeToExcel(excelTitle []string, dataList interface{}, task *tasksch.SeqTa
|
||||
if err != nil {
|
||||
baseapi.SugarLogger.Errorf("WriteToExcel:upload %s , %s failed error:%v", fileName, err)
|
||||
} else {
|
||||
noticeMsg := fmt.Sprintf("[详情点我]path=%s\n", downloadURL)
|
||||
noticeMsg := fmt.Sprintf("[详情点我]%s/billshow/?normal=true&path=%s \n", globals.BackstageHost, downloadURL)
|
||||
task.SetNoticeMsg(noticeMsg)
|
||||
baseapi.SugarLogger.Debug("WriteToExcel: dataSuccess downloadURL: [%v]", downloadURL)
|
||||
}
|
||||
|
||||
@@ -133,32 +133,33 @@ func (c *SkuController) SyncCategory() {
|
||||
|
||||
// @Title 得到商品信息
|
||||
// @Description 得到商品信息,如下条件之间是与的关系
|
||||
// @Param token header string true "认证token"
|
||||
// @Param keyword query string false "查询关键字(可以为空,为空表示不限制)"
|
||||
// @Param nameIDs query string false "SkuName IDs列表"
|
||||
// @Param skuIDs query string false "Sku ID列表"
|
||||
// @Param vendorSkuIDs query string false "厂商SKU ID列表"
|
||||
// @Param name query string false "商品名称(不要求完全一致)"
|
||||
// @Param prefix query string false "商品前缀(不要求完全一致)"
|
||||
// @Param placeCond query string false "查询地点的条件(如果此字段没有设置,placeCode与isGlobal无效),and:与,or:或,指的是placeCode,isGlobal这两个条件间的关系,这组条件与其它条件都是与的关系"
|
||||
// @Param placeCode query int false "可售地点Code"
|
||||
// @Param isGlobal query bool false "是否全球可售"
|
||||
// @Param categoryID query int false "商品名所属类别ID"
|
||||
// @Param skuCategoryID query int false "商品所属类别ID"
|
||||
// @Param unit query string false "商品单位"
|
||||
// @Param isSpu query bool false "是否是SPU"
|
||||
// @Param isExd query bool false "是否是饿鲜达商品"
|
||||
// @Param fromStatus query int false "查询起始状态(0:下架,1:正常)"
|
||||
// @Param toStatus query int false "查询起始状态(0:下架,1:正常)"
|
||||
// @Param offset query int false "门店列表起始序号(以0开始,缺省为0)"
|
||||
// @Param pageSize query int false "门店列表页大小(缺省为50,-1表示全部)"
|
||||
// @Param isBySku query bool false "是否将sku拆开,缺省为false"
|
||||
// @Param token header string true "认证token"
|
||||
// @Param keyword query string false "查询关键字(可以为空,为空表示不限制)"
|
||||
// @Param nameIDs query string false "SkuName IDs列表"
|
||||
// @Param skuIDs query string false "Sku ID列表"
|
||||
// @Param vendorSkuIDs query string false "厂商SKU ID列表"
|
||||
// @Param name query string false "商品名称(不要求完全一致)"
|
||||
// @Param prefix query string false "商品前缀(不要求完全一致)"
|
||||
// @Param placeCond query string false "查询地点的条件(如果此字段没有设置,placeCode与isGlobal无效),and:与,or:或,指的是placeCode,isGlobal这两个条件间的关系,这组条件与其它条件都是与的关系"
|
||||
// @Param placeCode query int false "可售地点Code"
|
||||
// @Param isGlobal query bool false "是否全球可售"
|
||||
// @Param categoryID query int false "商品名所属类别ID"
|
||||
// @Param skuCategoryID query int false "商品所属类别ID"
|
||||
// @Param unit query string false "商品单位"
|
||||
// @Param isSpu query bool false "是否是SPU"
|
||||
// @Param isExd query bool false "是否是饿鲜达商品"
|
||||
// @Param fromStatus query int false "查询起始状态(0:下架,1:正常)"
|
||||
// @Param toStatus query int false "查询起始状态(0:下架,1:正常)"
|
||||
// @Param offset query int false "门店列表起始序号(以0开始,缺省为0)"
|
||||
// @Param pageSize query int false "门店列表页大小(缺省为50,-1表示全部)"
|
||||
// @Param isBySku query bool false "是否将sku拆开,缺省为false"
|
||||
// @Param isQueryMidPrice query bool false "是否查询中位价缺省为false"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /GetSkuNames [get,post]
|
||||
func (c *SkuController) GetSkuNames() {
|
||||
c.callGetSkuNames(func(params *tSkuGetSkuNamesParams) (retVal interface{}, errCode string, err error) {
|
||||
retVal, err = cms.GetSkuNames(params.Ctx, params.Keyword, params.IsBySku, params.MapData, params.Offset, params.PageSize)
|
||||
retVal, err = cms.GetSkuNames(params.Ctx, params.Keyword, params.IsBySku, params.IsQueryMidPrice, params.MapData, params.Offset, params.PageSize)
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user