Browse Source

删除运费模板

cup 3 years ago
parent
commit
5133e0099c

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

@@ -71,6 +71,13 @@ public class ShippingTemplateController extends BaseApiController {
         return AjaxResult.success(list);
     }
 
+    @PostMapping("/delete/{id}")
+    @ApiOperation("删除运费模板")
+    public AjaxResult delete(@PathVariable("id") Long id){
+        // 删除运费模板
+       boolean falg = shippingTemplateService.deleteShippingTemplate(id);
+        return AjaxResult.success();
+    }
 
 
 

+ 9 - 0
mp-service/src/main/java/com/qs/mp/common/service/IShippingTemplateService.java

@@ -35,4 +35,13 @@ public interface IShippingTemplateService extends IService<ShippingTemplate> {
      * @return
      */
     ShippingTemplateVO detail(Long id);
+
+
+    /**
+     * 根据id删除运费模板
+     * @param id    运费模板id
+     * @return
+     */
+    boolean deleteShippingTemplate(Long id);
+
 }

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

@@ -45,6 +45,27 @@ public class ShippingTemplateServiceImpl extends ServiceImpl<ShippingTemplateMap
     @Autowired
     private IShippingTemplateRuleAreaService shippingTemplateRuleAreaService;
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean deleteShippingTemplate(Long id) {
+        ShippingTemplate shippingTemplate = this.getById(id);
+        if (Objects.isNull(shippingTemplate)) {
+            throw new ServiceException("运费模板不存在");
+        }
+
+        // 清除原来运费模板规则地区
+        List<ShippingTemplateRule> shippingTemplateRules = shippingTemplateRuleService.list(new LambdaQueryWrapper<ShippingTemplateRule>().eq(ShippingTemplateRule::getShippingTemplateId, id));
+        for (ShippingTemplateRule shippingTemplateRule : shippingTemplateRules) {
+            shippingTemplateRuleAreaService.remove(new LambdaQueryWrapper<ShippingTemplateRuleArea>().eq(ShippingTemplateRuleArea::getShippingTemplateRuleId, shippingTemplateRule.getId()));
+        }
+        // 清除原来的运费模板规则
+        shippingTemplateRuleService.remove(new LambdaQueryWrapper<ShippingTemplateRule>().eq(ShippingTemplateRule::getShippingTemplateId, id));
+
+        // 删除运费模板
+        this.removeById(id);
+        return true;
+    }
+
     @Override
     public ShippingTemplateVO detail(Long id) {
         ShippingTemplateVO shippingTemplateVO = new ShippingTemplateVO();