From 97e3380e3a130ca36ea21c31b049d6e42d168bd0 Mon Sep 17 00:00:00 2001 From: Owen <595466820@qq.com> Date: Mon, 16 Dec 2024 18:07:59 +0800 Subject: [PATCH] Feat: Code gen V3 ok --- .../admin/product/ProductLimitController.java | 48 ++++-------- .../product/vo/ProductLimitAreaRespVO.java | 5 +- .../product/vo/ProductLimitPageReqVO.java | 2 +- .../admin/product/vo/ProductLimitRespVO.java | 13 +++- .../product/vo/ProductLimitSaveReqVO.java | 9 ++- .../product/ProductLimitAreaDO.java | 2 + .../dataobject/product/ProductLimitDO.java | 6 ++ .../mysql/product/ProductLimitAreaMapper.java | 10 ++- .../mysql/product/ProductLimitCardMapper.java | 11 ++- .../service/product/ProductLimitService.java | 48 ++++-------- .../product/ProductLimitServiceImpl.java | 78 +++++++++++-------- 11 files changed, 120 insertions(+), 112 deletions(-) diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/ProductLimitController.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/ProductLimitController.java index b8e8922932..6eb7417ded 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/ProductLimitController.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/ProductLimitController.java @@ -27,6 +27,7 @@ import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; import cn.iocoder.yudao.module.haoka.controller.admin.product.vo.*; import cn.iocoder.yudao.module.haoka.dal.dataobject.product.ProductLimitDO; +import cn.iocoder.yudao.module.haoka.dal.dataobject.product.ProductLimitAreaDO; import cn.iocoder.yudao.module.haoka.dal.dataobject.product.ProductLimitCardDO; import cn.iocoder.yudao.module.haoka.service.product.ProductLimitService; @@ -93,47 +94,24 @@ public class ProductLimitController { BeanUtils.toBean(list, ProductLimitRespVO.class)); } - // ==================== 子表(产品身份证限制) ==================== + // ==================== 子表(产品区域配置) ==================== - @GetMapping("/product-limit-card/page") - @Operation(summary = "获得产品身份证限制分页") + @GetMapping("/product-limit-area/list-by-haoka-product-limit-id") + @Operation(summary = "获得产品区域配置列表") @Parameter(name = "haokaProductLimitId", description = "产品限制ID") @PreAuthorize("@ss.hasPermission('haoka:product-limit:query')") - public CommonResult> getProductLimitCardPage(PageParam pageReqVO, - @RequestParam("haokaProductLimitId") Long haokaProductLimitId) { - return success(productLimitService.getProductLimitCardPage(pageReqVO, haokaProductLimitId)); + public CommonResult> getProductLimitAreaListByHaokaProductLimitId(@RequestParam("haokaProductLimitId") Long haokaProductLimitId) { + return success(productLimitService.getProductLimitAreaListByHaokaProductLimitId(haokaProductLimitId)); } - @PostMapping("/product-limit-card/create") - @Operation(summary = "创建产品身份证限制") - @PreAuthorize("@ss.hasPermission('haoka:product-limit:create')") - public CommonResult createProductLimitCard(@Valid @RequestBody ProductLimitCardDO productLimitCard) { - return success(productLimitService.createProductLimitCard(productLimitCard)); - } + // ==================== 子表(产品身份证限制) ==================== - @PutMapping("/product-limit-card/update") - @Operation(summary = "更新产品身份证限制") - @PreAuthorize("@ss.hasPermission('haoka:product-limit:update')") - public CommonResult updateProductLimitCard(@Valid @RequestBody ProductLimitCardDO productLimitCard) { - productLimitService.updateProductLimitCard(productLimitCard); - return success(true); - } - - @DeleteMapping("/product-limit-card/delete") - @Parameter(name = "id", description = "编号", required = true) - @Operation(summary = "删除产品身份证限制") - @PreAuthorize("@ss.hasPermission('haoka:product-limit:delete')") - public CommonResult deleteProductLimitCard(@RequestParam("id") Long id) { - productLimitService.deleteProductLimitCard(id); - return success(true); - } - - @GetMapping("/product-limit-card/get") - @Operation(summary = "获得产品身份证限制") - @Parameter(name = "id", description = "编号", required = true) + @GetMapping("/product-limit-card/list-by-haoka-product-limit-id") + @Operation(summary = "获得产品身份证限制列表") + @Parameter(name = "haokaProductLimitId", description = "产品限制ID") @PreAuthorize("@ss.hasPermission('haoka:product-limit:query')") - public CommonResult getProductLimitCard(@RequestParam("id") Long id) { - return success(productLimitService.getProductLimitCard(id)); - } + public CommonResult> getProductLimitCardListByHaokaProductLimitId(@RequestParam("haokaProductLimitId") Long haokaProductLimitId) { + return success(productLimitService.getProductLimitCardListByHaokaProductLimitId(haokaProductLimitId)); + } } \ No newline at end of file diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/vo/ProductLimitAreaRespVO.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/vo/ProductLimitAreaRespVO.java index 3eb8f6d6cc..42799a03bb 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/vo/ProductLimitAreaRespVO.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/vo/ProductLimitAreaRespVO.java @@ -6,6 +6,8 @@ import java.util.*; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; import com.alibaba.excel.annotation.*; +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; @Schema(description = "管理后台 - 产品区域配置 Response VO") @Data @@ -29,7 +31,8 @@ public class ProductLimitAreaRespVO { private String addressName; @Schema(description = "是否允许") - @ExcelProperty("是否允许") + @ExcelProperty(value = "是否允许", converter = DictConvert.class) + @DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 private Boolean allowed; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/vo/ProductLimitPageReqVO.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/vo/ProductLimitPageReqVO.java index f25d7530d2..b1a40bdc6c 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/vo/ProductLimitPageReqVO.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/vo/ProductLimitPageReqVO.java @@ -15,7 +15,7 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ @ToString(callSuper = true) public class ProductLimitPageReqVO extends PageParam { - @Schema(description = "产品类型名称", example = "王五") + @Schema(description = "产品类型名称") private String name; @Schema(description = "是否使用只发货地址") diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/vo/ProductLimitRespVO.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/vo/ProductLimitRespVO.java index 6e25b2a8d1..8af04e2644 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/vo/ProductLimitRespVO.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/vo/ProductLimitRespVO.java @@ -6,6 +6,8 @@ import java.util.*; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; import com.alibaba.excel.annotation.*; +import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat; +import cn.iocoder.yudao.framework.excel.core.convert.DictConvert; @Schema(description = "管理后台 - 产品限制条件 Response VO") @Data @@ -16,20 +18,23 @@ public class ProductLimitRespVO { @ExcelProperty("产品类型ID") private Long id; - @Schema(description = "产品类型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @Schema(description = "产品类型名称", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("产品类型名称") private String name; @Schema(description = "是否使用只发货地址", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("是否使用只发货地址") + @ExcelProperty(value = "是否使用只发货地址", converter = DictConvert.class) + @DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 private Boolean useOnlySendArea; @Schema(description = "是否使用不发货地址", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("是否使用不发货地址") + @ExcelProperty(value = "是否使用不发货地址", converter = DictConvert.class) + @DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 private Boolean useNotSendArea; @Schema(description = "是否使用身份证限制", requiredMode = Schema.RequiredMode.REQUIRED) - @ExcelProperty("是否使用身份证限制") + @ExcelProperty(value = "是否使用身份证限制", converter = DictConvert.class) + @DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 private Boolean useCardLimit; @Schema(description = "最大年龄限制") diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/vo/ProductLimitSaveReqVO.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/vo/ProductLimitSaveReqVO.java index c7321213b9..5887eee374 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/vo/ProductLimitSaveReqVO.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/vo/ProductLimitSaveReqVO.java @@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; import jakarta.validation.constraints.*; +import cn.iocoder.yudao.module.haoka.dal.dataobject.product.ProductLimitAreaDO; import cn.iocoder.yudao.module.haoka.dal.dataobject.product.ProductLimitCardDO; @Schema(description = "管理后台 - 产品限制条件新增/修改 Request VO") @@ -13,7 +14,7 @@ public class ProductLimitSaveReqVO { @Schema(description = "产品类型ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24464") private Long id; - @Schema(description = "产品类型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @Schema(description = "产品类型名称", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "产品类型名称不能为空") private String name; @@ -41,4 +42,10 @@ public class ProductLimitSaveReqVO { @Schema(description = "检测周期(月)") private Integer detectionCycle; + @Schema(description = "产品区域配置列表") + private List productLimitAreas; + + @Schema(description = "产品身份证限制列表") + private List productLimitCards; + } \ No newline at end of file diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/product/ProductLimitAreaDO.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/product/ProductLimitAreaDO.java index 8b76a93f41..8ea356bfb0 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/product/ProductLimitAreaDO.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/product/ProductLimitAreaDO.java @@ -41,6 +41,8 @@ public class ProductLimitAreaDO extends BaseDO { private String addressName; /** * 是否允许 + * + * 枚举 {@link TODO infra_boolean_string 对应的类} */ private Boolean allowed; /** diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/product/ProductLimitDO.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/product/ProductLimitDO.java index 1bc6e84eb8..5e1398cf7b 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/product/ProductLimitDO.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/dataobject/product/ProductLimitDO.java @@ -33,14 +33,20 @@ public class ProductLimitDO extends BaseDO { private String name; /** * 是否使用只发货地址 + * + * 枚举 {@link TODO infra_boolean_string 对应的类} */ private Boolean useOnlySendArea; /** * 是否使用不发货地址 + * + * 枚举 {@link TODO infra_boolean_string 对应的类} */ private Boolean useNotSendArea; /** * 是否使用身份证限制 + * + * 枚举 {@link TODO infra_boolean_string 对应的类} */ private Boolean useCardLimit; /** diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/mysql/product/ProductLimitAreaMapper.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/mysql/product/ProductLimitAreaMapper.java index c645f88e3b..97f22d1eae 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/mysql/product/ProductLimitAreaMapper.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/mysql/product/ProductLimitAreaMapper.java @@ -27,4 +27,12 @@ public interface ProductLimitAreaMapper extends BaseMapperX .orderByDesc(ProductLimitAreaDO::getId)); } -} \ No newline at end of file + default List selectListByHaokaProductLimitId(Long haokaProductLimitId) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(ProductLimitAreaDO::getHaokaProductLimitId, haokaProductLimitId)); + } + + default void deleteByHaokaProductLimitId(Long haokaProductLimitId) { + delete(ProductLimitAreaDO::getHaokaProductLimitId, haokaProductLimitId); + } +} diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/mysql/product/ProductLimitCardMapper.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/mysql/product/ProductLimitCardMapper.java index 63e4035716..471af30ef1 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/mysql/product/ProductLimitCardMapper.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/dal/mysql/product/ProductLimitCardMapper.java @@ -1,12 +1,14 @@ package cn.iocoder.yudao.module.haoka.dal.mysql.product; +import java.util.*; + import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; -import cn.iocoder.yudao.module.haoka.controller.admin.product.vo.ProductLimitCardPageReqVO; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.module.haoka.dal.dataobject.product.ProductLimitCardDO; import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.haoka.controller.admin.product.vo.*; /** * 产品身份证限制 Mapper @@ -34,5 +36,8 @@ public interface ProductLimitCardMapper extends BaseMapperX delete(ProductLimitCardDO::getHaokaProductLimitId, haokaProductLimitId); } - + default List selectListByHaokaProductLimitId(Long haokaProductLimitId) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(ProductLimitCardDO::getHaokaProductLimitId, haokaProductLimitId)); + } } diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/product/ProductLimitService.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/product/ProductLimitService.java index 4159ae1b8c..18bbc7c002 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/product/ProductLimitService.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/product/ProductLimitService.java @@ -4,6 +4,7 @@ import java.util.*; import jakarta.validation.*; import cn.iocoder.yudao.module.haoka.controller.admin.product.vo.*; import cn.iocoder.yudao.module.haoka.dal.dataobject.product.ProductLimitDO; +import cn.iocoder.yudao.module.haoka.dal.dataobject.product.ProductLimitAreaDO; import cn.iocoder.yudao.module.haoka.dal.dataobject.product.ProductLimitCardDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; @@ -53,45 +54,24 @@ public interface ProductLimitService { */ PageResult getProductLimitPage(ProductLimitPageReqVO pageReqVO); + // ==================== 子表(产品区域配置) ==================== + + /** + * 获得产品区域配置列表 + * + * @param haokaProductLimitId 产品限制ID + * @return 产品区域配置列表 + */ + List getProductLimitAreaListByHaokaProductLimitId(Long haokaProductLimitId); + // ==================== 子表(产品身份证限制) ==================== /** - * 获得产品身份证限制分页 + * 获得产品身份证限制列表 * - * @param pageReqVO 分页查询 * @param haokaProductLimitId 产品限制ID - * @return 产品身份证限制分页 + * @return 产品身份证限制列表 */ - PageResult getProductLimitCardPage(PageParam pageReqVO, Long haokaProductLimitId); - - /** - * 创建产品身份证限制 - * - * @param productLimitCard 创建信息 - * @return 编号 - */ - Long createProductLimitCard(@Valid ProductLimitCardDO productLimitCard); - - /** - * 更新产品身份证限制 - * - * @param productLimitCard 更新信息 - */ - void updateProductLimitCard(@Valid ProductLimitCardDO productLimitCard); - - /** - * 删除产品身份证限制 - * - * @param id 编号 - */ - void deleteProductLimitCard(Long id); - - /** - * 获得产品身份证限制 - * - * @param id 编号 - * @return 产品身份证限制 - */ - ProductLimitCardDO getProductLimitCard(Long id); + List getProductLimitCardListByHaokaProductLimitId(Long haokaProductLimitId); } \ No newline at end of file diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/product/ProductLimitServiceImpl.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/product/ProductLimitServiceImpl.java index fd4a636b3e..03f76876af 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/product/ProductLimitServiceImpl.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/product/ProductLimitServiceImpl.java @@ -8,12 +8,14 @@ import org.springframework.transaction.annotation.Transactional; import java.util.*; import cn.iocoder.yudao.module.haoka.controller.admin.product.vo.*; import cn.iocoder.yudao.module.haoka.dal.dataobject.product.ProductLimitDO; +import cn.iocoder.yudao.module.haoka.dal.dataobject.product.ProductLimitAreaDO; import cn.iocoder.yudao.module.haoka.dal.dataobject.product.ProductLimitCardDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.haoka.dal.mysql.product.ProductLimitMapper; +import cn.iocoder.yudao.module.haoka.dal.mysql.product.ProductLimitAreaMapper; import cn.iocoder.yudao.module.haoka.dal.mysql.product.ProductLimitCardMapper; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -31,24 +33,36 @@ public class ProductLimitServiceImpl implements ProductLimitService { @Resource private ProductLimitMapper productLimitMapper; @Resource + private ProductLimitAreaMapper productLimitAreaMapper; + @Resource private ProductLimitCardMapper productLimitCardMapper; @Override + @Transactional(rollbackFor = Exception.class) public Long createProductLimit(ProductLimitSaveReqVO createReqVO) { // 插入 ProductLimitDO productLimit = BeanUtils.toBean(createReqVO, ProductLimitDO.class); productLimitMapper.insert(productLimit); + + // 插入子表 + createProductLimitAreaList(productLimit.getId(), createReqVO.getProductLimitAreas()); + createProductLimitCardList(productLimit.getId(), createReqVO.getProductLimitCards()); // 返回 return productLimit.getId(); } @Override + @Transactional(rollbackFor = Exception.class) public void updateProductLimit(ProductLimitSaveReqVO updateReqVO) { // 校验存在 validateProductLimitExists(updateReqVO.getId()); // 更新 ProductLimitDO updateObj = BeanUtils.toBean(updateReqVO, ProductLimitDO.class); productLimitMapper.updateById(updateObj); + + // 更新子表 + updateProductLimitAreaList(updateReqVO.getId(), updateReqVO.getProductLimitAreas()); + updateProductLimitCardList(updateReqVO.getId(), updateReqVO.getProductLimitCards()); } @Override @@ -60,6 +74,7 @@ public class ProductLimitServiceImpl implements ProductLimitService { productLimitMapper.deleteById(id); // 删除子表 + deleteProductLimitAreaByHaokaProductLimitId(id); deleteProductLimitCardByHaokaProductLimitId(id); } @@ -79,45 +94,44 @@ public class ProductLimitServiceImpl implements ProductLimitService { return productLimitMapper.selectPage(pageReqVO); } + // ==================== 子表(产品区域配置) ==================== + + @Override + public List getProductLimitAreaListByHaokaProductLimitId(Long haokaProductLimitId) { + return productLimitAreaMapper.selectListByHaokaProductLimitId(haokaProductLimitId); + } + + private void createProductLimitAreaList(Long haokaProductLimitId, List list) { + list.forEach(o -> o.setHaokaProductLimitId(haokaProductLimitId)); + productLimitAreaMapper.insertBatch(list); + } + + private void updateProductLimitAreaList(Long haokaProductLimitId, List list) { + deleteProductLimitAreaByHaokaProductLimitId(haokaProductLimitId); + list.forEach(o -> o.setId(null).setUpdater(null).setUpdateTime(null)); // 解决更新情况下:1)id 冲突;2)updateTime 不更新 + createProductLimitAreaList(haokaProductLimitId, list); + } + + private void deleteProductLimitAreaByHaokaProductLimitId(Long haokaProductLimitId) { + productLimitAreaMapper.deleteByHaokaProductLimitId(haokaProductLimitId); + } + // ==================== 子表(产品身份证限制) ==================== @Override - public PageResult getProductLimitCardPage(PageParam pageReqVO, Long haokaProductLimitId) { - return productLimitCardMapper.selectPage(pageReqVO, haokaProductLimitId); + public List getProductLimitCardListByHaokaProductLimitId(Long haokaProductLimitId) { + return productLimitCardMapper.selectListByHaokaProductLimitId(haokaProductLimitId); } - @Override - public Long createProductLimitCard(ProductLimitCardDO productLimitCard) { - productLimitCardMapper.insert(productLimitCard); - return productLimitCard.getId(); + private void createProductLimitCardList(Long haokaProductLimitId, List list) { + list.forEach(o -> o.setHaokaProductLimitId(haokaProductLimitId)); + productLimitCardMapper.insertBatch(list); } - @Override - public void updateProductLimitCard(ProductLimitCardDO productLimitCard) { - // 校验存在 - validateProductLimitCardExists(productLimitCard.getId()); - // 更新 - productLimitCard.setUpdater(null).setUpdateTime(null); // 解决更新情况下:updateTime 不更新 - productLimitCardMapper.updateById(productLimitCard); - } - - @Override - public void deleteProductLimitCard(Long id) { - // 校验存在 - validateProductLimitCardExists(id); - // 删除 - productLimitCardMapper.deleteById(id); - } - - @Override - public ProductLimitCardDO getProductLimitCard(Long id) { - return productLimitCardMapper.selectById(id); - } - - private void validateProductLimitCardExists(Long id) { - if (productLimitCardMapper.selectById(id) == null) { - throw exception(PRODUCT_LIMIT_CARD_NOT_EXISTS); - } + private void updateProductLimitCardList(Long haokaProductLimitId, List list) { + deleteProductLimitCardByHaokaProductLimitId(haokaProductLimitId); + list.forEach(o -> o.setId(null).setUpdater(null).setUpdateTime(null)); // 解决更新情况下:1)id 冲突;2)updateTime 不更新 + createProductLimitCardList(haokaProductLimitId, list); } private void deleteProductLimitCardByHaokaProductLimitId(Long haokaProductLimitId) {