|
@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
|
|
import com.qs.serve.common.model.dto.SimpleKeyValue; |
|
|
import com.qs.serve.common.model.dto.SimpleKeyValue; |
|
|
import com.qs.serve.common.util.Assert; |
|
|
import com.qs.serve.common.util.Assert; |
|
|
|
|
|
import com.qs.serve.common.util.CopierUtil; |
|
|
import com.qs.serve.common.util.StringUtils; |
|
|
import com.qs.serve.common.util.StringUtils; |
|
|
import com.qs.serve.modules.bms.entity.BmsRegion; |
|
|
import com.qs.serve.modules.bms.entity.BmsRegion; |
|
|
import com.qs.serve.modules.bms.entity.BmsRegion2; |
|
|
import com.qs.serve.modules.bms.entity.BmsRegion2; |
|
@ -60,86 +61,94 @@ public class GoodsRuleServiceImpl extends ServiceImpl<GoodsRuleMapper,GoodsRule> |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public GoodsRuleBo tranGoodsRuleBo(GoodsRuleImportBo ruleImportBo) { |
|
|
public GoodsRuleBo tranGoodsRuleBo(GoodsRuleImportBo ruleImportBo) { |
|
|
GoodsRuleBo goodsRuleBo = new GoodsRuleBo(); |
|
|
GoodsRuleBo goodsRuleBo = CopierUtil.copy(ruleImportBo,new GoodsRuleBo()); |
|
|
boolean checkOkFlag = true; |
|
|
boolean checkOkFlag = true; |
|
|
if(CollUtil.isNotEmpty(ruleImportBo.getOnlyCategoryCodes())){ |
|
|
if(CollUtil.isNotEmpty(ruleImportBo.getOnlyCategoryCodes())){ |
|
|
List<GoodsCategory> categoryList = categoryMapper |
|
|
List<GoodsCategory> categoryList = categoryMapper |
|
|
.selectList(new LambdaQueryWrapper<GoodsCategory>() |
|
|
.selectList(new LambdaQueryWrapper<GoodsCategory>() |
|
|
.in(GoodsCategory::getCode,ruleImportBo.getOnlyCategoryCodes())); |
|
|
.in(GoodsCategory::getCode,ruleImportBo.getOnlyCategoryCodes())); |
|
|
|
|
|
List<String> errCodes = new ArrayList<>(); |
|
|
for (String code : ruleImportBo.getOnlyCategoryCodes()) { |
|
|
for (String code : ruleImportBo.getOnlyCategoryCodes()) { |
|
|
boolean mch = categoryList.stream().anyMatch(a->a.getCode().equals(code)); |
|
|
boolean mch = categoryList.stream().anyMatch(a->a.getCode().equals(code)); |
|
|
if(!mch){ |
|
|
if(!mch){ |
|
|
checkOkFlag = false; |
|
|
|
|
|
List<String> errCodes = new ArrayList<>(); |
|
|
|
|
|
errCodes.add(code); |
|
|
errCodes.add(code); |
|
|
if(ruleImportBo.getErrOnlyCategoryCodes()!=null){ |
|
|
|
|
|
errCodes.addAll(ruleImportBo.getErrNotInCategoryCodes()); |
|
|
|
|
|
} |
|
|
|
|
|
ruleImportBo.setErrOnlyCategoryCodes(errCodes); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
List<String> ids = categoryList.stream().map(a->a.getId().toString()).collect(Collectors.toList()); |
|
|
if(errCodes.size()>0){ |
|
|
goodsRuleBo.setOnlyCategoryIds(ids); |
|
|
checkOkFlag = false; |
|
|
|
|
|
ruleImportBo.setErrOnlyCategoryCodes(errCodes); |
|
|
|
|
|
}else { |
|
|
|
|
|
List<String> ids = categoryList.stream().map(a->a.getId().toString()).collect(Collectors.toList()); |
|
|
|
|
|
goodsRuleBo.setOnlyCategoryIds(ids); |
|
|
|
|
|
//1只能选的分类
|
|
|
|
|
|
goodsRuleBo.getSelectTargetTypes().add(1); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if(CollUtil.isNotEmpty(ruleImportBo.getNotInCategoryCodes())){ |
|
|
if(CollUtil.isNotEmpty(ruleImportBo.getNotInCategoryCodes())){ |
|
|
List<GoodsCategory> categoryList = categoryMapper |
|
|
List<GoodsCategory> categoryList = categoryMapper |
|
|
.selectList(new LambdaQueryWrapper<GoodsCategory>() |
|
|
.selectList(new LambdaQueryWrapper<GoodsCategory>() |
|
|
.in(GoodsCategory::getCode,ruleImportBo.getNotInCategoryCodes())); |
|
|
.in(GoodsCategory::getCode,ruleImportBo.getNotInCategoryCodes())); |
|
|
|
|
|
List<String> errCodes = new ArrayList<>(); |
|
|
for (String code : ruleImportBo.getNotInCategoryCodes()) { |
|
|
for (String code : ruleImportBo.getNotInCategoryCodes()) { |
|
|
boolean mch = categoryList.stream().anyMatch(a->a.getCode().equals(code)); |
|
|
boolean mch = categoryList.stream().anyMatch(a->a.getCode().equals(code)); |
|
|
if(!mch){ |
|
|
if(!mch){ |
|
|
checkOkFlag = false; |
|
|
|
|
|
List<String> errCodes = new ArrayList<>(); |
|
|
|
|
|
errCodes.add(code); |
|
|
errCodes.add(code); |
|
|
if(ruleImportBo.getErrNotInCategoryCodes()!=null){ |
|
|
|
|
|
errCodes.addAll(ruleImportBo.getErrNotInCategoryCodes()); |
|
|
|
|
|
} |
|
|
|
|
|
ruleImportBo.setErrNotInCategoryCodes(errCodes); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
List<String> ids = categoryList.stream().map(a->a.getId().toString()).collect(Collectors.toList()); |
|
|
if(errCodes.size()>0){ |
|
|
goodsRuleBo.setNotInCategoryIds(ids); |
|
|
checkOkFlag = false; |
|
|
|
|
|
ruleImportBo.setErrNotInCategoryCodes(errCodes); |
|
|
|
|
|
}else { |
|
|
|
|
|
List<String> ids = categoryList.stream().map(a->a.getId().toString()).collect(Collectors.toList()); |
|
|
|
|
|
goodsRuleBo.setNotInCategoryIds(ids); |
|
|
|
|
|
//2不能选的分类
|
|
|
|
|
|
goodsRuleBo.getSelectTargetTypes().add(2); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if(CollUtil.isNotEmpty(ruleImportBo.getOnlySpuCodes())){ |
|
|
if(CollUtil.isNotEmpty(ruleImportBo.getOnlySpuCodes())){ |
|
|
List<GoodsSpu> spuList = spuMapper |
|
|
List<GoodsSpu> spuList = spuMapper |
|
|
.selectList(new LambdaQueryWrapper<GoodsSpu>() |
|
|
.selectList(new LambdaQueryWrapper<GoodsSpu>() |
|
|
.in(GoodsSpu::getSpuCode,ruleImportBo.getOnlySpuCodes())); |
|
|
.in(GoodsSpu::getSpuCode,ruleImportBo.getOnlySpuCodes())); |
|
|
|
|
|
List<String> errCodes = new ArrayList<>(); |
|
|
for (String code : ruleImportBo.getOnlySpuCodes()) { |
|
|
for (String code : ruleImportBo.getOnlySpuCodes()) { |
|
|
boolean mch = spuList.stream().anyMatch(a->a.getSpuCode().equals(code)); |
|
|
boolean mch = spuList.stream().anyMatch(a->a.getSpuCode().equals(code)); |
|
|
if(!mch){ |
|
|
if(!mch){ |
|
|
checkOkFlag = false; |
|
|
checkOkFlag = false; |
|
|
List<String> errCodes = new ArrayList<>(); |
|
|
|
|
|
errCodes.add(code); |
|
|
errCodes.add(code); |
|
|
if(ruleImportBo.getErrOnlySpuCodes()!=null){ |
|
|
|
|
|
errCodes.addAll(ruleImportBo.getErrOnlySpuCodes()); |
|
|
|
|
|
} |
|
|
|
|
|
ruleImportBo.setErrOnlySpuCodes(errCodes); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
List<String> ids = spuList.stream().map(a->a.getId().toString()).collect(Collectors.toList()); |
|
|
if(errCodes.size()>0){ |
|
|
goodsRuleBo.setOnlySpuIds(ids); |
|
|
ruleImportBo.setErrOnlySpuCodes(errCodes); |
|
|
|
|
|
}else { |
|
|
|
|
|
List<String> ids = spuList.stream().map(a->a.getId().toString()).collect(Collectors.toList()); |
|
|
|
|
|
goodsRuleBo.setOnlySpuIds(ids); |
|
|
|
|
|
//3只能选的SPU
|
|
|
|
|
|
goodsRuleBo.getSelectTargetTypes().add(3); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if(CollUtil.isNotEmpty(ruleImportBo.getNotInSpuCodes())){ |
|
|
if(CollUtil.isNotEmpty(ruleImportBo.getNotInSpuCodes())){ |
|
|
List<GoodsSpu> spuList = spuMapper |
|
|
List<GoodsSpu> spuList = spuMapper |
|
|
.selectList(new LambdaQueryWrapper<GoodsSpu>() |
|
|
.selectList(new LambdaQueryWrapper<GoodsSpu>() |
|
|
.in(GoodsSpu::getSpuCode,ruleImportBo.getNotInSpuCodes())); |
|
|
.in(GoodsSpu::getSpuCode,ruleImportBo.getNotInSpuCodes())); |
|
|
|
|
|
List<String> errCodes = new ArrayList<>(); |
|
|
for (String code : ruleImportBo.getNotInSpuCodes()) { |
|
|
for (String code : ruleImportBo.getNotInSpuCodes()) { |
|
|
boolean mch = spuList.stream().anyMatch(a->a.getSpuCode().equals(code)); |
|
|
boolean mch = spuList.stream().anyMatch(a->a.getSpuCode().equals(code)); |
|
|
if(!mch){ |
|
|
if(!mch){ |
|
|
checkOkFlag = false; |
|
|
|
|
|
List<String> errCodes = new ArrayList<>(); |
|
|
|
|
|
errCodes.add(code); |
|
|
errCodes.add(code); |
|
|
if(ruleImportBo.getErrOnlySpuCodes()!=null){ |
|
|
|
|
|
errCodes.addAll(ruleImportBo.getErrNotInSpuCodes()); |
|
|
|
|
|
} |
|
|
|
|
|
ruleImportBo.setErrNotInSpuCodes(errCodes); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
List<String> ids = spuList.stream().map(a->a.getId().toString()).collect(Collectors.toList()); |
|
|
if(CollUtil.isNotEmpty(errCodes)){ |
|
|
goodsRuleBo.setNotInSpuIds(ids); |
|
|
checkOkFlag = false; |
|
|
|
|
|
ruleImportBo.setErrNotInSpuCodes(errCodes); |
|
|
|
|
|
}else { |
|
|
|
|
|
List<String> ids = spuList.stream().map(a->a.getId().toString()).collect(Collectors.toList()); |
|
|
|
|
|
goodsRuleBo.setNotInSpuIds(ids); |
|
|
|
|
|
//4不能选的SPU
|
|
|
|
|
|
goodsRuleBo.getSelectTargetTypes().add(4); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
ruleImportBo.setCheckOkFlag(checkOkFlag); |
|
|
ruleImportBo.setCheckOkFlag(checkOkFlag); |
|
|
return goodsRuleBo; |
|
|
return goodsRuleBo; |
|
@ -167,6 +176,10 @@ public class GoodsRuleServiceImpl extends ServiceImpl<GoodsRuleMapper,GoodsRule> |
|
|
//清空操作
|
|
|
//清空操作
|
|
|
LambdaQueryWrapper<GoodsRuleItem> rmItem = new LambdaQueryWrapper<>(); |
|
|
LambdaQueryWrapper<GoodsRuleItem> rmItem = new LambdaQueryWrapper<>(); |
|
|
rmItem.eq(GoodsRuleItem::getRuleId,goodsRule.getId()); |
|
|
rmItem.eq(GoodsRuleItem::getRuleId,goodsRule.getId()); |
|
|
|
|
|
//用于区分导入时,excel未传入数据,导致删除
|
|
|
|
|
|
if(CollUtil.isNotEmpty(param.getSelectTargetTypes())){ |
|
|
|
|
|
rmItem.eq(GoodsRuleItem::getTargetType,param.getSelectTargetTypes()); |
|
|
|
|
|
} |
|
|
goodsRuleItemService.remove(rmItem); |
|
|
goodsRuleItemService.remove(rmItem); |
|
|
|
|
|
|
|
|
if(!b1 && !b2 && !b3 && !b4){ |
|
|
if(!b1 && !b2 && !b3 && !b4){ |
|
|