- check sale city in updateStoresSkusWithoutSync(use checkStoresSkusSaleCity)
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package cms
|
package cms
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
@@ -260,8 +261,51 @@ func UpdateStoresSkus(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*St
|
|||||||
return num, err
|
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) {
|
func updateStoresSkusWithoutSync(ctx *jxcontext.Context, storeIDs []int, skuBindInfos []*StoreSkuBindInfo) (needSyncSkus []int, err error) {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
|
if err = checkStoresSkusSaleCity(ctx, db, storeIDs, skuBindInfos); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
userName := ctx.GetUserName()
|
userName := ctx.GetUserName()
|
||||||
needSyncIDMap := make(map[int]int)
|
needSyncIDMap := make(map[int]int)
|
||||||
dao.Begin(db)
|
dao.Begin(db)
|
||||||
|
|||||||
Reference in New Issue
Block a user