ActStoreSkuParam2Model重叠判断逻辑

This commit is contained in:
gazebo
2020-01-09 17:32:02 +08:00
parent 580b3c735f
commit 867f94a3f1

View File

@@ -151,6 +151,8 @@ func ActStoreSkuParam2Model(ctx *jxcontext.Context, db *dao.DaoDB, act *model.Ac
storeIDMap := make(map[int]int)
skuIDMap := make(map[int]int)
storeSkuParamMap := make(map[int][]*ActStoreSkuParam)
actStoreSkuMap := make(map[int64]bool)
var wrongSkuList []*ActStoreSkuParam
for _, v := range actStoreSku {
if act.Type == model.ActSkuFake && v.EarningPrice == 0 {
@@ -159,6 +161,8 @@ func ActStoreSkuParam2Model(ctx *jxcontext.Context, db *dao.DaoDB, act *model.Ac
storeIDMap[v.StoreID] = 1
skuIDMap[v.SkuID] = 1
storeSkuParamMap[v.StoreID] = append(storeSkuParamMap[v.StoreID], v)
actStoreSkuMap[jxutils.Combine2Int(v.StoreID, v.SkuID)] = true
}
}
if len(wrongSkuList) > 0 {
@@ -166,7 +170,7 @@ func ActStoreSkuParam2Model(ctx *jxcontext.Context, db *dao.DaoDB, act *model.Ac
}
storeIDs := jxutils.IntMap2List(storeIDMap)
skuIDs := jxutils.IntMap2List(skuIDMap)
// 判断活动是否重叠的检查,当前忽略京东平台及所有结算信息
if act.OverlapRule == model.OverlapRuleNormal {
effectActStoreSkuList, err := dao.GetEffectiveActStoreSkuInfo(db, 0, vendorIDs, act.Type, storeIDs, skuIDs, act.BeginAt, act.EndAt)
if err != nil {
@@ -174,7 +178,15 @@ func ActStoreSkuParam2Model(ctx *jxcontext.Context, db *dao.DaoDB, act *model.Ac
return nil, nil, nil, err
}
if len(effectActStoreSkuList) > 0 {
return nil, nil, nil, jsonerr.New(effectActStoreSkuList, model.ErrCodeJsonActSkuConflict)
var realEffectActStoreSkuList []*model.ActStoreSku2
for _, v := range effectActStoreSkuList {
if actStoreSkuMap[jxutils.Combine2Int(v.StoreID, v.SkuID)] {
realEffectActStoreSkuList = append(realEffectActStoreSkuList, v)
}
}
if len(realEffectActStoreSkuList) > 0 {
return nil, nil, nil, jsonerr.New(realEffectActStoreSkuList, model.ErrCodeJsonActSkuConflict)
}
}
}