Browse Source

更新运费模板

cup 3 years ago
parent
commit
f35f41c4d3

+ 7 - 1
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/ShippingTemplateController.java

@@ -33,7 +33,13 @@ public class ShippingTemplateController extends BaseApiController {
         return AjaxResult.success(shippingTemplateService.create(shippingTemplateParam));
     }
 
-
+    @PostMapping("/update")
+    @ApiOperation("更新运费模板")
+    public AjaxResult update(@RequestBody ShippingTemplateParam shippingTemplateParam){
+        // 修改运费模板
+        boolean flag = shippingTemplateService.updateShippingTemplate(shippingTemplateParam);
+        return AjaxResult.success();
+    }
 
 
 

+ 6 - 1
mp-service/src/main/java/com/qs/mp/common/service/IShippingTemplateService.java

@@ -21,5 +21,10 @@ public interface IShippingTemplateService extends IService<ShippingTemplate> {
      */
     boolean create(ShippingTemplateParam shippingTemplateParam);
 
-
+    /**
+     * 更新运费模板
+     * @param shippingTemplateParam 运费模板入参类
+     * @return
+     */
+    boolean updateShippingTemplate(ShippingTemplateParam shippingTemplateParam);
 }

+ 48 - 0
mp-service/src/main/java/com/qs/mp/common/service/impl/ShippingTemplateServiceImpl.java

@@ -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;
+    }
 
     /**
      * 校验运费模板参数