From 51dbe457cff206dac77e7258fbe95a75169ec20b Mon Sep 17 00:00:00 2001 From: liujiang <569804566@qq.com> Date: Thu, 10 Apr 2025 11:19:03 +0800 Subject: [PATCH] =?UTF-8?q?master=EF=BC=9A=E6=A1=A3=E5=8F=A3=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E9=94=80=E5=94=AE=E4=BC=98=E6=83=A0=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=AE=8C=E5=96=84=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xkt/StoreCustomerController.java | 4 +- ...toreCustomerProductDiscountController.java | 78 ++++------ .../StoreCusProdBatchDiscountVO.java | 52 +++++++ .../StoreCusProdDiscExistVO.java | 58 +++++++ .../StoreCusProdDiscPageVO.java | 29 ++++ .../StoreCusProdDiscountVO.java | 2 +- .../xkt/vo/storeCustomer/StoreCusVO.java | 3 + .../com/ruoyi/xkt/domain/StoreCustomer.java | 4 + .../domain/StoreCustomerProductDiscount.java | 2 +- .../StoreCusProdBatchDiscountDTO.java | 43 ++++++ .../StoreCusProdDiscExistDTO.java | 46 ++++++ .../StoreCusProdDiscPageDTO.java | 26 ++++ .../StoreCusProdDiscPageResDTO.java | 40 +++++ .../StoreCusProdDiscountDTO.java | 2 +- .../xkt/dto/storeCustomer/StoreCusDTO.java | 2 + .../dto/storeCustomer/StoreCusPageResDTO.java | 6 +- .../StoreCustomerProductDiscountMapper.java | 48 +----- .../IStoreCustomerProductDiscountService.java | 55 +++---- .../xkt/service/IStoreCustomerService.java | 2 +- ...oreCustomerProductDiscountServiceImpl.java | 146 +++++++++++------- .../impl/StoreCustomerServiceImpl.java | 2 +- .../impl/StoreHomepageServiceImpl.java | 8 +- .../service/impl/StoreProductServiceImpl.java | 2 - .../StoreCustomerProductDiscountMapper.xml | 23 +++ 24 files changed, 484 insertions(+), 199 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdBatchDiscountVO.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdDiscExistVO.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdDiscPageVO.java create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdBatchDiscountDTO.java create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdDiscExistDTO.java create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdDiscPageDTO.java create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdDiscPageResDTO.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreCustomerController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreCustomerController.java index 84aaeebd1..9dbccafd6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreCustomerController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreCustomerController.java @@ -89,14 +89,14 @@ public class StoreCustomerController extends XktBaseController { @ApiOperation(value = "获取档口客户详细信息", httpMethod = "GET", response = R.class) @GetMapping(value = "/{storeCusId}") public R getInfo(@PathVariable("storeCusId") Long storeCusId) { - return R.ok(BeanUtil.toBean(storeCusService.selectStoreCustomerByStoreCusId(storeCusId), StoreCusVO.class)); + return R.ok(BeanUtil.toBean(storeCusService.selectByStoreCusId(storeCusId), StoreCusVO.class)); } /** * 查询档口客户列表 */ @PreAuthorize("@ss.hasPermi('system:customer:list')") - @ApiOperation(value = "查询档口客户列表", httpMethod = "GET", response = R.class) + @ApiOperation(value = "查询档口客户列表", httpMethod = "POST", response = R.class) @PostMapping("/page") public R> selectPage(@Validated @RequestBody StoreCusPageVO pageVO) { return R.ok(storeCusService.selectPage(BeanUtil.toBean(pageVO, StoreCusPageDTO.class))); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreCustomerProductDiscountController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreCustomerProductDiscountController.java index 94af016eb..2f358ce4a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreCustomerProductDiscountController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreCustomerProductDiscountController.java @@ -4,12 +4,13 @@ import cn.hutool.core.bean.BeanUtil; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.XktBaseController; import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.page.Page; import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.web.controller.xkt.vo.storeCusProdDiscount.StoreCusProdBatchDiscountVO; +import com.ruoyi.web.controller.xkt.vo.storeCusProdDiscount.StoreCusProdDiscExistVO; +import com.ruoyi.web.controller.xkt.vo.storeCusProdDiscount.StoreCusProdDiscPageVO; import com.ruoyi.web.controller.xkt.vo.storeCusProdDiscount.StoreCusProdDiscountVO; -import com.ruoyi.xkt.domain.StoreCustomerProductDiscount; -import com.ruoyi.xkt.dto.storeCusProdDiscount.StoreCusProdDiscountDTO; +import com.ruoyi.xkt.dto.storeCusProdDiscount.*; import com.ruoyi.xkt.service.IStoreCustomerProductDiscountService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -18,9 +19,6 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletResponse; -import java.util.List; - /** * 档口客户优惠Controller * @@ -30,10 +28,10 @@ import java.util.List; @Api(tags = "档口客户优惠") @RestController @RequiredArgsConstructor -@RequestMapping("/rest/v1/cus-discounts") +@RequestMapping("/rest/v1/cus-disc") public class StoreCustomerProductDiscountController extends XktBaseController { - final IStoreCustomerProductDiscountService storeCusProdDiscountSvc; + final IStoreCustomerProductDiscountService storeCusProdDiscService; /** * 销售出库时,新增或修改档口客户优惠 @@ -43,60 +41,40 @@ public class StoreCustomerProductDiscountController extends XktBaseController { @Log(title = "销售出库时,新增或修改档口客户优惠", businessType = BusinessType.UPDATE) @PutMapping public R edit(@Validated @RequestBody StoreCusProdDiscountVO cusProdDisVO) { - return R.ok(storeCusProdDiscountSvc.updateStoreCusProdDiscount(BeanUtil.toBean(cusProdDisVO, StoreCusProdDiscountDTO.class))); - } - - - /** - * 查询档口客户优惠列表 - */ - @PreAuthorize("@ss.hasPermi('system:discount:list')") - @GetMapping("/list") - public TableDataInfo list(StoreCustomerProductDiscount storeCustomerProductDiscount) { - startPage(); - List list = storeCusProdDiscountSvc.selectStoreCustomerProductDiscountList(storeCustomerProductDiscount); - return getDataTable(list); + return R.ok(storeCusProdDiscService.updateStoreCusProdDiscount(BeanUtil.toBean(cusProdDisVO, StoreCusProdDiscountDTO.class))); } /** - * 导出档口客户优惠列表 + * 客户销售管理 批量减价、批量抹零减价 */ - @PreAuthorize("@ss.hasPermi('system:discount:export')") - @Log(title = "档口客户优惠", businessType = BusinessType.EXPORT) - @PostMapping("/export") - public void export(HttpServletResponse response, StoreCustomerProductDiscount storeCustomerProductDiscount) { - List list = storeCusProdDiscountSvc.selectStoreCustomerProductDiscountList(storeCustomerProductDiscount); - ExcelUtil util = new ExcelUtil(StoreCustomerProductDiscount.class); - util.exportExcel(response, list, "档口客户优惠数据"); + @PreAuthorize("@ss.hasPermi('system:discount:edit')") + @ApiOperation(value = "客户销售管理 批量减价、批量抹零减价", httpMethod = "PUT", response = R.class) + @Log(title = "客户销售管理 批量减价、批量抹零减价", businessType = BusinessType.UPDATE) + @PutMapping("/batch") + public R batchDiscount(@Validated @RequestBody StoreCusProdBatchDiscountVO batchDiscVO) { + return R.ok(storeCusProdDiscService.batchDiscount(BeanUtil.toBean(batchDiscVO, StoreCusProdBatchDiscountDTO.class))); } /** - * 获取档口客户优惠详细信息 + * 查询客户销售管理列表 */ - @PreAuthorize("@ss.hasPermi('system:discount:query')") - @GetMapping(value = "/{storeCusProdDiscId}") - public R getInfo(@PathVariable("storeCusProdDiscId") Long storeCusProdDiscId) { - return success(storeCusProdDiscountSvc.selectStoreCustomerProductDiscountByStoreCusProdDiscId(storeCusProdDiscId)); + @PreAuthorize("@ss.hasPermi('system:customer:list')") + @ApiOperation(value = "查询客户销售管理列表", httpMethod = "POST", response = R.class) + @PostMapping("/page") + public R> selectPage(@Validated @RequestBody StoreCusProdDiscPageVO pageVO) { + return R.ok(storeCusProdDiscService.selectPage(BeanUtil.toBean(pageVO, StoreCusProdDiscPageDTO.class))); } /** - * 新增档口客户优惠 + * 新增客户销售定价时,根据入参查询是否已存在优惠 */ - @PreAuthorize("@ss.hasPermi('system:discount:add')") - @Log(title = "档口客户优惠", businessType = BusinessType.INSERT) - @PostMapping - public R add(@RequestBody StoreCustomerProductDiscount storeCustomerProductDiscount) { - return success(storeCusProdDiscountSvc.insertStoreCustomerProductDiscount(storeCustomerProductDiscount)); + @PreAuthorize("@ss.hasPermi('system:customer:list')") + @ApiOperation(value = "新增客户销售定价时,根据入参查询是否已存在优惠", httpMethod = "POST", response = R.class) + @PostMapping("/exists") + public R discountExist(@Validated @RequestBody StoreCusProdDiscExistVO existVO) { + storeCusProdDiscService.discountExist(BeanUtil.toBean(existVO, StoreCusProdDiscExistDTO.class)); + return R.ok(); } - /** - * 删除档口客户优惠 - */ - @PreAuthorize("@ss.hasPermi('system:discount:remove')") - @Log(title = "档口客户优惠", businessType = BusinessType.DELETE) - @DeleteMapping("/{storeCusProdDiscIds}") - public R remove(@PathVariable Long[] storeCusProdDiscIds) { - return success(storeCusProdDiscountSvc.deleteStoreCustomerProductDiscountByStoreCusProdDiscIds(storeCusProdDiscIds)); - } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdBatchDiscountVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdBatchDiscountVO.java new file mode 100644 index 000000000..9368bcb58 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdBatchDiscountVO.java @@ -0,0 +1,52 @@ +package com.ruoyi.web.controller.xkt.vo.storeCusProdDiscount; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.Valid; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口客户批量减价、批量抹零") +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class StoreCusProdBatchDiscountVO { + + @NotNull(message = "档口ID不能为空!") + @ApiModelProperty(name = "档口ID") + private Long storeId; + @NotNull(message = "优惠列表不能为空!") + @Valid + @ApiModelProperty(value = "优惠列表", required = true) + List discountList; + + @Data + @ApiModel(value = "档口优惠列表") + public static class DiscountItemVO { + @NotNull(message = "档口商品ID不能为空!") + @ApiModelProperty(name = "档口商品ID") + private Long storeProdId; + @NotNull(message = "档口商品颜色ID不能为空!") + @ApiModelProperty(name = "档口商品颜色ID") + private Long storeProdColorId; + @NotNull(message = "优惠金额不能为空!") + @ApiModelProperty(value = "优惠金额", required = true) + private Integer discount; + @NotNull(message = "档口客户ID不能为空!") + @ApiModelProperty(value = "档口ID", required = true) + private Long storeCusId; + @ApiModelProperty(value = "档口客户名称", required = true) + @NotBlank(message = "档口客户名称不能为空!") + private String storeCusName; + } + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdDiscExistVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdDiscExistVO.java new file mode 100644 index 000000000..b5eef3cf2 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdDiscExistVO.java @@ -0,0 +1,58 @@ +package com.ruoyi.web.controller.xkt.vo.storeCusProdDiscount; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.Valid; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口客户批量减价、批量抹零") +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class StoreCusProdDiscExistVO { + + @NotNull(message = "档口ID不能为空!") + @ApiModelProperty(name = "档口ID") + private Long storeId; + @NotNull(message = "优惠列表不能为空!") + @Valid + @ApiModelProperty(value = "优惠列表", required = true) + List discountList; + + @Data + @ApiModel(value = "档口优惠列表") + public static class DiscountItemVO { + @NotNull(message = "档口商品ID不能为空!") + @ApiModelProperty(name = "档口商品ID") + private Long storeProdId; + @NotBlank(message = "商品货号不能为空!") + @ApiModelProperty(name = "商品货号") + private String prodArtNum; + @ApiModelProperty(name = "商品颜色名称") + @NotBlank(message = "商品颜色名称不能为空!") + private String colorName; + @NotNull(message = "档口商品颜色ID不能为空!") + @ApiModelProperty(name = "档口商品颜色ID") + private Long storeProdColorId; + @NotNull(message = "优惠金额不能为空!") + @ApiModelProperty(value = "优惠金额", required = true) + private Integer discount; + @NotNull(message = "档口客户ID不能为空!") + @ApiModelProperty(value = "档口客户ID", required = true) + private Long storeCusId; + @NotBlank(message = "档口客户名称不能为空!") + @ApiModelProperty(value = "档口客户名称", required = true) + private String storeCusName; + } + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdDiscPageVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdDiscPageVO.java new file mode 100644 index 000000000..080879dbc --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdDiscPageVO.java @@ -0,0 +1,29 @@ +package com.ruoyi.web.controller.xkt.vo.storeCusProdDiscount; + +import com.ruoyi.web.controller.xkt.vo.BasePageVO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotNull; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@EqualsAndHashCode(callSuper = true) +@ApiModel("档口客户销售分页查询入参") +@Data +public class StoreCusProdDiscPageVO extends BasePageVO { + + @ApiModelProperty(value = "客户名称") + private String cusName; + @ApiModelProperty(value = "商品货号") + private String prodArtNum; + @ApiModelProperty(value = "档口ID", required = true) + @NotNull(message = "档口ID不能为空") + private Long storeId; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdDiscountVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdDiscountVO.java index 9a5da02be..7fc964345 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdDiscountVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCusProdDiscount/StoreCusProdDiscountVO.java @@ -33,6 +33,6 @@ public class StoreCusProdDiscountVO { private String phone; @NotNull(message = "优惠金额不能为空!") @ApiModelProperty(value = "优惠金额", required = true) - private BigDecimal discount; + private Integer discount; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusVO.java index ed808275a..1496e793b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusVO.java @@ -30,6 +30,9 @@ public class StoreCusVO { @ApiModelProperty(value = "客户联系电话") @Pattern(regexp = "^1[3-9]\\d{9}$", message = "联系电话格式不正确,请输入有效的中国大陆手机号") private String phone; + @NotNull(message = "大小码加价不能为空!") + @ApiModelProperty(value = "大小码加价 0 不加 1加价", required = true) + private Integer addOverPrice; @ApiModelProperty(value = "备注") private String remark; diff --git a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreCustomer.java b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreCustomer.java index 7847c0ce5..77beb4210 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreCustomer.java +++ b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreCustomer.java @@ -50,6 +50,10 @@ public class StoreCustomer extends XktBaseEntity { @Excel(name = "客户备注") private String remark; + /** + * 大小码加价 0 不加 1加价 + */ + private Integer addOverPrice; @Override diff --git a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreCustomerProductDiscount.java b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreCustomerProductDiscount.java index 121794017..4b9848b0c 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/domain/StoreCustomerProductDiscount.java +++ b/xkt/src/main/java/com/ruoyi/xkt/domain/StoreCustomerProductDiscount.java @@ -59,7 +59,7 @@ public class StoreCustomerProductDiscount extends XktBaseEntity { * 优惠金额 */ @Excel(name = "优惠金额") - private BigDecimal discount; + private Integer discount; @Override diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdBatchDiscountDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdBatchDiscountDTO.java new file mode 100644 index 000000000..d2362ea36 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdBatchDiscountDTO.java @@ -0,0 +1,43 @@ +package com.ruoyi.xkt.dto.storeCusProdDiscount; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.Valid; +import java.util.List; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口客户批量减价、批量抹零") +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class StoreCusProdBatchDiscountDTO { + + @ApiModelProperty(name = "档口ID") + private Long storeId; + @ApiModelProperty(value = "优惠列表") + private List discountList; + + @Data + @Valid + @ApiModel(value = "档口优惠列表") + public static class DiscountItemDTO { + @ApiModelProperty(name = "档口商品ID") + private Long storeProdId; + @ApiModelProperty(name = "档口商品颜色ID") + private Long storeProdColorId; + @ApiModelProperty(value = "优惠金额") + private Integer discount; + @ApiModelProperty(value = "档口ID") + private Long storeCusId; + @ApiModelProperty(value = "档口客户名称") + private String storeCusName; + } + + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdDiscExistDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdDiscExistDTO.java new file mode 100644 index 000000000..77da8d427 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdDiscExistDTO.java @@ -0,0 +1,46 @@ +package com.ruoyi.xkt.dto.storeCusProdDiscount; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.util.List; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口客户批量减价、批量抹零") +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class StoreCusProdDiscExistDTO { + + @ApiModelProperty(name = "档口ID") + private Long storeId; + @ApiModelProperty(value = "优惠列表") + List discountList; + + @Data + @ApiModel(value = "档口优惠列表") + public static class DiscountItemDTO { + @ApiModelProperty(name = "档口商品ID") + private Long storeProdId; + @ApiModelProperty(name = "商品货号") + private String prodArtNum; + @ApiModelProperty(name = "商品颜色名称") + private String colorName; + @ApiModelProperty(name = "档口商品颜色ID") + private Long storeProdColorId; + @ApiModelProperty(value = "优惠金额") + private Integer discount; + @ApiModelProperty(value = "档口客户ID") + private Long storeCusId; + @ApiModelProperty(value = "档口客户名称") + private String storeCusName; + } + + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdDiscPageDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdDiscPageDTO.java new file mode 100644 index 000000000..8becce149 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdDiscPageDTO.java @@ -0,0 +1,26 @@ +package com.ruoyi.xkt.dto.storeCusProdDiscount; + +import com.ruoyi.xkt.dto.BasePageDTO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@EqualsAndHashCode(callSuper = true) +@ApiModel("档口客户销售分页查询入参") +@Data +public class StoreCusProdDiscPageDTO extends BasePageDTO { + + @ApiModelProperty(value = "客户名称") + private String cusName; + @ApiModelProperty(value = "商品货号") + private String prodArtNum; + @ApiModelProperty(value = "档口ID") + private Long storeId; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdDiscPageResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdDiscPageResDTO.java new file mode 100644 index 000000000..d550008e4 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdDiscPageResDTO.java @@ -0,0 +1,40 @@ +package com.ruoyi.xkt.dto.storeCusProdDiscount; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口客户销售管理分页数据") +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class StoreCusProdDiscPageResDTO { + + @ApiModelProperty(value = "档口客户商品优惠ID") + private Long storeCusProdDiscId; + @ApiModelProperty(value = "档口ID") + private Long storeId; + @ApiModelProperty(name = "档口商品ID") + private Long storeProdId; + @ApiModelProperty(name = "档口客户ID") + private Long storeCusId; + @ApiModelProperty(name = "档口客户名称") + private String storeCusName; + @ApiModelProperty(name = "档口商品颜色ID") + private Long storeProdColorId; + @ApiModelProperty(name = "优惠金额") + private Integer discount; + @ApiModelProperty("更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdDiscountDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdDiscountDTO.java index 5d5107ed9..9ab2a0985 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdDiscountDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeCusProdDiscount/StoreCusProdDiscountDTO.java @@ -28,6 +28,6 @@ public class StoreCusProdDiscountDTO { @ApiModelProperty(value = "客户联系电话") private String phone; @ApiModelProperty(value = "优惠金额") - private BigDecimal discount; + private Integer discount; } diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeCustomer/StoreCusDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeCustomer/StoreCusDTO.java index 8165424b5..3efc886d5 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeCustomer/StoreCusDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeCustomer/StoreCusDTO.java @@ -26,6 +26,8 @@ public class StoreCusDTO { private String cusName; @ApiModelProperty(value = "客户联系电话") private String phone; + @ApiModelProperty(value = "大小码加价 0 不加 1加价") + private Integer addOverPrice; @ApiModelProperty("备注") private String remark; diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeCustomer/StoreCusPageResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeCustomer/StoreCusPageResDTO.java index aa0925a3f..5bdc548e0 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeCustomer/StoreCusPageResDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeCustomer/StoreCusPageResDTO.java @@ -7,7 +7,6 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; import java.util.Date; /** @@ -20,16 +19,17 @@ import java.util.Date; @JsonInclude(JsonInclude.Include.NON_NULL) public class StoreCusPageResDTO { - @ApiModelProperty(value = "档口客户ID", notes = "新增为空,编辑必传") + @ApiModelProperty(value = "档口客户ID") @JsonProperty("storeCusId") private Long id; @ApiModelProperty(value = "档口ID") private Long storeId; - @NotBlank(message = "客户名称不能为空!") @ApiModelProperty(value = "客户名称") private String cusName; @ApiModelProperty(value = "客户联系电话") private String phone; + @ApiModelProperty(value = "大小码加价 0 不加 1加价") + private Integer addOverPrice; @ApiModelProperty("备注") private String remark; @ApiModelProperty("创建时间") diff --git a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreCustomerProductDiscountMapper.java b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreCustomerProductDiscountMapper.java index 9621dbf9e..1416d4577 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreCustomerProductDiscountMapper.java +++ b/xkt/src/main/java/com/ruoyi/xkt/mapper/StoreCustomerProductDiscountMapper.java @@ -2,6 +2,8 @@ package com.ruoyi.xkt.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.xkt.domain.StoreCustomerProductDiscount; +import com.ruoyi.xkt.dto.storeCusProdDiscount.StoreCusProdDiscPageDTO; +import com.ruoyi.xkt.dto.storeCusProdDiscount.StoreCusProdDiscPageResDTO; import java.util.List; @@ -12,51 +14,7 @@ import java.util.List; * @date 2025-03-26 */ public interface StoreCustomerProductDiscountMapper extends BaseMapper { - /** - * 查询档口客户优惠 - * - * @param id 档口客户优惠主键 - * @return 档口客户优惠 - */ - public StoreCustomerProductDiscount selectStoreCustomerProductDiscountByStoreCusProdDiscId(Long id); - /** - * 查询档口客户优惠列表 - * - * @param storeCustomerProductDiscount 档口客户优惠 - * @return 档口客户优惠集合 - */ - public List selectStoreCustomerProductDiscountList(StoreCustomerProductDiscount storeCustomerProductDiscount); + List selectDiscPage(StoreCusProdDiscPageDTO pageDTO); - /** - * 新增档口客户优惠 - * - * @param storeCustomerProductDiscount 档口客户优惠 - * @return 结果 - */ - public int insertStoreCustomerProductDiscount(StoreCustomerProductDiscount storeCustomerProductDiscount); - - /** - * 修改档口客户优惠 - * - * @param storeCustomerProductDiscount 档口客户优惠 - * @return 结果 - */ - public int updateStoreCustomerProductDiscount(StoreCustomerProductDiscount storeCustomerProductDiscount); - - /** - * 删除档口客户优惠 - * - * @param id 档口客户优惠主键 - * @return 结果 - */ - public int deleteStoreCustomerProductDiscountByStoreCusProdDiscId(Long id); - - /** - * 批量删除档口客户优惠 - * - * @param storeCusProdDiscIds 需要删除的数据主键集合 - * @return 结果 - */ - public int deleteStoreCustomerProductDiscountByStoreCusProdDiscIds(Long[] storeCusProdDiscIds); } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreCustomerProductDiscountService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreCustomerProductDiscountService.java index 0fb6e8c8c..c8adbcad5 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreCustomerProductDiscountService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreCustomerProductDiscountService.java @@ -1,9 +1,7 @@ package com.ruoyi.xkt.service; -import com.ruoyi.xkt.domain.StoreCustomerProductDiscount; -import com.ruoyi.xkt.dto.storeCusProdDiscount.StoreCusProdDiscountDTO; - -import java.util.List; +import com.ruoyi.common.core.page.Page; +import com.ruoyi.xkt.dto.storeCusProdDiscount.*; /** * 档口客户优惠Service接口 @@ -12,29 +10,6 @@ import java.util.List; * @date 2025-03-26 */ public interface IStoreCustomerProductDiscountService { - /** - * 查询档口客户优惠 - * - * @param storeCusProdDiscId 档口客户优惠主键 - * @return 档口客户优惠 - */ - public StoreCustomerProductDiscount selectStoreCustomerProductDiscountByStoreCusProdDiscId(Long storeCusProdDiscId); - - /** - * 查询档口客户优惠列表 - * - * @param storeCustomerProductDiscount 档口客户优惠 - * @return 档口客户优惠集合 - */ - public List selectStoreCustomerProductDiscountList(StoreCustomerProductDiscount storeCustomerProductDiscount); - - /** - * 新增档口客户优惠 - * - * @param storeCustomerProductDiscount 档口客户优惠 - * @return 结果 - */ - public int insertStoreCustomerProductDiscount(StoreCustomerProductDiscount storeCustomerProductDiscount); /** * 修改档口客户优惠 @@ -42,21 +17,29 @@ public interface IStoreCustomerProductDiscountService { * @param cusProdDisDTO 档口客户优惠 * @return 结果 */ - public Integer updateStoreCusProdDiscount(StoreCusProdDiscountDTO cusProdDisDTO); + Integer updateStoreCusProdDiscount(StoreCusProdDiscountDTO cusProdDisDTO); /** - * 批量删除档口客户优惠 + * 档口客户 批量减价、批量抹零减价 * - * @param storeCusProdDiscIds 需要删除的档口客户优惠主键集合 - * @return 结果 + * @param batchDiscDTO 批量减价入参 + * @return Integer */ - public int deleteStoreCustomerProductDiscountByStoreCusProdDiscIds(Long[] storeCusProdDiscIds); + Integer batchDiscount(StoreCusProdBatchDiscountDTO batchDiscDTO); /** - * 删除档口客户优惠信息 + * 查询客户销售管理列表 * - * @param storeCusProdDiscId 档口客户优惠主键 - * @return 结果 + * @param pageDTO 分页入参 + * @return Page */ - public int deleteStoreCustomerProductDiscountByStoreCusProdDiscId(Long storeCusProdDiscId); + Page selectPage(StoreCusProdDiscPageDTO pageDTO); + + /** + * 客户销售管理,新增客户优惠时,判断是否已存在优惠 + * @param existDTO 优惠是否存在DTO + * @return String + */ + void discountExist(StoreCusProdDiscExistDTO existDTO); + } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreCustomerService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreCustomerService.java index 5628cc9a5..04af5edb5 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IStoreCustomerService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IStoreCustomerService.java @@ -22,7 +22,7 @@ public interface IStoreCustomerService { * @param storeCusId 档口客户主键 * @return 档口客户 */ - public StoreCusDTO selectStoreCustomerByStoreCusId(Long storeCusId); + public StoreCusDTO selectByStoreCusId(Long storeCusId); /** * 查询档口客户列表 diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCustomerProductDiscountServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCustomerProductDiscountServiceImpl.java index b84d93635..af27b59e7 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCustomerProductDiscountServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCustomerProductDiscountServiceImpl.java @@ -2,14 +2,16 @@ package com.ruoyi.xkt.service.impl; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.constant.HttpStatus; +import com.ruoyi.common.core.page.Page; import com.ruoyi.common.exception.ServiceException; -import com.ruoyi.common.utils.DateUtils; import com.ruoyi.xkt.domain.StoreCustomer; import com.ruoyi.xkt.domain.StoreCustomerProductDiscount; import com.ruoyi.xkt.domain.StoreProductColor; -import com.ruoyi.xkt.dto.storeCusProdDiscount.StoreCusProdDiscountDTO; +import com.ruoyi.xkt.dto.storeCusProdDiscount.*; import com.ruoyi.xkt.mapper.StoreCustomerMapper; import com.ruoyi.xkt.mapper.StoreCustomerProductDiscountMapper; import com.ruoyi.xkt.mapper.StoreProductColorMapper; @@ -20,10 +22,11 @@ import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Optional; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -36,7 +39,7 @@ import java.util.stream.Collectors; @RequiredArgsConstructor public class StoreCustomerProductDiscountServiceImpl implements IStoreCustomerProductDiscountService { - final StoreCustomerProductDiscountMapper cusProdDiscountMapper; + final StoreCustomerProductDiscountMapper cusProdDiscMapper; final StoreCustomerMapper storeCusMapper; final StoreProductColorMapper storeProdColorMapper; @@ -57,13 +60,13 @@ public class StoreCustomerProductDiscountServiceImpl implements IStoreCustomerPr } StoreCustomer storeCus = CollectionUtils.isNotEmpty(storeCusList) ? storeCusList.get(0) : this.createStoreCustomer(cusProdDisDTO); // 获取当前档口客户已有的优惠 - List cusProdDisList = Optional.ofNullable(cusProdDiscountMapper.selectList(new LambdaQueryWrapper() + List cusProdDisList = Optional.ofNullable(cusProdDiscMapper.selectList(new LambdaQueryWrapper() .eq(StoreCustomerProductDiscount::getStoreCusName, cusProdDisDTO.getStoreCusName()).eq(StoreCustomerProductDiscount::getDelFlag, Constants.UNDELETED) .eq(StoreCustomerProductDiscount::getStoreId, cusProdDisDTO.getStoreId()))).orElse(new ArrayList<>()); // 已存在优惠但优惠额度低于当前优惠,则更新该部分优惠 List updateList = cusProdDisList.stream() // 找到所有优惠低于当前优惠额度的列表 - .filter(x -> cusProdDisDTO.getDiscount().compareTo(ObjectUtils.defaultIfNull(x.getDiscount(), BigDecimal.ZERO)) > 0) + .filter(x -> cusProdDisDTO.getDiscount().compareTo(ObjectUtils.defaultIfNull(x.getDiscount(), 0)) > 0) // 更新最新的优惠 .peek(x -> x.setDiscount(cusProdDisDTO.getDiscount())).collect(Collectors.toList()); // 已有优惠的id @@ -81,69 +84,104 @@ public class StoreCustomerProductDiscountServiceImpl implements IStoreCustomerPr updateList.addAll(addDiscountList); } // 更新及新增当前客户优惠 - return this.cusProdDiscountMapper.insertOrUpdate(updateList).size(); + return this.cusProdDiscMapper.insertOrUpdate(updateList).size(); } + /** + * 档口客户 批量减价、批量抹零减价 + * + * @param batchDiscDTO 批量减价入参 + * @return Integer + */ + @Override + @Transactional + public Integer batchDiscount(StoreCusProdBatchDiscountDTO batchDiscDTO) { + // 获取当前客户已有优惠列表 + List prodCusDiscList = this.cusProdDiscMapper.selectList(new LambdaQueryWrapper() + .in(StoreCustomerProductDiscount::getStoreCusId, batchDiscDTO.getDiscountList().stream() + .map(StoreCusProdBatchDiscountDTO.DiscountItemDTO::getStoreCusId).distinct().collect(Collectors.toList())) + .eq(StoreCustomerProductDiscount::getDelFlag, Constants.UNDELETED) + .eq(StoreCustomerProductDiscount::getStoreId, batchDiscDTO.getStoreId()) + .in(StoreCustomerProductDiscount::getStoreProdColorId, batchDiscDTO.getDiscountList().stream() + .map(StoreCusProdBatchDiscountDTO.DiscountItemDTO::getStoreProdColorId).distinct().collect(Collectors.toList()))); + // 数据库已有的客户优惠map + Map prodCusDiscMap = prodCusDiscList.stream().collect(Collectors + .toMap(item -> item.getStoreCusId().toString() + item.getStoreProdColorId().toString(), Function.identity())); + // 最新的优惠金额 + List updateList = new ArrayList<>(); + // 入参优惠列表 + batchDiscDTO.getDiscountList().forEach(itemDTO -> { + // 如果已存在优惠则叠加 + if (prodCusDiscMap.containsKey(itemDTO.getStoreCusId().toString() + itemDTO.getStoreProdColorId().toString())) { + StoreCustomerProductDiscount prodColorDisc = prodCusDiscMap.get(itemDTO.getStoreCusId().toString() + itemDTO.getStoreProdColorId().toString()); + // 优惠金额进行累加 + prodColorDisc.setDiscount(ObjectUtils.defaultIfNull(prodColorDisc.getDiscount(), 0) + ObjectUtils.defaultIfNull(itemDTO.getDiscount(), 0)); + updateList.add(prodColorDisc); + // 不存在优惠则新增 + } else { + // 新增优惠 + updateList.add(new StoreCustomerProductDiscount() {{ + setDiscount(itemDTO.getDiscount()); + setStoreId(batchDiscDTO.getStoreId()); + setStoreCusName(itemDTO.getStoreCusName()); + setStoreCusId(itemDTO.getStoreCusId()); + setStoreProdColorId(itemDTO.getStoreProdColorId()); + setStoreProdId(itemDTO.getStoreProdId()); + }}); + } + }); + if (CollectionUtils.isEmpty(updateList)) { + return 0; + } + return this.cusProdDiscMapper.updateById(updateList).size(); + } /** - * 查询档口客户优惠 + * 查询客户销售管理列表 * - * @param storeCusProdDiscId 档口客户优惠主键 - * @return 档口客户优惠 + * @param pageDTO 分页入参 + * @return Page */ @Override @Transactional(readOnly = true) - public StoreCustomerProductDiscount selectStoreCustomerProductDiscountByStoreCusProdDiscId(Long storeCusProdDiscId) { - return cusProdDiscountMapper.selectStoreCustomerProductDiscountByStoreCusProdDiscId(storeCusProdDiscId); + public Page selectPage(StoreCusProdDiscPageDTO pageDTO) { + PageHelper.startPage(pageDTO.getPageNum(), pageDTO.getPageSize()); + List list = this.cusProdDiscMapper.selectDiscPage(pageDTO); + return Page.convert(new PageInfo<>(list)); } /** - * 查询档口客户优惠列表 + * 客户销售管理,新增客户优惠时,判断是否已存在优惠 * - * @param storeCustomerProductDiscount 档口客户优惠 - * @return 档口客户优惠 + * @param existDTO 优惠是否存在DTO + * @return String */ @Override @Transactional(readOnly = true) - public List selectStoreCustomerProductDiscountList(StoreCustomerProductDiscount storeCustomerProductDiscount) { - return cusProdDiscountMapper.selectStoreCustomerProductDiscountList(storeCustomerProductDiscount); - } - - /** - * 新增档口客户优惠 - * - * @param storeCustomerProductDiscount 档口客户优惠 - * @return 结果 - */ - @Override - @Transactional - public int insertStoreCustomerProductDiscount(StoreCustomerProductDiscount storeCustomerProductDiscount) { - storeCustomerProductDiscount.setCreateTime(DateUtils.getNowDate()); - return cusProdDiscountMapper.insertStoreCustomerProductDiscount(storeCustomerProductDiscount); - } - - /** - * 批量删除档口客户优惠 - * - * @param storeCusProdDiscIds 需要删除的档口客户优惠主键 - * @return 结果 - */ - @Override - @Transactional - public int deleteStoreCustomerProductDiscountByStoreCusProdDiscIds(Long[] storeCusProdDiscIds) { - return cusProdDiscountMapper.deleteStoreCustomerProductDiscountByStoreCusProdDiscIds(storeCusProdDiscIds); - } - - /** - * 删除档口客户优惠信息 - * - * @param storeCusProdDiscId 档口客户优惠主键 - * @return 结果 - */ - @Override - @Transactional - public int deleteStoreCustomerProductDiscountByStoreCusProdDiscId(Long storeCusProdDiscId) { - return cusProdDiscountMapper.deleteStoreCustomerProductDiscountByStoreCusProdDiscId(storeCusProdDiscId); + public void discountExist(StoreCusProdDiscExistDTO existDTO) { + List discountList = this.cusProdDiscMapper.selectList(new LambdaQueryWrapper() + .eq(StoreCustomerProductDiscount::getStoreId, existDTO.getStoreId()) + .in(StoreCustomerProductDiscount::getStoreProdColorId, existDTO.getDiscountList().stream().map(StoreCusProdDiscExistDTO.DiscountItemDTO::getStoreProdColorId).collect(Collectors.toList())) + .in(StoreCustomerProductDiscount::getStoreCusId, existDTO.getDiscountList().stream().map(StoreCusProdDiscExistDTO.DiscountItemDTO::getStoreCusId).collect(Collectors.toList())) + .eq(StoreCustomerProductDiscount::getDelFlag, Constants.UNDELETED)); + if (CollectionUtils.isEmpty(discountList)) { + return; + } + StringBuilder sb = new StringBuilder(); + // 判断存在哪些优惠,给与提示 + Map existDiscMap = discountList.stream().collect(Collectors + .toMap(x -> x.getStoreCusId().toString() + x.getStoreProdColorId().toString(), Function.identity())); + // 根据入参一次确认 + existDTO.getDiscountList().forEach(x -> { + final String existKey = x.getStoreCusId().toString() + x.getStoreProdColorId().toString(); + if (existDiscMap.containsKey(existKey)) { + sb.append("客户:").append(x.getStoreCusName()).append("、商品:").append(x.getProdArtNum()).append(x.getColorName()) + .append("、已存在优惠:").append(existDiscMap.get(existKey).getDiscount()).append("元").append("\n"); + } + }); + if (sb.length() > 0) { + throw new ServiceException(sb.toString(), HttpStatus.ERROR); + } } /** diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCustomerServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCustomerServiceImpl.java index e695e0097..8d5021fb8 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCustomerServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCustomerServiceImpl.java @@ -111,7 +111,7 @@ public class StoreCustomerServiceImpl implements IStoreCustomerService { */ @Override @Transactional(readOnly = true) - public StoreCusDTO selectStoreCustomerByStoreCusId(Long storeCusId) { + public StoreCusDTO selectByStoreCusId(Long storeCusId) { StoreCustomer storeCus = Optional.ofNullable(storeCusMapper.selectOne(new LambdaQueryWrapper() .eq(StoreCustomer::getId, storeCusId).eq(StoreCustomer::getDelFlag, Constants.UNDELETED))) .orElseThrow(() -> new ServiceException("档口客户不存在!", HttpStatus.ERROR)); diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreHomepageServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreHomepageServiceImpl.java index 9acf36f50..eb4e0a07f 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreHomepageServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreHomepageServiceImpl.java @@ -55,7 +55,7 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService { final StoreProductColorPriceMapper prodColorPriceMapper; final StoreProductFileMapper prodFileMapper; final StoreProductCategoryAttributeMapper prodCateAttrMapper; - + final StoreCertificateMapper storeCertMapper; /** * 新增档口首页各部分图 @@ -213,6 +213,9 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService { Store store = Optional.ofNullable(this.storeMapper.selectOne(new LambdaQueryWrapper() .eq(Store::getId, storeId).eq(Store::getDelFlag, Constants.UNDELETED))) .orElseThrow(() -> new ServiceException("档口不存在!", HttpStatus.ERROR)); + // 档口认证 + StoreCertificate storeCert = this.storeCertMapper.selectOne(new LambdaQueryWrapper() + .eq(StoreCertificate::getStoreId, storeId).eq(StoreCertificate::getDelFlag, Constants.UNDELETED)); // 获取商品基本信息 StoreProduct storeProd = Optional.ofNullable(this.storeProdMapper.selectOne(new LambdaQueryWrapper() .eq(StoreProduct::getId, storeProdId).eq(StoreProduct::getDelFlag, Constants.UNDELETED) @@ -281,7 +284,8 @@ public class StoreHomepageServiceImpl implements IStoreHomepageService { .setFileUrl(fileMap.get(x.getFileId()).getFileUrl()).setFileSize(fileMap.get(x.getFileId()).getFileSize()) : decorationDTO; }).collect(Collectors.toList()); return new StoreHomeProdResDTO() {{ - setStore(BeanUtil.toBean(store, StoreBasicDTO.class).setStoreId(storeId)); + setStore(BeanUtil.toBean(store, StoreBasicDTO.class).setStoreId(storeId) + .setLicenseName(ObjectUtils.isNotEmpty(storeCert) ? storeCert.getLicenseName() : null)); setStoreProd(storeProdDTO); setStoreProdStatusCount(statusCountDTO); setRecommendedList(recommendedList); diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductServiceImpl.java index 7c1ead235..f22f8f28a 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductServiceImpl.java @@ -37,8 +37,6 @@ import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; -import static com.ruoyi.common.constant.Constants.ORDER_NUM_1; - /** * 档口商品Service业务层处理 * diff --git a/xkt/src/main/resources/mapper/StoreCustomerProductDiscountMapper.xml b/xkt/src/main/resources/mapper/StoreCustomerProductDiscountMapper.xml index e632ba536..b048471a9 100644 --- a/xkt/src/main/resources/mapper/StoreCustomerProductDiscountMapper.xml +++ b/xkt/src/main/resources/mapper/StoreCustomerProductDiscountMapper.xml @@ -93,4 +93,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id} + + + + + \ No newline at end of file