diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-api/src/main/java/com/yunxi/scm/module/xxjj/enums/ErrorCodeConstants.java b/yunxi-module-xxjj/yunxi-module-xxjj-api/src/main/java/com/yunxi/scm/module/xxjj/enums/ErrorCodeConstants.java index 250a3685..c88e89c0 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-api/src/main/java/com/yunxi/scm/module/xxjj/enums/ErrorCodeConstants.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-api/src/main/java/com/yunxi/scm/module/xxjj/enums/ErrorCodeConstants.java @@ -92,6 +92,10 @@ public interface ErrorCodeConstants { ErrorCode PRODUCT_MODIFICATION_NOT_EXISTS = new ErrorCode(1003004029, "批量修改单不存在"); ErrorCode PRODUCT_BOM_NOT_EXISTS = new ErrorCode(1003004030, "商品BOM管理不存在"); ErrorCode PRODUCT_LNVENTORY_UNIT_NOT_EXISTS = new ErrorCode(1003004031, "商品表库存单位不存在"); + ErrorCode PRODUCT_MODIFICATION_ITEM0_NOT_EXISTS = new ErrorCode(1003004032, "批量修改单商品不存在"); + ErrorCode PRODUCT_PARAMETER_VALUE_NOT_EXISTS = new ErrorCode(1003004033, "商品参数值不存在"); + ErrorCode PRODUCT_BUSINESS_NOT_EXISTS = new ErrorCode(1003004034, "商品表和业务线关联关系不存在"); + ErrorCode PRODUCT_LABEL_ID_NOT_EXISTS = new ErrorCode(1003004035, "商品标签关联关系不存在"); /** * 合同 使用 1-005-000-000 段 */ diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/ProductController.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/ProductController.java index f35809be..0b579152 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/ProductController.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/ProductController.java @@ -1,5 +1,6 @@ package com.yunxi.scm.module.xxjj.controller.admin.product; +import com.yunxi.scm.module.xxjj.dal.mysql.product.ProductMapper; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -8,7 +9,6 @@ import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; -import javax.validation.constraints.*; import javax.validation.*; import javax.servlet.http.*; import java.util.*; @@ -36,6 +36,8 @@ public class ProductController { @Resource private ProductService productService; + @Resource + private ProductMapper productMapper; @PostMapping("/create") @Operation(summary = "创建商品") @@ -107,4 +109,14 @@ public class ProductController { return success(ProductConvert.INSTANCE.convertPage(pageResult)); } + @GetMapping("/productUpdateStatus") + @Operation(summary = "改状态") + @PreAuthorize("@ss.hasPermission('xxjj:product:query1')") + public String productUpdateStatus(@Valid @RequestBody ProductUpdateReqVO updateReqVO) { + ProductDO productDO=productService.getProduct(updateReqVO.getId()); + productDO.setProductStatus(updateReqVO.getProductStatus()); + productMapper.updateById(productDO); + return "修改成功"; + } + } diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/vo/ProductBaseVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/vo/ProductBaseVO.java index 47e7dec8..e3a36c72 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/vo/ProductBaseVO.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/vo/ProductBaseVO.java @@ -300,6 +300,9 @@ public class ProductBaseVO { @Schema(description = "生命周期") private String lifeCycle; + @Schema(description = "送货选择") + private String deliverMode; + @Schema(description = "销售状态") private String salesStatus; diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/vo/ProductExcelVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/vo/ProductExcelVO.java index f3aa2537..fd4605a4 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/vo/ProductExcelVO.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/vo/ProductExcelVO.java @@ -260,6 +260,9 @@ public class ProductExcelVO { @ExcelProperty("质检比例") private String qualityInspectionRatio; + @Schema(description = "送货选择") + private String deliverMode; + @ExcelProperty("质检频次") private String qualityInspectionFrequency; diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/vo/ProductExportReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/vo/ProductExportReqVO.java index a5ed71d1..7a5f8d21 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/vo/ProductExportReqVO.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/vo/ProductExportReqVO.java @@ -225,6 +225,9 @@ public class ProductExportReqVO { @Schema(description = "存储温度下限") private String storageTemperatureDown; + @Schema(description = "送货选择") + private String deliverMode; + @Schema(description = "存储温度上限") private String storageTemperatureUpper; diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/vo/ProductPageReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/vo/ProductPageReqVO.java index 78780fad..42b69c74 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/vo/ProductPageReqVO.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/product/vo/ProductPageReqVO.java @@ -222,6 +222,9 @@ public class ProductPageReqVO extends PageParam { @Schema(description = "层数/板(存储)") private String storageBoxBoardNum; + @Schema(description = "送货选择") + private String deliverMode; + @Schema(description = "温层(存储)(1:常温 2:恒温 3:冷藏 4:冷冻)") private String storageTemperature; diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/ProductBusinessController.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/ProductBusinessController.java new file mode 100644 index 00000000..64cab578 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/ProductBusinessController.java @@ -0,0 +1,102 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productbusiness; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.yunxi.scm.framework.common.pojo.PageResult; +import com.yunxi.scm.framework.common.pojo.CommonResult; +import static com.yunxi.scm.framework.common.pojo.CommonResult.success; + +import com.yunxi.scm.framework.excel.core.util.ExcelUtils; + +import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog; +import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*; + +import com.yunxi.scm.module.xxjj.controller.admin.productbusiness.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productbusiness.ProductBusinessDO; +import com.yunxi.scm.module.xxjj.convert.productbusiness.ProductBusinessConvert; +import com.yunxi.scm.module.xxjj.service.productbusiness.ProductBusinessService; + +@Tag(name = "管理后台 - 商品表和业务线关联关系") +@RestController +@RequestMapping("/xxjj/product-business") +@Validated +public class ProductBusinessController { + + @Resource + private ProductBusinessService productBusinessService; + + @PostMapping("/create") + @Operation(summary = "创建商品表和业务线关联关系") + @PreAuthorize("@ss.hasPermission('xxjj:product-business:create')") + public CommonResult createProductBusiness(@Valid @RequestBody ProductBusinessCreateReqVO createReqVO) { + return success(productBusinessService.createProductBusiness(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新商品表和业务线关联关系") + @PreAuthorize("@ss.hasPermission('xxjj:product-business:update')") + public CommonResult updateProductBusiness(@Valid @RequestBody ProductBusinessUpdateReqVO updateReqVO) { + productBusinessService.updateProductBusiness(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除商品表和业务线关联关系") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('xxjj:product-business:delete')") + public CommonResult deleteProductBusiness(@RequestParam("id") Long id) { + productBusinessService.deleteProductBusiness(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得商品表和业务线关联关系") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('xxjj:product-business:query')") + public CommonResult getProductBusiness(@RequestParam("id") Long id) { + ProductBusinessDO productBusiness = productBusinessService.getProductBusiness(id); + return success(ProductBusinessConvert.INSTANCE.convert(productBusiness)); + } + + @GetMapping("/list") + @Operation(summary = "获得商品表和业务线关联关系列表") + @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") + @PreAuthorize("@ss.hasPermission('xxjj:product-business:query')") + public CommonResult> getProductBusinessList(@RequestParam("ids") Collection ids) { + List list = productBusinessService.getProductBusinessList(ids); + return success(ProductBusinessConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得商品表和业务线关联关系分页") + @PreAuthorize("@ss.hasPermission('xxjj:product-business:query')") + public CommonResult> getProductBusinessPage(@Valid ProductBusinessPageReqVO pageVO) { + PageResult pageResult = productBusinessService.getProductBusinessPage(pageVO); + return success(ProductBusinessConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出商品表和业务线关联关系 Excel") + @PreAuthorize("@ss.hasPermission('xxjj:product-business:export')") + @OperateLog(type = EXPORT) + public void exportProductBusinessExcel(@Valid ProductBusinessExportReqVO exportReqVO, + HttpServletResponse response) throws IOException { + List list = productBusinessService.getProductBusinessList(exportReqVO); + // 导出 Excel + List datas = ProductBusinessConvert.INSTANCE.convertList02(list); + ExcelUtils.write(response, "商品表和业务线关联关系.xls", "数据", ProductBusinessExcelVO.class, datas); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessBaseVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessBaseVO.java new file mode 100644 index 00000000..91844ac7 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessBaseVO.java @@ -0,0 +1,25 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productbusiness.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import javax.validation.constraints.*; + +/** + * 商品表和业务线关联关系 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ +@Data +public class ProductBusinessBaseVO { + + @Schema(description = "业务id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6024") + @NotNull(message = "业务id不能为空") + private Long productId; + + @Schema(description = "业务线id", requiredMode = Schema.RequiredMode.REQUIRED, example = "27659") + @NotNull(message = "业务线id不能为空") + private Long businessLineId; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessCreateReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessCreateReqVO.java new file mode 100644 index 00000000..653fc3ac --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessCreateReqVO.java @@ -0,0 +1,14 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productbusiness.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 商品表和业务线关联关系创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductBusinessCreateReqVO extends ProductBusinessBaseVO { + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessExcelVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessExcelVO.java new file mode 100644 index 00000000..254ee116 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessExcelVO.java @@ -0,0 +1,31 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productbusiness.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; + +import com.alibaba.excel.annotation.ExcelProperty; + +/** + * 商品表和业务线关联关系 Excel VO + * + * @author 长江云息 + */ +@Data +public class ProductBusinessExcelVO { + + @ExcelProperty("主键id") + private Long id; + + @ExcelProperty("业务id") + private Long productId; + + @ExcelProperty("业务线id") + private Long businessLineId; + + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessExportReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessExportReqVO.java new file mode 100644 index 00000000..43301755 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessExportReqVO.java @@ -0,0 +1,26 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productbusiness.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.yunxi.scm.framework.common.pojo.PageParam; +import java.time.LocalDateTime; +import org.springframework.format.annotation.DateTimeFormat; + +import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 商品表和业务线关联关系 Excel 导出 Request VO,参数和 ProductBusinessPageReqVO 是一致的") +@Data +public class ProductBusinessExportReqVO { + + @Schema(description = "业务id", example = "6024") + private Long productId; + + @Schema(description = "业务线id", example = "27659") + private Long businessLineId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessPageReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessPageReqVO.java new file mode 100644 index 00000000..be6f69af --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessPageReqVO.java @@ -0,0 +1,28 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productbusiness.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.yunxi.scm.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 商品表和业务线关联关系分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductBusinessPageReqVO extends PageParam { + + @Schema(description = "业务id", example = "6024") + private Long productId; + + @Schema(description = "业务线id", example = "27659") + private Long businessLineId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessRespVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessRespVO.java new file mode 100644 index 00000000..4f1d2676 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessRespVO.java @@ -0,0 +1,19 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productbusiness.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 商品表和业务线关联关系 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductBusinessRespVO extends ProductBusinessBaseVO { + + @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9153") + private Long id; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessUpdateReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessUpdateReqVO.java new file mode 100644 index 00000000..5b932c04 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productbusiness/vo/ProductBusinessUpdateReqVO.java @@ -0,0 +1,18 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productbusiness.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 商品表和业务线关联关系更新 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductBusinessUpdateReqVO extends ProductBusinessBaseVO { + + @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "9153") + @NotNull(message = "主键id不能为空") + private Long id; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/ProductLabelIdController.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/ProductLabelIdController.java new file mode 100644 index 00000000..8f1c59e5 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/ProductLabelIdController.java @@ -0,0 +1,102 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productlabelid; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.yunxi.scm.framework.common.pojo.PageResult; +import com.yunxi.scm.framework.common.pojo.CommonResult; +import static com.yunxi.scm.framework.common.pojo.CommonResult.success; + +import com.yunxi.scm.framework.excel.core.util.ExcelUtils; + +import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog; +import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*; + +import com.yunxi.scm.module.xxjj.controller.admin.productlabelid.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productlabelid.ProductLabelIdDO; +import com.yunxi.scm.module.xxjj.convert.productlabelid.ProductLabelIdConvert; +import com.yunxi.scm.module.xxjj.service.productlabelid.ProductLabelIdService; + +@Tag(name = "管理后台 - 商品标签关联关系") +@RestController +@RequestMapping("/xxjj/product-label-id") +@Validated +public class ProductLabelIdController { + + @Resource + private ProductLabelIdService productLabelIdService; + + @PostMapping("/create") + @Operation(summary = "创建商品标签关联关系") + @PreAuthorize("@ss.hasPermission('xxjj:product-label-id:create')") + public CommonResult createProductLabelId(@Valid @RequestBody ProductLabelIdCreateReqVO createReqVO) { + return success(productLabelIdService.createProductLabelId(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新商品标签关联关系") + @PreAuthorize("@ss.hasPermission('xxjj:product-label-id:update')") + public CommonResult updateProductLabelId(@Valid @RequestBody ProductLabelIdUpdateReqVO updateReqVO) { + productLabelIdService.updateProductLabelId(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除商品标签关联关系") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('xxjj:product-label-id:delete')") + public CommonResult deleteProductLabelId(@RequestParam("id") Long id) { + productLabelIdService.deleteProductLabelId(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得商品标签关联关系") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('xxjj:product-label-id:query')") + public CommonResult getProductLabelId(@RequestParam("id") Long id) { + ProductLabelIdDO productLabelId = productLabelIdService.getProductLabelId(id); + return success(ProductLabelIdConvert.INSTANCE.convert(productLabelId)); + } + + @GetMapping("/list") + @Operation(summary = "获得商品标签关联关系列表") + @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") + @PreAuthorize("@ss.hasPermission('xxjj:product-label-id:query')") + public CommonResult> getProductLabelIdList(@RequestParam("ids") Collection ids) { + List list = productLabelIdService.getProductLabelIdList(ids); + return success(ProductLabelIdConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得商品标签关联关系分页") + @PreAuthorize("@ss.hasPermission('xxjj:product-label-id:query')") + public CommonResult> getProductLabelIdPage(@Valid ProductLabelIdPageReqVO pageVO) { + PageResult pageResult = productLabelIdService.getProductLabelIdPage(pageVO); + return success(ProductLabelIdConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出商品标签关联关系 Excel") + @PreAuthorize("@ss.hasPermission('xxjj:product-label-id:export')") + @OperateLog(type = EXPORT) + public void exportProductLabelIdExcel(@Valid ProductLabelIdExportReqVO exportReqVO, + HttpServletResponse response) throws IOException { + List list = productLabelIdService.getProductLabelIdList(exportReqVO); + // 导出 Excel + List datas = ProductLabelIdConvert.INSTANCE.convertList02(list); + ExcelUtils.write(response, "商品标签关联关系.xls", "数据", ProductLabelIdExcelVO.class, datas); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdBaseVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdBaseVO.java new file mode 100644 index 00000000..36ec7e8e --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdBaseVO.java @@ -0,0 +1,23 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productlabelid.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import javax.validation.constraints.*; + +/** + * 商品标签关联关系 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ +@Data +public class ProductLabelIdBaseVO { + + @Schema(description = "商品id", example = "23915") + private Long productId; + + @Schema(description = "标签id", example = "19298") + private Long labelId; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdCreateReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdCreateReqVO.java new file mode 100644 index 00000000..d1edee8d --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdCreateReqVO.java @@ -0,0 +1,14 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productlabelid.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 商品标签关联关系创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductLabelIdCreateReqVO extends ProductLabelIdBaseVO { + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdExcelVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdExcelVO.java new file mode 100644 index 00000000..2d1636a3 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdExcelVO.java @@ -0,0 +1,31 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productlabelid.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; + +import com.alibaba.excel.annotation.ExcelProperty; + +/** + * 商品标签关联关系 Excel VO + * + * @author 长江云息 + */ +@Data +public class ProductLabelIdExcelVO { + + @ExcelProperty("编号") + private Long id; + + @ExcelProperty("商品id") + private Long productId; + + @ExcelProperty("标签id") + private Long labelId; + + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdExportReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdExportReqVO.java new file mode 100644 index 00000000..e33ae978 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdExportReqVO.java @@ -0,0 +1,26 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productlabelid.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.yunxi.scm.framework.common.pojo.PageParam; +import java.time.LocalDateTime; +import org.springframework.format.annotation.DateTimeFormat; + +import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 商品标签关联关系 Excel 导出 Request VO,参数和 ProductLabelIdPageReqVO 是一致的") +@Data +public class ProductLabelIdExportReqVO { + + @Schema(description = "商品id", example = "23915") + private Long productId; + + @Schema(description = "标签id", example = "19298") + private Long labelId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdPageReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdPageReqVO.java new file mode 100644 index 00000000..775df77c --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdPageReqVO.java @@ -0,0 +1,28 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productlabelid.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.yunxi.scm.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 商品标签关联关系分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductLabelIdPageReqVO extends PageParam { + + @Schema(description = "商品id", example = "23915") + private Long productId; + + @Schema(description = "标签id", example = "19298") + private Long labelId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdRespVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdRespVO.java new file mode 100644 index 00000000..3533f47f --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdRespVO.java @@ -0,0 +1,19 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productlabelid.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 商品标签关联关系 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductLabelIdRespVO extends ProductLabelIdBaseVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15723") + private Long id; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdUpdateReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdUpdateReqVO.java new file mode 100644 index 00000000..4343bf4f --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productlabelid/vo/ProductLabelIdUpdateReqVO.java @@ -0,0 +1,18 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productlabelid.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 商品标签关联关系更新 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductLabelIdUpdateReqVO extends ProductLabelIdBaseVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15723") + @NotNull(message = "编号不能为空") + private Long id; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/ProductModificationItem0Controller.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/ProductModificationItem0Controller.java new file mode 100644 index 00000000..c7b923fc --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/ProductModificationItem0Controller.java @@ -0,0 +1,102 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productmodificationitem0; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.yunxi.scm.framework.common.pojo.PageResult; +import com.yunxi.scm.framework.common.pojo.CommonResult; +import static com.yunxi.scm.framework.common.pojo.CommonResult.success; + +import com.yunxi.scm.framework.excel.core.util.ExcelUtils; + +import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog; +import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*; + +import com.yunxi.scm.module.xxjj.controller.admin.productmodificationitem0.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productmodificationitem0.ProductModificationItem0DO; +import com.yunxi.scm.module.xxjj.convert.productmodificationitem0.ProductModificationItem0Convert; +import com.yunxi.scm.module.xxjj.service.productmodificationitem0.ProductModificationItem0Service; + +@Tag(name = "管理后台 - 批量修改单商品") +@RestController +@RequestMapping("/xxjj/product-modification-item0") +@Validated +public class ProductModificationItem0Controller { + + @Resource + private ProductModificationItem0Service productModificationItem0Service; + + @PostMapping("/create") + @Operation(summary = "创建批量修改单商品") + @PreAuthorize("@ss.hasPermission('xxjj:product-modification-item0:create')") + public CommonResult createProductModificationItem0(@Valid @RequestBody ProductModificationItem0CreateReqVO createReqVO) { + return success(productModificationItem0Service.createProductModificationItem0(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新批量修改单商品") + @PreAuthorize("@ss.hasPermission('xxjj:product-modification-item0:update')") + public CommonResult updateProductModificationItem0(@Valid @RequestBody ProductModificationItem0UpdateReqVO updateReqVO) { + productModificationItem0Service.updateProductModificationItem0(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除批量修改单商品") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('xxjj:product-modification-item0:delete')") + public CommonResult deleteProductModificationItem0(@RequestParam("id") Long id) { + productModificationItem0Service.deleteProductModificationItem0(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得批量修改单商品") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('xxjj:product-modification-item0:query')") + public CommonResult getProductModificationItem0(@RequestParam("id") Long id) { + ProductModificationItem0DO productModificationItem0 = productModificationItem0Service.getProductModificationItem0(id); + return success(ProductModificationItem0Convert.INSTANCE.convert(productModificationItem0)); + } + + @GetMapping("/list") + @Operation(summary = "获得批量修改单商品列表") + @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") + @PreAuthorize("@ss.hasPermission('xxjj:product-modification-item0:query')") + public CommonResult> getProductModificationItem0List(@RequestParam("ids") Collection ids) { + List list = productModificationItem0Service.getProductModificationItem0List(ids); + return success(ProductModificationItem0Convert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得批量修改单商品分页") + @PreAuthorize("@ss.hasPermission('xxjj:product-modification-item0:query')") + public CommonResult> getProductModificationItem0Page(@Valid ProductModificationItem0PageReqVO pageVO) { + PageResult pageResult = productModificationItem0Service.getProductModificationItem0Page(pageVO); + return success(ProductModificationItem0Convert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出批量修改单商品 Excel") + @PreAuthorize("@ss.hasPermission('xxjj:product-modification-item0:export')") + @OperateLog(type = EXPORT) + public void exportProductModificationItem0Excel(@Valid ProductModificationItem0ExportReqVO exportReqVO, + HttpServletResponse response) throws IOException { + List list = productModificationItem0Service.getProductModificationItem0List(exportReqVO); + // 导出 Excel + List datas = ProductModificationItem0Convert.INSTANCE.convertList02(list); + ExcelUtils.write(response, "批量修改单商品.xls", "数据", ProductModificationItem0ExcelVO.class, datas); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0BaseVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0BaseVO.java new file mode 100644 index 00000000..3ace3f5f --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0BaseVO.java @@ -0,0 +1,20 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productmodificationitem0.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import javax.validation.constraints.*; + +/** + * 批量修改单商品 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ +@Data +public class ProductModificationItem0BaseVO { + + @Schema(description = "商品id", example = "23297") + private Long productId; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0CreateReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0CreateReqVO.java new file mode 100644 index 00000000..0f06cc1f --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0CreateReqVO.java @@ -0,0 +1,14 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productmodificationitem0.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 批量修改单商品创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductModificationItem0CreateReqVO extends ProductModificationItem0BaseVO { + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0ExcelVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0ExcelVO.java new file mode 100644 index 00000000..9b7d9fdc --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0ExcelVO.java @@ -0,0 +1,28 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productmodificationitem0.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; + +import com.alibaba.excel.annotation.ExcelProperty; + +/** + * 批量修改单商品 Excel VO + * + * @author 长江云息 + */ +@Data +public class ProductModificationItem0ExcelVO { + + @ExcelProperty("编号") + private Long id; + + @ExcelProperty("商品id") + private Long productId; + + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0ExportReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0ExportReqVO.java new file mode 100644 index 00000000..f86987f3 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0ExportReqVO.java @@ -0,0 +1,23 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productmodificationitem0.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.yunxi.scm.framework.common.pojo.PageParam; +import java.time.LocalDateTime; +import org.springframework.format.annotation.DateTimeFormat; + +import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 批量修改单商品 Excel 导出 Request VO,参数和 ProductModificationItem0PageReqVO 是一致的") +@Data +public class ProductModificationItem0ExportReqVO { + + @Schema(description = "商品id", example = "23297") + private Long productId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0PageReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0PageReqVO.java new file mode 100644 index 00000000..9562a340 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0PageReqVO.java @@ -0,0 +1,25 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productmodificationitem0.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.yunxi.scm.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 批量修改单商品分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductModificationItem0PageReqVO extends PageParam { + + @Schema(description = "商品id", example = "23297") + private Long productId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0RespVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0RespVO.java new file mode 100644 index 00000000..efb26815 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0RespVO.java @@ -0,0 +1,19 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productmodificationitem0.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 批量修改单商品 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductModificationItem0RespVO extends ProductModificationItem0BaseVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31088") + private Long id; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0UpdateReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0UpdateReqVO.java new file mode 100644 index 00000000..4678a1b2 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productmodificationitem0/vo/ProductModificationItem0UpdateReqVO.java @@ -0,0 +1,18 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productmodificationitem0.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 批量修改单商品更新 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductModificationItem0UpdateReqVO extends ProductModificationItem0BaseVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31088") + @NotNull(message = "编号不能为空") + private Long id; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/ProductParameterValueController.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/ProductParameterValueController.java new file mode 100644 index 00000000..7852ec3d --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/ProductParameterValueController.java @@ -0,0 +1,102 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productparametervalue; + +import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.security.access.prepost.PreAuthorize; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Operation; + +import javax.validation.constraints.*; +import javax.validation.*; +import javax.servlet.http.*; +import java.util.*; +import java.io.IOException; + +import com.yunxi.scm.framework.common.pojo.PageResult; +import com.yunxi.scm.framework.common.pojo.CommonResult; +import static com.yunxi.scm.framework.common.pojo.CommonResult.success; + +import com.yunxi.scm.framework.excel.core.util.ExcelUtils; + +import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog; +import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*; + +import com.yunxi.scm.module.xxjj.controller.admin.productparametervalue.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productparametervalue.ProductParameterValueDO; +import com.yunxi.scm.module.xxjj.convert.productparametervalue.ProductParameterValueConvert; +import com.yunxi.scm.module.xxjj.service.productparametervalue.ProductParameterValueService; + +@Tag(name = "管理后台 - 商品参数值") +@RestController +@RequestMapping("/xxjj/product-parameter-value") +@Validated +public class ProductParameterValueController { + + @Resource + private ProductParameterValueService productParameterValueService; + + @PostMapping("/create") + @Operation(summary = "创建商品参数值") + @PreAuthorize("@ss.hasPermission('xxjj:product-parameter-value:create')") + public CommonResult createProductParameterValue(@Valid @RequestBody ProductParameterValueCreateReqVO createReqVO) { + return success(productParameterValueService.createProductParameterValue(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新商品参数值") + @PreAuthorize("@ss.hasPermission('xxjj:product-parameter-value:update')") + public CommonResult updateProductParameterValue(@Valid @RequestBody ProductParameterValueUpdateReqVO updateReqVO) { + productParameterValueService.updateProductParameterValue(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除商品参数值") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('xxjj:product-parameter-value:delete')") + public CommonResult deleteProductParameterValue(@RequestParam("id") Long id) { + productParameterValueService.deleteProductParameterValue(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得商品参数值") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('xxjj:product-parameter-value:query')") + public CommonResult getProductParameterValue(@RequestParam("id") Long id) { + ProductParameterValueDO productParameterValue = productParameterValueService.getProductParameterValue(id); + return success(ProductParameterValueConvert.INSTANCE.convert(productParameterValue)); + } + + @GetMapping("/list") + @Operation(summary = "获得商品参数值列表") + @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") + @PreAuthorize("@ss.hasPermission('xxjj:product-parameter-value:query')") + public CommonResult> getProductParameterValueList(@RequestParam("ids") Collection ids) { + List list = productParameterValueService.getProductParameterValueList(ids); + return success(ProductParameterValueConvert.INSTANCE.convertList(list)); + } + + @GetMapping("/page") + @Operation(summary = "获得商品参数值分页") + @PreAuthorize("@ss.hasPermission('xxjj:product-parameter-value:query')") + public CommonResult> getProductParameterValuePage(@Valid ProductParameterValuePageReqVO pageVO) { + PageResult pageResult = productParameterValueService.getProductParameterValuePage(pageVO); + return success(ProductParameterValueConvert.INSTANCE.convertPage(pageResult)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出商品参数值 Excel") + @PreAuthorize("@ss.hasPermission('xxjj:product-parameter-value:export')") + @OperateLog(type = EXPORT) + public void exportProductParameterValueExcel(@Valid ProductParameterValueExportReqVO exportReqVO, + HttpServletResponse response) throws IOException { + List list = productParameterValueService.getProductParameterValueList(exportReqVO); + // 导出 Excel + List datas = ProductParameterValueConvert.INSTANCE.convertList02(list); + ExcelUtils.write(response, "商品参数值.xls", "数据", ProductParameterValueExcelVO.class, datas); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValueBaseVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValueBaseVO.java new file mode 100644 index 00000000..477767d1 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValueBaseVO.java @@ -0,0 +1,23 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productparametervalue.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import javax.validation.constraints.*; + +/** + * 商品参数值 Base VO,提供给添加、修改、详细的子 VO 使用 + * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 + */ +@Data +public class ProductParameterValueBaseVO { + + @Schema(description = "主表ID", example = "2958") + private Long parameterId; + + @Schema(description = "参数值", example = "李四") + private String parameterName; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValueCreateReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValueCreateReqVO.java new file mode 100644 index 00000000..57da6d94 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValueCreateReqVO.java @@ -0,0 +1,14 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productparametervalue.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 商品参数值创建 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductParameterValueCreateReqVO extends ProductParameterValueBaseVO { + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValueExcelVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValueExcelVO.java new file mode 100644 index 00000000..82a8d1a7 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValueExcelVO.java @@ -0,0 +1,31 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productparametervalue.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; + +import com.alibaba.excel.annotation.ExcelProperty; + +/** + * 商品参数值 Excel VO + * + * @author 长江云息 + */ +@Data +public class ProductParameterValueExcelVO { + + @ExcelProperty("ID") + private Long id; + + @ExcelProperty("主表ID") + private Long parameterId; + + @ExcelProperty("参数值") + private String parameterName; + + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValueExportReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValueExportReqVO.java new file mode 100644 index 00000000..640aad66 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValueExportReqVO.java @@ -0,0 +1,26 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productparametervalue.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.yunxi.scm.framework.common.pojo.PageParam; +import java.time.LocalDateTime; +import org.springframework.format.annotation.DateTimeFormat; + +import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 商品参数值 Excel 导出 Request VO,参数和 ProductParameterValuePageReqVO 是一致的") +@Data +public class ProductParameterValueExportReqVO { + + @Schema(description = "主表ID", example = "2958") + private Long parameterId; + + @Schema(description = "参数值", example = "李四") + private String parameterName; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValuePageReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValuePageReqVO.java new file mode 100644 index 00000000..21441d68 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValuePageReqVO.java @@ -0,0 +1,28 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productparametervalue.vo; + +import lombok.*; +import java.util.*; +import io.swagger.v3.oas.annotations.media.Schema; +import com.yunxi.scm.framework.common.pojo.PageParam; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 商品参数值分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductParameterValuePageReqVO extends PageParam { + + @Schema(description = "主表ID", example = "2958") + private Long parameterId; + + @Schema(description = "参数值", example = "李四") + private String parameterName; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValueRespVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValueRespVO.java new file mode 100644 index 00000000..506f573b --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValueRespVO.java @@ -0,0 +1,19 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productparametervalue.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 商品参数值 Response VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductParameterValueRespVO extends ProductParameterValueBaseVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29318") + private Long id; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValueUpdateReqVO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValueUpdateReqVO.java new file mode 100644 index 00000000..89657ef6 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/controller/admin/productparametervalue/vo/ProductParameterValueUpdateReqVO.java @@ -0,0 +1,18 @@ +package com.yunxi.scm.module.xxjj.controller.admin.productparametervalue.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import javax.validation.constraints.*; + +@Schema(description = "管理后台 - 商品参数值更新 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ProductParameterValueUpdateReqVO extends ProductParameterValueBaseVO { + + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "29318") + @NotNull(message = "ID不能为空") + private Long id; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/productbusiness/ProductBusinessConvert.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/productbusiness/ProductBusinessConvert.java new file mode 100644 index 00000000..65fc0533 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/productbusiness/ProductBusinessConvert.java @@ -0,0 +1,34 @@ +package com.yunxi.scm.module.xxjj.convert.productbusiness; + +import java.util.*; + +import com.yunxi.scm.framework.common.pojo.PageResult; + +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; +import com.yunxi.scm.module.xxjj.controller.admin.productbusiness.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productbusiness.ProductBusinessDO; + +/** + * 商品表和业务线关联关系 Convert + * + * @author 长江云息 + */ +@Mapper +public interface ProductBusinessConvert { + + ProductBusinessConvert INSTANCE = Mappers.getMapper(ProductBusinessConvert.class); + + ProductBusinessDO convert(ProductBusinessCreateReqVO bean); + + ProductBusinessDO convert(ProductBusinessUpdateReqVO bean); + + ProductBusinessRespVO convert(ProductBusinessDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + + List convertList02(List list); + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/productlabelid/ProductLabelIdConvert.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/productlabelid/ProductLabelIdConvert.java new file mode 100644 index 00000000..fdae6aa6 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/productlabelid/ProductLabelIdConvert.java @@ -0,0 +1,34 @@ +package com.yunxi.scm.module.xxjj.convert.productlabelid; + +import java.util.*; + +import com.yunxi.scm.framework.common.pojo.PageResult; + +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; +import com.yunxi.scm.module.xxjj.controller.admin.productlabelid.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productlabelid.ProductLabelIdDO; + +/** + * 商品标签关联关系 Convert + * + * @author 长江云息 + */ +@Mapper +public interface ProductLabelIdConvert { + + ProductLabelIdConvert INSTANCE = Mappers.getMapper(ProductLabelIdConvert.class); + + ProductLabelIdDO convert(ProductLabelIdCreateReqVO bean); + + ProductLabelIdDO convert(ProductLabelIdUpdateReqVO bean); + + ProductLabelIdRespVO convert(ProductLabelIdDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + + List convertList02(List list); + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/productmodificationitem0/ProductModificationItem0Convert.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/productmodificationitem0/ProductModificationItem0Convert.java new file mode 100644 index 00000000..19861f98 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/productmodificationitem0/ProductModificationItem0Convert.java @@ -0,0 +1,34 @@ +package com.yunxi.scm.module.xxjj.convert.productmodificationitem0; + +import java.util.*; + +import com.yunxi.scm.framework.common.pojo.PageResult; + +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; +import com.yunxi.scm.module.xxjj.controller.admin.productmodificationitem0.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productmodificationitem0.ProductModificationItem0DO; + +/** + * 批量修改单商品 Convert + * + * @author 长江云息 + */ +@Mapper +public interface ProductModificationItem0Convert { + + ProductModificationItem0Convert INSTANCE = Mappers.getMapper(ProductModificationItem0Convert.class); + + ProductModificationItem0DO convert(ProductModificationItem0CreateReqVO bean); + + ProductModificationItem0DO convert(ProductModificationItem0UpdateReqVO bean); + + ProductModificationItem0RespVO convert(ProductModificationItem0DO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + + List convertList02(List list); + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/productparametervalue/ProductParameterValueConvert.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/productparametervalue/ProductParameterValueConvert.java new file mode 100644 index 00000000..e0c9cc28 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/convert/productparametervalue/ProductParameterValueConvert.java @@ -0,0 +1,34 @@ +package com.yunxi.scm.module.xxjj.convert.productparametervalue; + +import java.util.*; + +import com.yunxi.scm.framework.common.pojo.PageResult; + +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; +import com.yunxi.scm.module.xxjj.controller.admin.productparametervalue.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productparametervalue.ProductParameterValueDO; + +/** + * 商品参数值 Convert + * + * @author 长江云息 + */ +@Mapper +public interface ProductParameterValueConvert { + + ProductParameterValueConvert INSTANCE = Mappers.getMapper(ProductParameterValueConvert.class); + + ProductParameterValueDO convert(ProductParameterValueCreateReqVO bean); + + ProductParameterValueDO convert(ProductParameterValueUpdateReqVO bean); + + ProductParameterValueRespVO convert(ProductParameterValueDO bean); + + List convertList(List list); + + PageResult convertPage(PageResult page); + + List convertList02(List list); + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/product/ProductDO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/product/ProductDO.java index cbff1b99..d247bfb3 100644 --- a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/product/ProductDO.java +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/product/ProductDO.java @@ -434,6 +434,9 @@ public class ProductDO extends BaseDO { @Schema(description = "销售状态") private String salesStatus; + @Schema(description = "送货选择") + private String deliverMode; + //首选供应商 @TableField(exist = false) private String supplierName; diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/productbusiness/ProductBusinessDO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/productbusiness/ProductBusinessDO.java new file mode 100644 index 00000000..4c286f64 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/productbusiness/ProductBusinessDO.java @@ -0,0 +1,39 @@ +package com.yunxi.scm.module.xxjj.dal.dataobject.productbusiness; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO; + +/** + * 商品表和业务线关联关系 DO + * + * @author 长江云息 + */ +@TableName("xxjj_product_business") +@KeySequence("xxjj_product_business_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ProductBusinessDO extends BaseDO { + + /** + * 主键id + */ + @TableId + private Long id; + /** + * 业务id + */ + private Long productId; + /** + * 业务线id + */ + private Long businessLineId; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/productlabelid/ProductLabelIdDO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/productlabelid/ProductLabelIdDO.java new file mode 100644 index 00000000..97fd7ccf --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/productlabelid/ProductLabelIdDO.java @@ -0,0 +1,39 @@ +package com.yunxi.scm.module.xxjj.dal.dataobject.productlabelid; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO; + +/** + * 商品标签关联关系 DO + * + * @author 长江云息 + */ +@TableName("xxjj_product_label_id") +@KeySequence("xxjj_product_label_id_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ProductLabelIdDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 商品id + */ + private Long productId; + /** + * 标签id + */ + private Long labelId; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/productmodificationitem0/ProductModificationItem0DO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/productmodificationitem0/ProductModificationItem0DO.java new file mode 100644 index 00000000..4459cd1a --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/productmodificationitem0/ProductModificationItem0DO.java @@ -0,0 +1,35 @@ +package com.yunxi.scm.module.xxjj.dal.dataobject.productmodificationitem0; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO; + +/** + * 批量修改单商品 DO + * + * @author 长江云息 + */ +@TableName("xxjj_product_modification_item0") +@KeySequence("xxjj_product_modification_item0_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ProductModificationItem0DO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 商品id + */ + private Long productId; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/productparametervalue/ProductParameterValueDO.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/productparametervalue/ProductParameterValueDO.java new file mode 100644 index 00000000..9dadd08c --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/dataobject/productparametervalue/ProductParameterValueDO.java @@ -0,0 +1,39 @@ +package com.yunxi.scm.module.xxjj.dal.dataobject.productparametervalue; + +import lombok.*; +import java.util.*; +import java.time.LocalDateTime; +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO; + +/** + * 商品参数值 DO + * + * @author 长江云息 + */ +@TableName("xxjj_product_parameter_value") +@KeySequence("xxjj_product_parameter_value_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ProductParameterValueDO extends BaseDO { + + /** + * ID + */ + @TableId + private Long id; + /** + * 主表ID + */ + private Long parameterId; + /** + * 参数值 + */ + private String parameterName; + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/productbusiness/ProductBusinessMapper.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/productbusiness/ProductBusinessMapper.java new file mode 100644 index 00000000..f83138e7 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/productbusiness/ProductBusinessMapper.java @@ -0,0 +1,36 @@ +package com.yunxi.scm.module.xxjj.dal.mysql.productbusiness; + +import java.util.*; + +import com.yunxi.scm.framework.common.pojo.PageResult; +import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX; +import com.yunxi.scm.module.xxjj.dal.dataobject.productbusiness.ProductBusinessDO; +import org.apache.ibatis.annotations.Mapper; +import com.yunxi.scm.module.xxjj.controller.admin.productbusiness.vo.*; + +/** + * 商品表和业务线关联关系 Mapper + * + * @author 长江云息 + */ +@Mapper +public interface ProductBusinessMapper extends BaseMapperX { + + default PageResult selectPage(ProductBusinessPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ProductBusinessDO::getProductId, reqVO.getProductId()) + .eqIfPresent(ProductBusinessDO::getBusinessLineId, reqVO.getBusinessLineId()) + .betweenIfPresent(ProductBusinessDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ProductBusinessDO::getId)); + } + + default List selectList(ProductBusinessExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(ProductBusinessDO::getProductId, reqVO.getProductId()) + .eqIfPresent(ProductBusinessDO::getBusinessLineId, reqVO.getBusinessLineId()) + .betweenIfPresent(ProductBusinessDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ProductBusinessDO::getId)); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/productlabelid/ProductLabelIdMapper.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/productlabelid/ProductLabelIdMapper.java new file mode 100644 index 00000000..fc4892b6 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/productlabelid/ProductLabelIdMapper.java @@ -0,0 +1,36 @@ +package com.yunxi.scm.module.xxjj.dal.mysql.productlabelid; + +import java.util.*; + +import com.yunxi.scm.framework.common.pojo.PageResult; +import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX; +import com.yunxi.scm.module.xxjj.dal.dataobject.productlabelid.ProductLabelIdDO; +import org.apache.ibatis.annotations.Mapper; +import com.yunxi.scm.module.xxjj.controller.admin.productlabelid.vo.*; + +/** + * 商品标签关联关系 Mapper + * + * @author 长江云息 + */ +@Mapper +public interface ProductLabelIdMapper extends BaseMapperX { + + default PageResult selectPage(ProductLabelIdPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ProductLabelIdDO::getProductId, reqVO.getProductId()) + .eqIfPresent(ProductLabelIdDO::getLabelId, reqVO.getLabelId()) + .betweenIfPresent(ProductLabelIdDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ProductLabelIdDO::getId)); + } + + default List selectList(ProductLabelIdExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(ProductLabelIdDO::getProductId, reqVO.getProductId()) + .eqIfPresent(ProductLabelIdDO::getLabelId, reqVO.getLabelId()) + .betweenIfPresent(ProductLabelIdDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ProductLabelIdDO::getId)); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/productmodificationitem0/ProductModificationItem0Mapper.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/productmodificationitem0/ProductModificationItem0Mapper.java new file mode 100644 index 00000000..5862ab6e --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/productmodificationitem0/ProductModificationItem0Mapper.java @@ -0,0 +1,34 @@ +package com.yunxi.scm.module.xxjj.dal.mysql.productmodificationitem0; + +import java.util.*; + +import com.yunxi.scm.framework.common.pojo.PageResult; +import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX; +import com.yunxi.scm.module.xxjj.dal.dataobject.productmodificationitem0.ProductModificationItem0DO; +import org.apache.ibatis.annotations.Mapper; +import com.yunxi.scm.module.xxjj.controller.admin.productmodificationitem0.vo.*; + +/** + * 批量修改单商品 Mapper + * + * @author 长江云息 + */ +@Mapper +public interface ProductModificationItem0Mapper extends BaseMapperX { + + default PageResult selectPage(ProductModificationItem0PageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ProductModificationItem0DO::getProductId, reqVO.getProductId()) + .betweenIfPresent(ProductModificationItem0DO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ProductModificationItem0DO::getId)); + } + + default List selectList(ProductModificationItem0ExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(ProductModificationItem0DO::getProductId, reqVO.getProductId()) + .betweenIfPresent(ProductModificationItem0DO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ProductModificationItem0DO::getId)); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/productparametervalue/ProductParameterValueMapper.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/productparametervalue/ProductParameterValueMapper.java new file mode 100644 index 00000000..da84568c --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/dal/mysql/productparametervalue/ProductParameterValueMapper.java @@ -0,0 +1,36 @@ +package com.yunxi.scm.module.xxjj.dal.mysql.productparametervalue; + +import java.util.*; + +import com.yunxi.scm.framework.common.pojo.PageResult; +import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX; +import com.yunxi.scm.module.xxjj.dal.dataobject.productparametervalue.ProductParameterValueDO; +import org.apache.ibatis.annotations.Mapper; +import com.yunxi.scm.module.xxjj.controller.admin.productparametervalue.vo.*; + +/** + * 商品参数值 Mapper + * + * @author 长江云息 + */ +@Mapper +public interface ProductParameterValueMapper extends BaseMapperX { + + default PageResult selectPage(ProductParameterValuePageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(ProductParameterValueDO::getParameterId, reqVO.getParameterId()) + .likeIfPresent(ProductParameterValueDO::getParameterName, reqVO.getParameterName()) + .betweenIfPresent(ProductParameterValueDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ProductParameterValueDO::getId)); + } + + default List selectList(ProductParameterValueExportReqVO reqVO) { + return selectList(new LambdaQueryWrapperX() + .eqIfPresent(ProductParameterValueDO::getParameterId, reqVO.getParameterId()) + .likeIfPresent(ProductParameterValueDO::getParameterName, reqVO.getParameterName()) + .betweenIfPresent(ProductParameterValueDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ProductParameterValueDO::getId)); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productbusiness/ProductBusinessService.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productbusiness/ProductBusinessService.java new file mode 100644 index 00000000..0c2abe4f --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productbusiness/ProductBusinessService.java @@ -0,0 +1,70 @@ +package com.yunxi.scm.module.xxjj.service.productbusiness; + +import java.util.*; +import javax.validation.*; +import com.yunxi.scm.module.xxjj.controller.admin.productbusiness.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productbusiness.ProductBusinessDO; +import com.yunxi.scm.framework.common.pojo.PageResult; + +/** + * 商品表和业务线关联关系 Service 接口 + * + * @author 长江云息 + */ +public interface ProductBusinessService { + + /** + * 创建商品表和业务线关联关系 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createProductBusiness(@Valid ProductBusinessCreateReqVO createReqVO); + + /** + * 更新商品表和业务线关联关系 + * + * @param updateReqVO 更新信息 + */ + void updateProductBusiness(@Valid ProductBusinessUpdateReqVO updateReqVO); + + /** + * 删除商品表和业务线关联关系 + * + * @param id 编号 + */ + void deleteProductBusiness(Long id); + + /** + * 获得商品表和业务线关联关系 + * + * @param id 编号 + * @return 商品表和业务线关联关系 + */ + ProductBusinessDO getProductBusiness(Long id); + + /** + * 获得商品表和业务线关联关系列表 + * + * @param ids 编号 + * @return 商品表和业务线关联关系列表 + */ + List getProductBusinessList(Collection ids); + + /** + * 获得商品表和业务线关联关系分页 + * + * @param pageReqVO 分页查询 + * @return 商品表和业务线关联关系分页 + */ + PageResult getProductBusinessPage(ProductBusinessPageReqVO pageReqVO); + + /** + * 获得商品表和业务线关联关系列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return 商品表和业务线关联关系列表 + */ + List getProductBusinessList(ProductBusinessExportReqVO exportReqVO); + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productbusiness/ProductBusinessServiceImpl.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productbusiness/ProductBusinessServiceImpl.java new file mode 100644 index 00000000..ea59f84c --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productbusiness/ProductBusinessServiceImpl.java @@ -0,0 +1,82 @@ +package com.yunxi.scm.module.xxjj.service.productbusiness; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; +import com.yunxi.scm.module.xxjj.controller.admin.productbusiness.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productbusiness.ProductBusinessDO; +import com.yunxi.scm.framework.common.pojo.PageResult; + +import com.yunxi.scm.module.xxjj.convert.productbusiness.ProductBusinessConvert; +import com.yunxi.scm.module.xxjj.dal.mysql.productbusiness.ProductBusinessMapper; + +import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*; + +/** + * 商品表和业务线关联关系 Service 实现类 + * + * @author 长江云息 + */ +@Service +@Validated +public class ProductBusinessServiceImpl implements ProductBusinessService { + + @Resource + private ProductBusinessMapper productBusinessMapper; + + @Override + public Long createProductBusiness(ProductBusinessCreateReqVO createReqVO) { + // 插入 + ProductBusinessDO productBusiness = ProductBusinessConvert.INSTANCE.convert(createReqVO); + productBusinessMapper.insert(productBusiness); + // 返回 + return productBusiness.getId(); + } + + @Override + public void updateProductBusiness(ProductBusinessUpdateReqVO updateReqVO) { + // 校验存在 + validateProductBusinessExists(updateReqVO.getId()); + // 更新 + ProductBusinessDO updateObj = ProductBusinessConvert.INSTANCE.convert(updateReqVO); + productBusinessMapper.updateById(updateObj); + } + + @Override + public void deleteProductBusiness(Long id) { + // 校验存在 + validateProductBusinessExists(id); + // 删除 + productBusinessMapper.deleteById(id); + } + + private void validateProductBusinessExists(Long id) { + if (productBusinessMapper.selectById(id) == null) { + throw exception(PRODUCT_BUSINESS_NOT_EXISTS); + } + } + + @Override + public ProductBusinessDO getProductBusiness(Long id) { + return productBusinessMapper.selectById(id); + } + + @Override + public List getProductBusinessList(Collection ids) { + return productBusinessMapper.selectBatchIds(ids); + } + + @Override + public PageResult getProductBusinessPage(ProductBusinessPageReqVO pageReqVO) { + return productBusinessMapper.selectPage(pageReqVO); + } + + @Override + public List getProductBusinessList(ProductBusinessExportReqVO exportReqVO) { + return productBusinessMapper.selectList(exportReqVO); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productlabelid/ProductLabelIdService.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productlabelid/ProductLabelIdService.java new file mode 100644 index 00000000..cefeddf8 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productlabelid/ProductLabelIdService.java @@ -0,0 +1,70 @@ +package com.yunxi.scm.module.xxjj.service.productlabelid; + +import java.util.*; +import javax.validation.*; +import com.yunxi.scm.module.xxjj.controller.admin.productlabelid.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productlabelid.ProductLabelIdDO; +import com.yunxi.scm.framework.common.pojo.PageResult; + +/** + * 商品标签关联关系 Service 接口 + * + * @author 长江云息 + */ +public interface ProductLabelIdService { + + /** + * 创建商品标签关联关系 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createProductLabelId(@Valid ProductLabelIdCreateReqVO createReqVO); + + /** + * 更新商品标签关联关系 + * + * @param updateReqVO 更新信息 + */ + void updateProductLabelId(@Valid ProductLabelIdUpdateReqVO updateReqVO); + + /** + * 删除商品标签关联关系 + * + * @param id 编号 + */ + void deleteProductLabelId(Long id); + + /** + * 获得商品标签关联关系 + * + * @param id 编号 + * @return 商品标签关联关系 + */ + ProductLabelIdDO getProductLabelId(Long id); + + /** + * 获得商品标签关联关系列表 + * + * @param ids 编号 + * @return 商品标签关联关系列表 + */ + List getProductLabelIdList(Collection ids); + + /** + * 获得商品标签关联关系分页 + * + * @param pageReqVO 分页查询 + * @return 商品标签关联关系分页 + */ + PageResult getProductLabelIdPage(ProductLabelIdPageReqVO pageReqVO); + + /** + * 获得商品标签关联关系列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return 商品标签关联关系列表 + */ + List getProductLabelIdList(ProductLabelIdExportReqVO exportReqVO); + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productlabelid/ProductLabelIdServiceImpl.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productlabelid/ProductLabelIdServiceImpl.java new file mode 100644 index 00000000..1470659f --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productlabelid/ProductLabelIdServiceImpl.java @@ -0,0 +1,82 @@ +package com.yunxi.scm.module.xxjj.service.productlabelid; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; +import com.yunxi.scm.module.xxjj.controller.admin.productlabelid.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productlabelid.ProductLabelIdDO; +import com.yunxi.scm.framework.common.pojo.PageResult; + +import com.yunxi.scm.module.xxjj.convert.productlabelid.ProductLabelIdConvert; +import com.yunxi.scm.module.xxjj.dal.mysql.productlabelid.ProductLabelIdMapper; + +import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*; + +/** + * 商品标签关联关系 Service 实现类 + * + * @author 长江云息 + */ +@Service +@Validated +public class ProductLabelIdServiceImpl implements ProductLabelIdService { + + @Resource + private ProductLabelIdMapper productLabelIdMapper; + + @Override + public Long createProductLabelId(ProductLabelIdCreateReqVO createReqVO) { + // 插入 + ProductLabelIdDO productLabelId = ProductLabelIdConvert.INSTANCE.convert(createReqVO); + productLabelIdMapper.insert(productLabelId); + // 返回 + return productLabelId.getId(); + } + + @Override + public void updateProductLabelId(ProductLabelIdUpdateReqVO updateReqVO) { + // 校验存在 + validateProductLabelIdExists(updateReqVO.getId()); + // 更新 + ProductLabelIdDO updateObj = ProductLabelIdConvert.INSTANCE.convert(updateReqVO); + productLabelIdMapper.updateById(updateObj); + } + + @Override + public void deleteProductLabelId(Long id) { + // 校验存在 + validateProductLabelIdExists(id); + // 删除 + productLabelIdMapper.deleteById(id); + } + + private void validateProductLabelIdExists(Long id) { + if (productLabelIdMapper.selectById(id) == null) { + throw exception(PRODUCT_LABEL_ID_NOT_EXISTS); + } + } + + @Override + public ProductLabelIdDO getProductLabelId(Long id) { + return productLabelIdMapper.selectById(id); + } + + @Override + public List getProductLabelIdList(Collection ids) { + return productLabelIdMapper.selectBatchIds(ids); + } + + @Override + public PageResult getProductLabelIdPage(ProductLabelIdPageReqVO pageReqVO) { + return productLabelIdMapper.selectPage(pageReqVO); + } + + @Override + public List getProductLabelIdList(ProductLabelIdExportReqVO exportReqVO) { + return productLabelIdMapper.selectList(exportReqVO); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productmodificationitem0/ProductModificationItem0Service.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productmodificationitem0/ProductModificationItem0Service.java new file mode 100644 index 00000000..b954548f --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productmodificationitem0/ProductModificationItem0Service.java @@ -0,0 +1,70 @@ +package com.yunxi.scm.module.xxjj.service.productmodificationitem0; + +import java.util.*; +import javax.validation.*; +import com.yunxi.scm.module.xxjj.controller.admin.productmodificationitem0.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productmodificationitem0.ProductModificationItem0DO; +import com.yunxi.scm.framework.common.pojo.PageResult; + +/** + * 批量修改单商品 Service 接口 + * + * @author 长江云息 + */ +public interface ProductModificationItem0Service { + + /** + * 创建批量修改单商品 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createProductModificationItem0(@Valid ProductModificationItem0CreateReqVO createReqVO); + + /** + * 更新批量修改单商品 + * + * @param updateReqVO 更新信息 + */ + void updateProductModificationItem0(@Valid ProductModificationItem0UpdateReqVO updateReqVO); + + /** + * 删除批量修改单商品 + * + * @param id 编号 + */ + void deleteProductModificationItem0(Long id); + + /** + * 获得批量修改单商品 + * + * @param id 编号 + * @return 批量修改单商品 + */ + ProductModificationItem0DO getProductModificationItem0(Long id); + + /** + * 获得批量修改单商品列表 + * + * @param ids 编号 + * @return 批量修改单商品列表 + */ + List getProductModificationItem0List(Collection ids); + + /** + * 获得批量修改单商品分页 + * + * @param pageReqVO 分页查询 + * @return 批量修改单商品分页 + */ + PageResult getProductModificationItem0Page(ProductModificationItem0PageReqVO pageReqVO); + + /** + * 获得批量修改单商品列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return 批量修改单商品列表 + */ + List getProductModificationItem0List(ProductModificationItem0ExportReqVO exportReqVO); + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productmodificationitem0/ProductModificationItem0ServiceImpl.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productmodificationitem0/ProductModificationItem0ServiceImpl.java new file mode 100644 index 00000000..1713e2df --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productmodificationitem0/ProductModificationItem0ServiceImpl.java @@ -0,0 +1,82 @@ +package com.yunxi.scm.module.xxjj.service.productmodificationitem0; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; +import com.yunxi.scm.module.xxjj.controller.admin.productmodificationitem0.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productmodificationitem0.ProductModificationItem0DO; +import com.yunxi.scm.framework.common.pojo.PageResult; + +import com.yunxi.scm.module.xxjj.convert.productmodificationitem0.ProductModificationItem0Convert; +import com.yunxi.scm.module.xxjj.dal.mysql.productmodificationitem0.ProductModificationItem0Mapper; + +import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*; + +/** + * 批量修改单商品 Service 实现类 + * + * @author 长江云息 + */ +@Service +@Validated +public class ProductModificationItem0ServiceImpl implements ProductModificationItem0Service { + + @Resource + private ProductModificationItem0Mapper productModificationItem0Mapper; + + @Override + public Long createProductModificationItem0(ProductModificationItem0CreateReqVO createReqVO) { + // 插入 + ProductModificationItem0DO productModificationItem0 = ProductModificationItem0Convert.INSTANCE.convert(createReqVO); + productModificationItem0Mapper.insert(productModificationItem0); + // 返回 + return productModificationItem0.getId(); + } + + @Override + public void updateProductModificationItem0(ProductModificationItem0UpdateReqVO updateReqVO) { + // 校验存在 + validateProductModificationItem0Exists(updateReqVO.getId()); + // 更新 + ProductModificationItem0DO updateObj = ProductModificationItem0Convert.INSTANCE.convert(updateReqVO); + productModificationItem0Mapper.updateById(updateObj); + } + + @Override + public void deleteProductModificationItem0(Long id) { + // 校验存在 + validateProductModificationItem0Exists(id); + // 删除 + productModificationItem0Mapper.deleteById(id); + } + + private void validateProductModificationItem0Exists(Long id) { + if (productModificationItem0Mapper.selectById(id) == null) { + throw exception(PRODUCT_MODIFICATION_ITEM0_NOT_EXISTS); + } + } + + @Override + public ProductModificationItem0DO getProductModificationItem0(Long id) { + return productModificationItem0Mapper.selectById(id); + } + + @Override + public List getProductModificationItem0List(Collection ids) { + return productModificationItem0Mapper.selectBatchIds(ids); + } + + @Override + public PageResult getProductModificationItem0Page(ProductModificationItem0PageReqVO pageReqVO) { + return productModificationItem0Mapper.selectPage(pageReqVO); + } + + @Override + public List getProductModificationItem0List(ProductModificationItem0ExportReqVO exportReqVO) { + return productModificationItem0Mapper.selectList(exportReqVO); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productparametervalue/ProductParameterValueService.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productparametervalue/ProductParameterValueService.java new file mode 100644 index 00000000..45b41454 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productparametervalue/ProductParameterValueService.java @@ -0,0 +1,70 @@ +package com.yunxi.scm.module.xxjj.service.productparametervalue; + +import java.util.*; +import javax.validation.*; +import com.yunxi.scm.module.xxjj.controller.admin.productparametervalue.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productparametervalue.ProductParameterValueDO; +import com.yunxi.scm.framework.common.pojo.PageResult; + +/** + * 商品参数值 Service 接口 + * + * @author 长江云息 + */ +public interface ProductParameterValueService { + + /** + * 创建商品参数值 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createProductParameterValue(@Valid ProductParameterValueCreateReqVO createReqVO); + + /** + * 更新商品参数值 + * + * @param updateReqVO 更新信息 + */ + void updateProductParameterValue(@Valid ProductParameterValueUpdateReqVO updateReqVO); + + /** + * 删除商品参数值 + * + * @param id 编号 + */ + void deleteProductParameterValue(Long id); + + /** + * 获得商品参数值 + * + * @param id 编号 + * @return 商品参数值 + */ + ProductParameterValueDO getProductParameterValue(Long id); + + /** + * 获得商品参数值列表 + * + * @param ids 编号 + * @return 商品参数值列表 + */ + List getProductParameterValueList(Collection ids); + + /** + * 获得商品参数值分页 + * + * @param pageReqVO 分页查询 + * @return 商品参数值分页 + */ + PageResult getProductParameterValuePage(ProductParameterValuePageReqVO pageReqVO); + + /** + * 获得商品参数值列表, 用于 Excel 导出 + * + * @param exportReqVO 查询条件 + * @return 商品参数值列表 + */ + List getProductParameterValueList(ProductParameterValueExportReqVO exportReqVO); + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productparametervalue/ProductParameterValueServiceImpl.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productparametervalue/ProductParameterValueServiceImpl.java new file mode 100644 index 00000000..0b4394d7 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/java/com/yunxi/scm/module/xxjj/service/productparametervalue/ProductParameterValueServiceImpl.java @@ -0,0 +1,82 @@ +package com.yunxi.scm.module.xxjj.service.productparametervalue; + +import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; + +import java.util.*; +import com.yunxi.scm.module.xxjj.controller.admin.productparametervalue.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productparametervalue.ProductParameterValueDO; +import com.yunxi.scm.framework.common.pojo.PageResult; + +import com.yunxi.scm.module.xxjj.convert.productparametervalue.ProductParameterValueConvert; +import com.yunxi.scm.module.xxjj.dal.mysql.productparametervalue.ProductParameterValueMapper; + +import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*; + +/** + * 商品参数值 Service 实现类 + * + * @author 长江云息 + */ +@Service +@Validated +public class ProductParameterValueServiceImpl implements ProductParameterValueService { + + @Resource + private ProductParameterValueMapper productParameterValueMapper; + + @Override + public Long createProductParameterValue(ProductParameterValueCreateReqVO createReqVO) { + // 插入 + ProductParameterValueDO productParameterValue = ProductParameterValueConvert.INSTANCE.convert(createReqVO); + productParameterValueMapper.insert(productParameterValue); + // 返回 + return productParameterValue.getId(); + } + + @Override + public void updateProductParameterValue(ProductParameterValueUpdateReqVO updateReqVO) { + // 校验存在 + validateProductParameterValueExists(updateReqVO.getId()); + // 更新 + ProductParameterValueDO updateObj = ProductParameterValueConvert.INSTANCE.convert(updateReqVO); + productParameterValueMapper.updateById(updateObj); + } + + @Override + public void deleteProductParameterValue(Long id) { + // 校验存在 + validateProductParameterValueExists(id); + // 删除 + productParameterValueMapper.deleteById(id); + } + + private void validateProductParameterValueExists(Long id) { + if (productParameterValueMapper.selectById(id) == null) { + throw exception(PRODUCT_PARAMETER_VALUE_NOT_EXISTS); + } + } + + @Override + public ProductParameterValueDO getProductParameterValue(Long id) { + return productParameterValueMapper.selectById(id); + } + + @Override + public List getProductParameterValueList(Collection ids) { + return productParameterValueMapper.selectBatchIds(ids); + } + + @Override + public PageResult getProductParameterValuePage(ProductParameterValuePageReqVO pageReqVO) { + return productParameterValueMapper.selectPage(pageReqVO); + } + + @Override + public List getProductParameterValueList(ProductParameterValueExportReqVO exportReqVO) { + return productParameterValueMapper.selectList(exportReqVO); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/productbusiness/ProductBusinessMapper.xml b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/productbusiness/ProductBusinessMapper.xml new file mode 100644 index 00000000..047a2b67 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/productbusiness/ProductBusinessMapper.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/productlabelid/ProductLabelIdMapper.xml b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/productlabelid/ProductLabelIdMapper.xml new file mode 100644 index 00000000..86d0c3c5 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/productlabelid/ProductLabelIdMapper.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/productmodificationitem0/ProductModificationItem0Mapper.xml b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/productmodificationitem0/ProductModificationItem0Mapper.xml new file mode 100644 index 00000000..963447d1 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/productmodificationitem0/ProductModificationItem0Mapper.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/productparametervalue/ProductParameterValueMapper.xml b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/productparametervalue/ProductParameterValueMapper.xml new file mode 100644 index 00000000..84e37c4b --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/main/resources/mapper/productparametervalue/ProductParameterValueMapper.xml @@ -0,0 +1,12 @@ + + + + + + + diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/productbusiness/ProductBusinessServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/productbusiness/ProductBusinessServiceImplTest.java new file mode 100644 index 00000000..7bf6a6af --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/productbusiness/ProductBusinessServiceImplTest.java @@ -0,0 +1,167 @@ +package com.yunxi.scm.module.xxjj.service.productbusiness; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.mock.mockito.MockBean; + +import javax.annotation.Resource; + +import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest; + +import com.yunxi.scm.module.xxjj.controller.admin.productbusiness.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productbusiness.ProductBusinessDO; +import com.yunxi.scm.module.xxjj.dal.mysql.productbusiness.ProductBusinessMapper; +import com.yunxi.scm.framework.common.pojo.PageResult; + +import javax.annotation.Resource; +import org.springframework.context.annotation.Import; +import java.util.*; +import java.time.LocalDateTime; + +import static cn.hutool.core.util.RandomUtil.*; +import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*; +import static com.yunxi.scm.framework.test.core.util.AssertUtils.*; +import static com.yunxi.scm.framework.test.core.util.RandomUtils.*; +import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*; +import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*; +import static com.yunxi.scm.framework.common.util.date.DateUtils.*; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.*; + +/** + * {@link ProductBusinessServiceImpl} 的单元测试类 + * + * @author 长江云息 + */ +@Import(ProductBusinessServiceImpl.class) +public class ProductBusinessServiceImplTest extends BaseDbUnitTest { + + @Resource + private ProductBusinessServiceImpl productBusinessService; + + @Resource + private ProductBusinessMapper productBusinessMapper; + + @Test + public void testCreateProductBusiness_success() { + // 准备参数 + ProductBusinessCreateReqVO reqVO = randomPojo(ProductBusinessCreateReqVO.class); + + // 调用 + Long productBusinessId = productBusinessService.createProductBusiness(reqVO); + // 断言 + assertNotNull(productBusinessId); + // 校验记录的属性是否正确 + ProductBusinessDO productBusiness = productBusinessMapper.selectById(productBusinessId); + assertPojoEquals(reqVO, productBusiness); + } + + @Test + public void testUpdateProductBusiness_success() { + // mock 数据 + ProductBusinessDO dbProductBusiness = randomPojo(ProductBusinessDO.class); + productBusinessMapper.insert(dbProductBusiness);// @Sql: 先插入出一条存在的数据 + // 准备参数 + ProductBusinessUpdateReqVO reqVO = randomPojo(ProductBusinessUpdateReqVO.class, o -> { + o.setId(dbProductBusiness.getId()); // 设置更新的 ID + }); + + // 调用 + productBusinessService.updateProductBusiness(reqVO); + // 校验是否更新正确 + ProductBusinessDO productBusiness = productBusinessMapper.selectById(reqVO.getId()); // 获取最新的 + assertPojoEquals(reqVO, productBusiness); + } + + @Test + public void testUpdateProductBusiness_notExists() { + // 准备参数 + ProductBusinessUpdateReqVO reqVO = randomPojo(ProductBusinessUpdateReqVO.class); + + // 调用, 并断言异常 + assertServiceException(() -> productBusinessService.updateProductBusiness(reqVO), PRODUCT_BUSINESS_NOT_EXISTS); + } + + @Test + public void testDeleteProductBusiness_success() { + // mock 数据 + ProductBusinessDO dbProductBusiness = randomPojo(ProductBusinessDO.class); + productBusinessMapper.insert(dbProductBusiness);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbProductBusiness.getId(); + + // 调用 + productBusinessService.deleteProductBusiness(id); + // 校验数据不存在了 + assertNull(productBusinessMapper.selectById(id)); + } + + @Test + public void testDeleteProductBusiness_notExists() { + // 准备参数 + Long id = randomLongId(); + + // 调用, 并断言异常 + assertServiceException(() -> productBusinessService.deleteProductBusiness(id), PRODUCT_BUSINESS_NOT_EXISTS); + } + + @Test + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 + public void testGetProductBusinessPage() { + // mock 数据 + ProductBusinessDO dbProductBusiness = randomPojo(ProductBusinessDO.class, o -> { // 等会查询到 + o.setProductId(null); + o.setBusinessLineId(null); + o.setCreateTime(null); + }); + productBusinessMapper.insert(dbProductBusiness); + // 测试 productId 不匹配 + productBusinessMapper.insert(cloneIgnoreId(dbProductBusiness, o -> o.setProductId(null))); + // 测试 businessLineId 不匹配 + productBusinessMapper.insert(cloneIgnoreId(dbProductBusiness, o -> o.setBusinessLineId(null))); + // 测试 createTime 不匹配 + productBusinessMapper.insert(cloneIgnoreId(dbProductBusiness, o -> o.setCreateTime(null))); + // 准备参数 + ProductBusinessPageReqVO reqVO = new ProductBusinessPageReqVO(); + reqVO.setProductId(null); + reqVO.setBusinessLineId(null); + reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); + + // 调用 + PageResult pageResult = productBusinessService.getProductBusinessPage(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(dbProductBusiness, pageResult.getList().get(0)); + } + + @Test + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 + public void testGetProductBusinessList() { + // mock 数据 + ProductBusinessDO dbProductBusiness = randomPojo(ProductBusinessDO.class, o -> { // 等会查询到 + o.setProductId(null); + o.setBusinessLineId(null); + o.setCreateTime(null); + }); + productBusinessMapper.insert(dbProductBusiness); + // 测试 productId 不匹配 + productBusinessMapper.insert(cloneIgnoreId(dbProductBusiness, o -> o.setProductId(null))); + // 测试 businessLineId 不匹配 + productBusinessMapper.insert(cloneIgnoreId(dbProductBusiness, o -> o.setBusinessLineId(null))); + // 测试 createTime 不匹配 + productBusinessMapper.insert(cloneIgnoreId(dbProductBusiness, o -> o.setCreateTime(null))); + // 准备参数 + ProductBusinessExportReqVO reqVO = new ProductBusinessExportReqVO(); + reqVO.setProductId(null); + reqVO.setBusinessLineId(null); + reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); + + // 调用 + List list = productBusinessService.getProductBusinessList(reqVO); + // 断言 + assertEquals(1, list.size()); + assertPojoEquals(dbProductBusiness, list.get(0)); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/productlabelid/ProductLabelIdServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/productlabelid/ProductLabelIdServiceImplTest.java new file mode 100644 index 00000000..75c112e5 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/productlabelid/ProductLabelIdServiceImplTest.java @@ -0,0 +1,167 @@ +package com.yunxi.scm.module.xxjj.service.productlabelid; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.mock.mockito.MockBean; + +import javax.annotation.Resource; + +import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest; + +import com.yunxi.scm.module.xxjj.controller.admin.productlabelid.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productlabelid.ProductLabelIdDO; +import com.yunxi.scm.module.xxjj.dal.mysql.productlabelid.ProductLabelIdMapper; +import com.yunxi.scm.framework.common.pojo.PageResult; + +import javax.annotation.Resource; +import org.springframework.context.annotation.Import; +import java.util.*; +import java.time.LocalDateTime; + +import static cn.hutool.core.util.RandomUtil.*; +import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*; +import static com.yunxi.scm.framework.test.core.util.AssertUtils.*; +import static com.yunxi.scm.framework.test.core.util.RandomUtils.*; +import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*; +import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*; +import static com.yunxi.scm.framework.common.util.date.DateUtils.*; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.*; + +/** + * {@link ProductLabelIdServiceImpl} 的单元测试类 + * + * @author 长江云息 + */ +@Import(ProductLabelIdServiceImpl.class) +public class ProductLabelIdServiceImplTest extends BaseDbUnitTest { + + @Resource + private ProductLabelIdServiceImpl productLabelIdService; + + @Resource + private ProductLabelIdMapper productLabelIdMapper; + + @Test + public void testCreateProductLabelId_success() { + // 准备参数 + ProductLabelIdCreateReqVO reqVO = randomPojo(ProductLabelIdCreateReqVO.class); + + // 调用 + Long productLabelIdId = productLabelIdService.createProductLabelId(reqVO); + // 断言 + assertNotNull(productLabelIdId); + // 校验记录的属性是否正确 + ProductLabelIdDO productLabelId = productLabelIdMapper.selectById(productLabelIdId); + assertPojoEquals(reqVO, productLabelId); + } + + @Test + public void testUpdateProductLabelId_success() { + // mock 数据 + ProductLabelIdDO dbProductLabelId = randomPojo(ProductLabelIdDO.class); + productLabelIdMapper.insert(dbProductLabelId);// @Sql: 先插入出一条存在的数据 + // 准备参数 + ProductLabelIdUpdateReqVO reqVO = randomPojo(ProductLabelIdUpdateReqVO.class, o -> { + o.setId(dbProductLabelId.getId()); // 设置更新的 ID + }); + + // 调用 + productLabelIdService.updateProductLabelId(reqVO); + // 校验是否更新正确 + ProductLabelIdDO productLabelId = productLabelIdMapper.selectById(reqVO.getId()); // 获取最新的 + assertPojoEquals(reqVO, productLabelId); + } + + @Test + public void testUpdateProductLabelId_notExists() { + // 准备参数 + ProductLabelIdUpdateReqVO reqVO = randomPojo(ProductLabelIdUpdateReqVO.class); + + // 调用, 并断言异常 + assertServiceException(() -> productLabelIdService.updateProductLabelId(reqVO), PRODUCT_LABEL_ID_NOT_EXISTS); + } + + @Test + public void testDeleteProductLabelId_success() { + // mock 数据 + ProductLabelIdDO dbProductLabelId = randomPojo(ProductLabelIdDO.class); + productLabelIdMapper.insert(dbProductLabelId);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbProductLabelId.getId(); + + // 调用 + productLabelIdService.deleteProductLabelId(id); + // 校验数据不存在了 + assertNull(productLabelIdMapper.selectById(id)); + } + + @Test + public void testDeleteProductLabelId_notExists() { + // 准备参数 + Long id = randomLongId(); + + // 调用, 并断言异常 + assertServiceException(() -> productLabelIdService.deleteProductLabelId(id), PRODUCT_LABEL_ID_NOT_EXISTS); + } + + @Test + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 + public void testGetProductLabelIdPage() { + // mock 数据 + ProductLabelIdDO dbProductLabelId = randomPojo(ProductLabelIdDO.class, o -> { // 等会查询到 + o.setProductId(null); + o.setLabelId(null); + o.setCreateTime(null); + }); + productLabelIdMapper.insert(dbProductLabelId); + // 测试 productId 不匹配 + productLabelIdMapper.insert(cloneIgnoreId(dbProductLabelId, o -> o.setProductId(null))); + // 测试 labelId 不匹配 + productLabelIdMapper.insert(cloneIgnoreId(dbProductLabelId, o -> o.setLabelId(null))); + // 测试 createTime 不匹配 + productLabelIdMapper.insert(cloneIgnoreId(dbProductLabelId, o -> o.setCreateTime(null))); + // 准备参数 + ProductLabelIdPageReqVO reqVO = new ProductLabelIdPageReqVO(); + reqVO.setProductId(null); + reqVO.setLabelId(null); + reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); + + // 调用 + PageResult pageResult = productLabelIdService.getProductLabelIdPage(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(dbProductLabelId, pageResult.getList().get(0)); + } + + @Test + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 + public void testGetProductLabelIdList() { + // mock 数据 + ProductLabelIdDO dbProductLabelId = randomPojo(ProductLabelIdDO.class, o -> { // 等会查询到 + o.setProductId(null); + o.setLabelId(null); + o.setCreateTime(null); + }); + productLabelIdMapper.insert(dbProductLabelId); + // 测试 productId 不匹配 + productLabelIdMapper.insert(cloneIgnoreId(dbProductLabelId, o -> o.setProductId(null))); + // 测试 labelId 不匹配 + productLabelIdMapper.insert(cloneIgnoreId(dbProductLabelId, o -> o.setLabelId(null))); + // 测试 createTime 不匹配 + productLabelIdMapper.insert(cloneIgnoreId(dbProductLabelId, o -> o.setCreateTime(null))); + // 准备参数 + ProductLabelIdExportReqVO reqVO = new ProductLabelIdExportReqVO(); + reqVO.setProductId(null); + reqVO.setLabelId(null); + reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); + + // 调用 + List list = productLabelIdService.getProductLabelIdList(reqVO); + // 断言 + assertEquals(1, list.size()); + assertPojoEquals(dbProductLabelId, list.get(0)); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/productmodificationitem0/ProductModificationItem0ServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/productmodificationitem0/ProductModificationItem0ServiceImplTest.java new file mode 100644 index 00000000..13f0cb8f --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/productmodificationitem0/ProductModificationItem0ServiceImplTest.java @@ -0,0 +1,159 @@ +package com.yunxi.scm.module.xxjj.service.productmodificationitem0; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.mock.mockito.MockBean; + +import javax.annotation.Resource; + +import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest; + +import com.yunxi.scm.module.xxjj.controller.admin.productmodificationitem0.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productmodificationitem0.ProductModificationItem0DO; +import com.yunxi.scm.module.xxjj.dal.mysql.productmodificationitem0.ProductModificationItem0Mapper; +import com.yunxi.scm.framework.common.pojo.PageResult; + +import javax.annotation.Resource; +import org.springframework.context.annotation.Import; +import java.util.*; +import java.time.LocalDateTime; + +import static cn.hutool.core.util.RandomUtil.*; +import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*; +import static com.yunxi.scm.framework.test.core.util.AssertUtils.*; +import static com.yunxi.scm.framework.test.core.util.RandomUtils.*; +import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*; +import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*; +import static com.yunxi.scm.framework.common.util.date.DateUtils.*; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.*; + +/** + * {@link ProductModificationItem0ServiceImpl} 的单元测试类 + * + * @author 长江云息 + */ +@Import(ProductModificationItem0ServiceImpl.class) +public class ProductModificationItem0ServiceImplTest extends BaseDbUnitTest { + + @Resource + private ProductModificationItem0ServiceImpl productModificationItem0Service; + + @Resource + private ProductModificationItem0Mapper productModificationItem0Mapper; + + @Test + public void testCreateProductModificationItem0_success() { + // 准备参数 + ProductModificationItem0CreateReqVO reqVO = randomPojo(ProductModificationItem0CreateReqVO.class); + + // 调用 + Long productModificationItem0Id = productModificationItem0Service.createProductModificationItem0(reqVO); + // 断言 + assertNotNull(productModificationItem0Id); + // 校验记录的属性是否正确 + ProductModificationItem0DO productModificationItem0 = productModificationItem0Mapper.selectById(productModificationItem0Id); + assertPojoEquals(reqVO, productModificationItem0); + } + + @Test + public void testUpdateProductModificationItem0_success() { + // mock 数据 + ProductModificationItem0DO dbProductModificationItem0 = randomPojo(ProductModificationItem0DO.class); + productModificationItem0Mapper.insert(dbProductModificationItem0);// @Sql: 先插入出一条存在的数据 + // 准备参数 + ProductModificationItem0UpdateReqVO reqVO = randomPojo(ProductModificationItem0UpdateReqVO.class, o -> { + o.setId(dbProductModificationItem0.getId()); // 设置更新的 ID + }); + + // 调用 + productModificationItem0Service.updateProductModificationItem0(reqVO); + // 校验是否更新正确 + ProductModificationItem0DO productModificationItem0 = productModificationItem0Mapper.selectById(reqVO.getId()); // 获取最新的 + assertPojoEquals(reqVO, productModificationItem0); + } + + @Test + public void testUpdateProductModificationItem0_notExists() { + // 准备参数 + ProductModificationItem0UpdateReqVO reqVO = randomPojo(ProductModificationItem0UpdateReqVO.class); + + // 调用, 并断言异常 + assertServiceException(() -> productModificationItem0Service.updateProductModificationItem0(reqVO), PRODUCT_MODIFICATION_ITEM0_NOT_EXISTS); + } + + @Test + public void testDeleteProductModificationItem0_success() { + // mock 数据 + ProductModificationItem0DO dbProductModificationItem0 = randomPojo(ProductModificationItem0DO.class); + productModificationItem0Mapper.insert(dbProductModificationItem0);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbProductModificationItem0.getId(); + + // 调用 + productModificationItem0Service.deleteProductModificationItem0(id); + // 校验数据不存在了 + assertNull(productModificationItem0Mapper.selectById(id)); + } + + @Test + public void testDeleteProductModificationItem0_notExists() { + // 准备参数 + Long id = randomLongId(); + + // 调用, 并断言异常 + assertServiceException(() -> productModificationItem0Service.deleteProductModificationItem0(id), PRODUCT_MODIFICATION_ITEM0_NOT_EXISTS); + } + + @Test + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 + public void testGetProductModificationItem0Page() { + // mock 数据 + ProductModificationItem0DO dbProductModificationItem0 = randomPojo(ProductModificationItem0DO.class, o -> { // 等会查询到 + o.setProductId(null); + o.setCreateTime(null); + }); + productModificationItem0Mapper.insert(dbProductModificationItem0); + // 测试 productId 不匹配 + productModificationItem0Mapper.insert(cloneIgnoreId(dbProductModificationItem0, o -> o.setProductId(null))); + // 测试 createTime 不匹配 + productModificationItem0Mapper.insert(cloneIgnoreId(dbProductModificationItem0, o -> o.setCreateTime(null))); + // 准备参数 + ProductModificationItem0PageReqVO reqVO = new ProductModificationItem0PageReqVO(); + reqVO.setProductId(null); + reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); + + // 调用 + PageResult pageResult = productModificationItem0Service.getProductModificationItem0Page(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(dbProductModificationItem0, pageResult.getList().get(0)); + } + + @Test + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 + public void testGetProductModificationItem0List() { + // mock 数据 + ProductModificationItem0DO dbProductModificationItem0 = randomPojo(ProductModificationItem0DO.class, o -> { // 等会查询到 + o.setProductId(null); + o.setCreateTime(null); + }); + productModificationItem0Mapper.insert(dbProductModificationItem0); + // 测试 productId 不匹配 + productModificationItem0Mapper.insert(cloneIgnoreId(dbProductModificationItem0, o -> o.setProductId(null))); + // 测试 createTime 不匹配 + productModificationItem0Mapper.insert(cloneIgnoreId(dbProductModificationItem0, o -> o.setCreateTime(null))); + // 准备参数 + ProductModificationItem0ExportReqVO reqVO = new ProductModificationItem0ExportReqVO(); + reqVO.setProductId(null); + reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); + + // 调用 + List list = productModificationItem0Service.getProductModificationItem0List(reqVO); + // 断言 + assertEquals(1, list.size()); + assertPojoEquals(dbProductModificationItem0, list.get(0)); + } + +} diff --git a/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/productparametervalue/ProductParameterValueServiceImplTest.java b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/productparametervalue/ProductParameterValueServiceImplTest.java new file mode 100644 index 00000000..8699d224 --- /dev/null +++ b/yunxi-module-xxjj/yunxi-module-xxjj-biz/src/test/java/com/yunxi/scm/module/xxjj/service/productparametervalue/ProductParameterValueServiceImplTest.java @@ -0,0 +1,167 @@ +package com.yunxi.scm.module.xxjj.service.productparametervalue; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.mock.mockito.MockBean; + +import javax.annotation.Resource; + +import com.yunxi.scm.framework.test.core.ut.BaseDbUnitTest; + +import com.yunxi.scm.module.xxjj.controller.admin.productparametervalue.vo.*; +import com.yunxi.scm.module.xxjj.dal.dataobject.productparametervalue.ProductParameterValueDO; +import com.yunxi.scm.module.xxjj.dal.mysql.productparametervalue.ProductParameterValueMapper; +import com.yunxi.scm.framework.common.pojo.PageResult; + +import javax.annotation.Resource; +import org.springframework.context.annotation.Import; +import java.util.*; +import java.time.LocalDateTime; + +import static cn.hutool.core.util.RandomUtil.*; +import static com.yunxi.scm.module.xxjj.enums.ErrorCodeConstants.*; +import static com.yunxi.scm.framework.test.core.util.AssertUtils.*; +import static com.yunxi.scm.framework.test.core.util.RandomUtils.*; +import static com.yunxi.scm.framework.common.util.date.LocalDateTimeUtils.*; +import static com.yunxi.scm.framework.common.util.object.ObjectUtils.*; +import static com.yunxi.scm.framework.common.util.date.DateUtils.*; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.*; + +/** + * {@link ProductParameterValueServiceImpl} 的单元测试类 + * + * @author 长江云息 + */ +@Import(ProductParameterValueServiceImpl.class) +public class ProductParameterValueServiceImplTest extends BaseDbUnitTest { + + @Resource + private ProductParameterValueServiceImpl productParameterValueService; + + @Resource + private ProductParameterValueMapper productParameterValueMapper; + + @Test + public void testCreateProductParameterValue_success() { + // 准备参数 + ProductParameterValueCreateReqVO reqVO = randomPojo(ProductParameterValueCreateReqVO.class); + + // 调用 + Long productParameterValueId = productParameterValueService.createProductParameterValue(reqVO); + // 断言 + assertNotNull(productParameterValueId); + // 校验记录的属性是否正确 + ProductParameterValueDO productParameterValue = productParameterValueMapper.selectById(productParameterValueId); + assertPojoEquals(reqVO, productParameterValue); + } + + @Test + public void testUpdateProductParameterValue_success() { + // mock 数据 + ProductParameterValueDO dbProductParameterValue = randomPojo(ProductParameterValueDO.class); + productParameterValueMapper.insert(dbProductParameterValue);// @Sql: 先插入出一条存在的数据 + // 准备参数 + ProductParameterValueUpdateReqVO reqVO = randomPojo(ProductParameterValueUpdateReqVO.class, o -> { + o.setId(dbProductParameterValue.getId()); // 设置更新的 ID + }); + + // 调用 + productParameterValueService.updateProductParameterValue(reqVO); + // 校验是否更新正确 + ProductParameterValueDO productParameterValue = productParameterValueMapper.selectById(reqVO.getId()); // 获取最新的 + assertPojoEquals(reqVO, productParameterValue); + } + + @Test + public void testUpdateProductParameterValue_notExists() { + // 准备参数 + ProductParameterValueUpdateReqVO reqVO = randomPojo(ProductParameterValueUpdateReqVO.class); + + // 调用, 并断言异常 + assertServiceException(() -> productParameterValueService.updateProductParameterValue(reqVO), PRODUCT_PARAMETER_VALUE_NOT_EXISTS); + } + + @Test + public void testDeleteProductParameterValue_success() { + // mock 数据 + ProductParameterValueDO dbProductParameterValue = randomPojo(ProductParameterValueDO.class); + productParameterValueMapper.insert(dbProductParameterValue);// @Sql: 先插入出一条存在的数据 + // 准备参数 + Long id = dbProductParameterValue.getId(); + + // 调用 + productParameterValueService.deleteProductParameterValue(id); + // 校验数据不存在了 + assertNull(productParameterValueMapper.selectById(id)); + } + + @Test + public void testDeleteProductParameterValue_notExists() { + // 准备参数 + Long id = randomLongId(); + + // 调用, 并断言异常 + assertServiceException(() -> productParameterValueService.deleteProductParameterValue(id), PRODUCT_PARAMETER_VALUE_NOT_EXISTS); + } + + @Test + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 + public void testGetProductParameterValuePage() { + // mock 数据 + ProductParameterValueDO dbProductParameterValue = randomPojo(ProductParameterValueDO.class, o -> { // 等会查询到 + o.setParameterId(null); + o.setParameterName(null); + o.setCreateTime(null); + }); + productParameterValueMapper.insert(dbProductParameterValue); + // 测试 parameterId 不匹配 + productParameterValueMapper.insert(cloneIgnoreId(dbProductParameterValue, o -> o.setParameterId(null))); + // 测试 parameterName 不匹配 + productParameterValueMapper.insert(cloneIgnoreId(dbProductParameterValue, o -> o.setParameterName(null))); + // 测试 createTime 不匹配 + productParameterValueMapper.insert(cloneIgnoreId(dbProductParameterValue, o -> o.setCreateTime(null))); + // 准备参数 + ProductParameterValuePageReqVO reqVO = new ProductParameterValuePageReqVO(); + reqVO.setParameterId(null); + reqVO.setParameterName(null); + reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); + + // 调用 + PageResult pageResult = productParameterValueService.getProductParameterValuePage(reqVO); + // 断言 + assertEquals(1, pageResult.getTotal()); + assertEquals(1, pageResult.getList().size()); + assertPojoEquals(dbProductParameterValue, pageResult.getList().get(0)); + } + + @Test + @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 + public void testGetProductParameterValueList() { + // mock 数据 + ProductParameterValueDO dbProductParameterValue = randomPojo(ProductParameterValueDO.class, o -> { // 等会查询到 + o.setParameterId(null); + o.setParameterName(null); + o.setCreateTime(null); + }); + productParameterValueMapper.insert(dbProductParameterValue); + // 测试 parameterId 不匹配 + productParameterValueMapper.insert(cloneIgnoreId(dbProductParameterValue, o -> o.setParameterId(null))); + // 测试 parameterName 不匹配 + productParameterValueMapper.insert(cloneIgnoreId(dbProductParameterValue, o -> o.setParameterName(null))); + // 测试 createTime 不匹配 + productParameterValueMapper.insert(cloneIgnoreId(dbProductParameterValue, o -> o.setCreateTime(null))); + // 准备参数 + ProductParameterValueExportReqVO reqVO = new ProductParameterValueExportReqVO(); + reqVO.setParameterId(null); + reqVO.setParameterName(null); + reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28)); + + // 调用 + List list = productParameterValueService.getProductParameterValueList(reqVO); + // 断言 + assertEquals(1, list.size()); + assertPojoEquals(dbProductParameterValue, list.get(0)); + } + +} diff --git a/yunxi-ui-admin-vue3/src/api/xxjj/product/index.ts b/yunxi-ui-admin-vue3/src/api/xxjj/product/index.ts index 94fedff4..f4e8fb6d 100644 --- a/yunxi-ui-admin-vue3/src/api/xxjj/product/index.ts +++ b/yunxi-ui-admin-vue3/src/api/xxjj/product/index.ts @@ -122,4 +122,9 @@ export const exportProduct = async (params) => { // 查询商品列表 export const getProductPage1 = async (params) => { return await request.get({ url: `/xxjj/product/productPage`, params }) +} + +// 修改状态 +export const productUpdateStatuss = async (params) => { + return await request.get({ url: `/xxjj/product/productUpdateStatus`, params }) } \ No newline at end of file diff --git a/yunxi-ui-admin-vue3/src/api/xxjj/productLnventoryUnit/index.ts b/yunxi-ui-admin-vue3/src/api/xxjj/productLnventoryUnit/index.ts new file mode 100644 index 00000000..dc86930d --- /dev/null +++ b/yunxi-ui-admin-vue3/src/api/xxjj/productLnventoryUnit/index.ts @@ -0,0 +1,49 @@ +import request from '@/config/axios' + +export interface ProductLnventoryUnitVO { + id: number + productUnitName: string + prouctId: number + conversionRules1: string + conversionRules2: string + packagingBarcode: string + dimensionalUnit: string + sizeInformation1: object + sizeInformation2: object + sizeInformation3: object + volumeInformation: object + volumeInformationUnit: string + weight: string + grossWeight: object + net weight: object +} + +// 查询商品表库存单位列表 +export const getProductLnventoryUnitPage = async (params) => { + return await request.get({ url: `/xxjj/product-lnventory-unit/page`, params }) +} + +// 查询商品表库存单位详情 +export const getProductLnventoryUnit = async (id: number) => { + return await request.get({ url: `/xxjj/product-lnventory-unit/get?id=` + id }) +} + +// 新增商品表库存单位 +export const createProductLnventoryUnit = async (data: ProductLnventoryUnitVO) => { + return await request.post({ url: `/xxjj/product-lnventory-unit/create`, data }) +} + +// 修改商品表库存单位 +export const updateProductLnventoryUnit = async (data: ProductLnventoryUnitVO) => { + return await request.put({ url: `/xxjj/product-lnventory-unit/update`, data }) +} + +// 删除商品表库存单位 +export const deleteProductLnventoryUnit = async (id: number) => { + return await request.delete({ url: `/xxjj/product-lnventory-unit/delete?id=` + id }) +} + +// 导出商品表库存单位 Excel +export const exportProductLnventoryUnit = async (params) => { + return await request.download({ url: `/xxjj/product-lnventory-unit/export-excel`, params }) +} diff --git a/yunxi-ui-admin-vue3/src/api/xxjj/subjectBasic/index.ts b/yunxi-ui-admin-vue3/src/api/xxjj/subjectBasic/index.ts index 4696f526..f82324ce 100644 --- a/yunxi-ui-admin-vue3/src/api/xxjj/subjectBasic/index.ts +++ b/yunxi-ui-admin-vue3/src/api/xxjj/subjectBasic/index.ts @@ -122,4 +122,4 @@ export const getBusinessCustom = async (params) => { // 修改状态 export const updateStatus = async (params) => { return await request.get({ url: `/xxjj/subject-basic/updateStatus`, params }) -} \ No newline at end of file +} diff --git a/yunxi-ui-admin-vue3/src/utils/dict.ts b/yunxi-ui-admin-vue3/src/utils/dict.ts index f015d245..86b9360f 100644 --- a/yunxi-ui-admin-vue3/src/utils/dict.ts +++ b/yunxi-ui-admin-vue3/src/utils/dict.ts @@ -239,6 +239,7 @@ export enum DICT_TYPE { LIFE_CYCLE = 'life_cycle' ,//生命周期 SALES_STATUS = 'sales_status', //商品表销售状态 DELIVETRY_TYPE = 'delivery_type', //配送方式 + order_main_unit_id = 'order_main_unit_id', //订货主单位 // ============= CONTRACT 模块================= CONTRACT_STATUS = 'contract_status', // 合同状态 diff --git a/yunxi-ui-admin-vue3/src/views/xxjj/product/BulinessLineList.vue b/yunxi-ui-admin-vue3/src/views/xxjj/product/BulinessLineList.vue new file mode 100644 index 00000000..9e9ec692 --- /dev/null +++ b/yunxi-ui-admin-vue3/src/views/xxjj/product/BulinessLineList.vue @@ -0,0 +1,185 @@ + + + + + + + diff --git a/yunxi-ui-admin-vue3/src/views/xxjj/product/ProductbarndList.vue b/yunxi-ui-admin-vue3/src/views/xxjj/product/ProductbarndList.vue new file mode 100644 index 00000000..48d2c594 --- /dev/null +++ b/yunxi-ui-admin-vue3/src/views/xxjj/product/ProductbarndList.vue @@ -0,0 +1,155 @@ + + + + + + + diff --git a/yunxi-ui-admin-vue3/src/views/xxjj/product/ProductlabelList.vue b/yunxi-ui-admin-vue3/src/views/xxjj/product/ProductlabelList.vue new file mode 100644 index 00000000..5aa4c2f7 --- /dev/null +++ b/yunxi-ui-admin-vue3/src/views/xxjj/product/ProductlabelList.vue @@ -0,0 +1,151 @@ + + + + + + + diff --git a/yunxi-ui-admin-vue3/src/views/xxjj/product/index.vue b/yunxi-ui-admin-vue3/src/views/xxjj/product/index.vue index 0130c098..101463c2 100644 --- a/yunxi-ui-admin-vue3/src/views/xxjj/product/index.vue +++ b/yunxi-ui-admin-vue3/src/views/xxjj/product/index.vue @@ -49,7 +49,7 @@ - + 新建商品 @@ -79,7 +79,7 @@ - +