- check sale city in updateStoresSkusWithoutSync(use checkStoresSkusSaleCity)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package cms
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"strconv"
|
||||
"time"
|
||||
@@ -260,8 +261,51 @@ func UpdateStoresSkus(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*St
|
||||
return num, err
|
||||
}
|
||||
|
||||
func checkStoresSkusSaleCity(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs []int, skuBindInfos []*StoreSkuBindInfo) (err error) {
|
||||
sql := `
|
||||
SELECT t1.id store_id, t2.id name_id, t2.name
|
||||
FROM store t1
|
||||
JOIN sku_name t2 ON t2.is_global = 0
|
||||
LEFT JOIN sku_name_place_bind t3 ON t2.id = t3.name_id AND t1.city_code = t3.place_code
|
||||
WHERE t3.id IS NULL
|
||||
`
|
||||
sql += " AND t1.id IN (" + dao.GenQuestionMarks(len(storeIDs)) + ")"
|
||||
nameIDs := make([]int, 0)
|
||||
for _, v := range skuBindInfos {
|
||||
if v.IsFocus == 1 {
|
||||
nameIDs = append(nameIDs, v.NameID)
|
||||
} else {
|
||||
for _, v2 := range v.Skus {
|
||||
if v2.IsSale == 1 {
|
||||
nameIDs = append(nameIDs, v.NameID)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
sql += " AND t2.id IN (" + dao.GenQuestionMarks(len(nameIDs)) + ")"
|
||||
var invalidList []*struct {
|
||||
StoreID int `orm:"column(store_id)"`
|
||||
NameID int `orm:"column(name_id)"`
|
||||
Name string
|
||||
}
|
||||
if err = dao.GetRows(db, &invalidList, sql, storeIDs, nameIDs); err == nil {
|
||||
if len(invalidList) > 0 {
|
||||
errMsg := ""
|
||||
for _, v := range invalidList {
|
||||
errMsg += fmt.Sprintf("门店:%d,Name:%d(%s)销售区域错误!\n", v.StoreID, v.NameID, v.Name)
|
||||
}
|
||||
err = errors.New(errMsg)
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func updateStoresSkusWithoutSync(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*StoreSkuBindInfo) (needSyncSkus []int, err error) {
|
||||
db := dao.GetDB()
|
||||
if err = checkStoresSkusSaleCity(ctx, db, storeIDs, skuBindInfos); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
userName := ctx.GetUserName()
|
||||
needSyncIDMap := make(map[int]int)
|
||||
dao.Begin(db)
|
||||
|
||||
Reference in New Issue
Block a user