|
@@ -1,5 +1,6 @@
|
|
|
package com.qs.mp.common.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.qs.mp.admin.domain.param.ShippingTemplateParam;
|
|
|
import com.qs.mp.admin.domain.param.ShippingTemplateRuleAreaParam;
|
|
|
import com.qs.mp.admin.domain.param.ShippingTemplateRuleParam;
|
|
@@ -76,6 +77,53 @@ public class ShippingTemplateServiceImpl extends ServiceImpl<ShippingTemplateMap
|
|
|
}
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean updateShippingTemplate(ShippingTemplateParam shippingTemplateParam) {
|
|
|
+
|
|
|
+ Long shippingTemplateId = shippingTemplateParam.getId();
|
|
|
+ if (Objects.isNull(shippingTemplateId)) {
|
|
|
+ throw new ServiceException("运费模板ID不能为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 校验运费模板参数
|
|
|
+ this.checkCreateShippingTemplateParam(shippingTemplateParam);
|
|
|
+
|
|
|
+ // 清除原来运费模板规则地区
|
|
|
+ List<ShippingTemplateRule> shippingTemplateRules = shippingTemplateRuleService.list(new LambdaQueryWrapper<ShippingTemplateRule>().eq(ShippingTemplateRule::getShippingTemplateId, shippingTemplateId));
|
|
|
+ for (ShippingTemplateRule shippingTemplateRule : shippingTemplateRules) {
|
|
|
+ shippingTemplateRuleAreaService.remove(new LambdaQueryWrapper<ShippingTemplateRuleArea>().eq(ShippingTemplateRuleArea::getShippingTemplateRuleId, shippingTemplateRule.getId()));
|
|
|
+ }
|
|
|
+ // 清除原来的运费模板规则
|
|
|
+ shippingTemplateRuleService.remove(new LambdaQueryWrapper<ShippingTemplateRule>().eq(ShippingTemplateRule::getShippingTemplateId, shippingTemplateId));
|
|
|
+
|
|
|
+ // 更新运费模板
|
|
|
+ ShippingTemplate shippingTemplate = new ShippingTemplate();
|
|
|
+ BeanUtils.copyProperties(shippingTemplateParam, shippingTemplate);
|
|
|
+ this.updateById(shippingTemplate);
|
|
|
+
|
|
|
+ // 新增运费模板规则
|
|
|
+ List<ShippingTemplateRuleParam> shippingTemplateRuleList = shippingTemplateParam.getShippingTemplateRuleList();
|
|
|
+ for (ShippingTemplateRuleParam shippingTemplateRuleParam : shippingTemplateRuleList) {
|
|
|
+ ShippingTemplateRule shippingTemplateRule = new ShippingTemplateRule();
|
|
|
+ BeanUtils.copyProperties(shippingTemplateRuleParam, shippingTemplateRule);
|
|
|
+ shippingTemplateRule.setShippingTemplateId(shippingTemplateId);
|
|
|
+ shippingTemplateRuleService.save(shippingTemplateRule);
|
|
|
+
|
|
|
+ // 新增运费模板规则地区
|
|
|
+ List<ShippingTemplateRuleAreaParam> shippingTemplateRuleAreaList = shippingTemplateRuleParam.getShippingTemplateRuleAreaList();
|
|
|
+ List<ShippingTemplateRuleArea> params = new ArrayList<>();
|
|
|
+ for (ShippingTemplateRuleAreaParam shippingTemplateRuleAreaParam : shippingTemplateRuleAreaList) {
|
|
|
+ ShippingTemplateRuleArea param = new ShippingTemplateRuleArea();
|
|
|
+ BeanUtils.copyProperties(shippingTemplateRuleAreaParam, param);
|
|
|
+ param.setShippingTemplateRuleId(shippingTemplateRule.getId());
|
|
|
+ params.add(param);
|
|
|
+ }
|
|
|
+ shippingTemplateRuleAreaService.saveBatch(params);
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 校验运费模板参数
|