dev798
wxy 2024-05-14 19:58:11 +08:00
parent 3c21e1dcff
commit b7c02d446b
1 changed files with 26 additions and 41 deletions

View File

@ -71,58 +71,43 @@ public class MallProductRuleInfoServiceImpl implements MallProductRuleInfoServic
*/
@Transactional
@Override
public int insertMallProductRuleInfo(MallProductRuleInfo mallProductRuleInfo) {
try {
public int insertMallProductRuleInfo(MallProductRuleInfo mallProductRuleInfo)
{
Long userId = SecurityUtils.getLoginUser().getUserid();
if (userId == null) {
throw new RuntimeException("用户未登录");
}
mallProductRuleInfo.setCreateBy(userId.toString());
Long loginUserId = SecurityUtils.getLoginUser().getUserid();
if (loginUserId == null) {
throw new RuntimeException("用户未登录");
}
mallProductRuleInfo.setUpdateBy(loginUserId.toString());
mallProductRuleInfo.setUpdateTime(DateUtils.getNowDate());
mallProductRuleInfo.setCreateTime(DateUtils.getNowDate());
int insertResult = mallProductRuleInfoMapper.insertMallProductRuleInfo(mallProductRuleInfo);
if (insertResult > 0) {
processRuleAttrInfo(mallProductRuleInfo);
}
return insertResult;
} catch (Exception e) {
e.printStackTrace();
return 0;
}
}
private void processRuleAttrInfo(MallProductRuleInfo mallProductRuleInfo) {
Long ruleId = mallProductRuleInfo.getId();
String ruleAttr = mallProductRuleInfo.getRuleAttr();
if (ruleAttr != null && !ruleAttr.isEmpty()) {
List<MallProductRuleAttrInfo> ruleAttrInfoList = new ArrayList<>();
List<MallProductAttrInfoModel> mallProductAttrInfoModels = JSON.parseArray(ruleAttr, MallProductAttrInfoModel.class);
if (CollectionUtils.isNotEmpty(mallProductAttrInfoModels)) {
for (MallProductAttrInfoModel mallProductAttrInfoModel : mallProductAttrInfoModels) {
String ruleType = mallProductAttrInfoModel.getRuleType();
List<String> ruleAttrList = mallProductAttrInfoModel.getRuleAttrList();
for (String ruleAttrString : ruleAttrList) {
MallProductRuleAttrInfo mallProductRuleAttrInfo = new MallProductRuleAttrInfo();
mallProductRuleAttrInfo.setAttrValue(ruleAttrString);
mallProductRuleAttrInfo.setName(ruleType);
mallProductRuleAttrInfo.setRuleId(ruleId);
ruleAttrInfoList.add(mallProductRuleAttrInfo);
// 调用mapper插入商城产品规则信息
int i = mallProductRuleInfoMapper.insertMallProductRuleInfo(mallProductRuleInfo);
if(i > 0){
// 如果插入成功,处理规则属性信息
Long ruleId = mallProductRuleInfo.getId();
String ruleAttr = mallProductRuleInfo.getRuleAttr();
// 解析规则属性,并转换为规则属性信息列表
List<MallProductRuleAttrInfo>ruleAttrInfoList = new ArrayList<>();
List<MallProductAttrInfoModel>mallProductAttrInfoModels= JSON.parseArray(ruleAttr, MallProductAttrInfoModel.class);
if(CollectionUtils.isNotEmpty(mallProductAttrInfoModels)){
for(MallProductAttrInfoModel mallProductAttrInfoModel : mallProductAttrInfoModels){
String ruleType = mallProductAttrInfoModel.getRuleType();
List<String> ruleAttrList= mallProductAttrInfoModel.getRuleAttrList();
for (String ruleAttrString : ruleAttrList) {
// 组装规则属性信息
MallProductRuleAttrInfo mallProductRuleAttrInfo = new MallProductRuleAttrInfo();
mallProductRuleAttrInfo.setAttrValue(ruleAttrString);
mallProductRuleAttrInfo.setName(ruleType);
mallProductRuleAttrInfo.setRuleId(ruleId);
ruleAttrInfoList.add(mallProductRuleAttrInfo);
}
}
mallProductRuleAttrInfoService.deleteMallProductRuleAttrInfByRuleId(ruleId);
mallProductRuleAttrInfoService.insertMallProductRuleAttrInfoList(ruleAttrInfoList);
}
mallProductRuleAttrInfoService.deleteMallProductRuleAttrInfByRuleId(ruleId);
// 考虑使用批量插入来优化性能
mallProductRuleAttrInfoService.insertMallProductRuleAttrInfoList(ruleAttrInfoList);
}
return i;
}
}
/**
*