From 5be401c7cb612116382136dddcb7891ea9c92943 Mon Sep 17 00:00:00 2001 From: liujiang <569804566@qq.com> Date: Thu, 29 May 2025 19:18:05 +0800 Subject: [PATCH] =?UTF-8?q?master=EF=BC=9A=E7=B3=BB=E7=BB=9F=E8=B0=83?= =?UTF-8?q?=E4=BC=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xkt/AdminAdvertRoundController.java | 8 ++-- .../controller/xkt/AdvertRoundController.java | 10 ++--- ...dUploadPicVO.java => AdRoundUpdateVO.java} | 28 +++++++----- .../xkt/dto/advertRound/AdRoundUpdateDTO.java | 45 +++++++++++++++++++ .../dto/advertRound/AdRoundUploadPicDTO.java | 33 -------------- .../AdvertRoundStorePageResDTO.java | 6 +++ .../xkt/service/IAdminAdvertRoundService.java | 4 +- .../xkt/service/IAdvertRoundService.java | 2 +- .../impl/AdminAdvertRoundServiceImpl.java | 4 +- .../service/impl/AdvertRoundServiceImpl.java | 19 ++++++-- .../resources/mapper/AdvertRoundMapper.xml | 2 + .../resources/mapper/StoreProductMapper.xml | 24 +++++----- 12 files changed, 110 insertions(+), 75 deletions(-) rename ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/{AdRoundUploadPicVO.java => AdRoundUpdateVO.java} (57%) create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundUpdateDTO.java delete mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundUploadPicDTO.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/AdminAdvertRoundController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/AdminAdvertRoundController.java index a443c7dc2..52aca477a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/AdminAdvertRoundController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/AdminAdvertRoundController.java @@ -7,9 +7,9 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.page.Page; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.web.controller.xkt.vo.adminAdvertRound.*; -import com.ruoyi.web.controller.xkt.vo.advertRound.AdRoundUploadPicVO; +import com.ruoyi.web.controller.xkt.vo.advertRound.AdRoundUpdateVO; import com.ruoyi.xkt.dto.adminAdvertRound.*; -import com.ruoyi.xkt.dto.advertRound.AdRoundUploadPicDTO; +import com.ruoyi.xkt.dto.advertRound.AdRoundUpdateDTO; import com.ruoyi.xkt.service.IAdminAdvertRoundService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -68,8 +68,8 @@ public class AdminAdvertRoundController extends XktBaseController { @ApiOperation(value = "管理员上传档口推广图", httpMethod = "PUT", response = R.class) @Log(title = "管理员上传档口推广图", businessType = BusinessType.UPDATE) @PutMapping("/upload/pic") - public R uploadAdvertPic(@Valid @RequestBody AdRoundUploadPicVO uploadPicVO) { - return R.ok(adminAdvertRoundService.uploadAdvertPic(BeanUtil.toBean(uploadPicVO, AdRoundUploadPicDTO.class))); + public R uploadAdvertPic(@Valid @RequestBody AdRoundUpdateVO uploadPicVO) { + return R.ok(adminAdvertRoundService.uploadAdvertPic(BeanUtil.toBean(uploadPicVO, AdRoundUpdateDTO.class))); } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/AdvertRoundController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/AdvertRoundController.java index 5686cae67..bcb70814f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/AdvertRoundController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/AdvertRoundController.java @@ -118,12 +118,12 @@ public class AdvertRoundController extends XktBaseController { } /** - * 档口上传推广图 + * 档口上传推广图 或 修改商品 */ - @ApiOperation(value = "档口上传推广图", httpMethod = "PUT", response = R.class) - @PutMapping("/upload/pic") - public R uploadAdvertPic(@Valid @RequestBody AdRoundUploadPicVO uploadPicVO) { - return R.ok(advertRoundService.uploadAdvertPic(BeanUtil.toBean(uploadPicVO, AdRoundUploadPicDTO.class))); + @ApiOperation(value = "档口上传推广图 或 修改商品", httpMethod = "PUT", response = R.class) + @PutMapping("/update") + public R updateAdvert(@Valid @RequestBody AdRoundUpdateVO uploadPicVO) { + return R.ok(advertRoundService.updateAdvert(BeanUtil.toBean(uploadPicVO, AdRoundUpdateDTO.class))); } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/AdRoundUploadPicVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/AdRoundUpdateVO.java similarity index 57% rename from ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/AdRoundUploadPicVO.java rename to ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/AdRoundUpdateVO.java index 216f80053..c87e45277 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/AdRoundUploadPicVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/advertRound/AdRoundUpdateVO.java @@ -6,7 +6,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.math.BigDecimal; @@ -15,11 +14,11 @@ import java.math.BigDecimal; * @version v1.0 * @date 2025/3/27 15:12 */ -@ApiModel("档口上传推广图") +@ApiModel("档口上传推广图 或 修改商品") @Data @Accessors(chain = true) @JsonInclude(JsonInclude.Include.NON_NULL) -public class AdRoundUploadPicVO { +public class AdRoundUpdateVO { @NotNull(message = "推广轮次ID不能为空!") @ApiModelProperty(value = "推广轮次ID") @@ -27,14 +26,19 @@ public class AdRoundUploadPicVO { @NotNull(message = "档口ID不能为空!") @ApiModelProperty(value = "档口ID") private Long storeId; - @NotBlank(message = "文件名称不能为空!") - @ApiModelProperty(value = "文件名称") - private String fileName; - @NotBlank(message = "文件路径不能为空!") - @ApiModelProperty(value = "文件路径") - private String fileUrl; - @NotNull(message = "文件大小不能为空!") - @ApiModelProperty(value = "文件大小") - private BigDecimal fileSize; + @ApiModelProperty(value = "推广图") + private ARUFileVO file; + @ApiModelProperty(value = "商品ID字符串") + private String prodIdStr; + + @Data + public static class ARUFileVO { + @ApiModelProperty(value = "文件名称") + private String fileName; + @ApiModelProperty(value = "文件路径") + private String fileUrl; + @ApiModelProperty(value = "文件大小") + private BigDecimal fileSize; + } } diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundUpdateDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundUpdateDTO.java new file mode 100644 index 000000000..b845fab7a --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundUpdateDTO.java @@ -0,0 +1,45 @@ +package com.ruoyi.xkt.dto.advertRound; + +import com.fasterxml.jackson.annotation.JsonInclude; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel("档口上传推广图 或 修改商品") +@Data +@Accessors(chain = true) +@JsonInclude(JsonInclude.Include.NON_NULL) +public class AdRoundUpdateDTO { + + + @NotNull(message = "推广轮次ID不能为空!") + @ApiModelProperty(value = "推广轮次ID") + private Long advertRoundId; + @NotNull(message = "档口ID不能为空!") + @ApiModelProperty(value = "档口ID") + private Long storeId; + @ApiModelProperty(value = "推广图") + private ARUFileDTO file; + @ApiModelProperty(value = "商品ID字符串") + private String prodIdStr; + + @Data + public static class ARUFileDTO { + @ApiModelProperty(value = "文件名称") + private String fileName; + @ApiModelProperty(value = "文件路径") + private String fileUrl; + @ApiModelProperty(value = "文件大小") + private BigDecimal fileSize; + } + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundUploadPicDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundUploadPicDTO.java deleted file mode 100644 index 5833e7dae..000000000 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdRoundUploadPicDTO.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.ruoyi.xkt.dto.advertRound; - -import com.fasterxml.jackson.annotation.JsonInclude; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; -import lombok.experimental.Accessors; - -import java.math.BigDecimal; - -/** - * @author liujiang - * @version v1.0 - * @date 2025/3/27 15:12 - */ -@ApiModel("档口上传推广图") -@Data -@Accessors(chain = true) -@JsonInclude(JsonInclude.Include.NON_NULL) -public class AdRoundUploadPicDTO { - - @ApiModelProperty(value = "推广轮次ID") - private Long advertRoundId; - @ApiModelProperty(value = "档口ID") - private Long storeId; - @ApiModelProperty(value = "文件名称") - private String fileName; - @ApiModelProperty(value = "文件路径") - private String fileUrl; - @ApiModelProperty(value = "文件大小") - private BigDecimal fileSize; - -} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdvertRoundStorePageResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdvertRoundStorePageResDTO.java index 821339486..38016b5d7 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdvertRoundStorePageResDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/AdvertRoundStorePageResDTO.java @@ -1,10 +1,13 @@ package com.ruoyi.xkt.dto.advertRound; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; +import java.util.Date; + /** * @author liujiang * @version v1.0 @@ -35,6 +38,9 @@ public class AdvertRoundStorePageResDTO { private String endTime; @ApiModelProperty(value = "出价") private String payPrice; + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @ApiModelProperty(value = "凭证日期") + private Date voucherDate; @ApiModelProperty(value = "投放状态") private Integer launchStatus; @ApiModelProperty(value = "投放状态") diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IAdminAdvertRoundService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IAdminAdvertRoundService.java index ac7510f9a..3c332ea28 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IAdminAdvertRoundService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IAdminAdvertRoundService.java @@ -2,7 +2,7 @@ package com.ruoyi.xkt.service; import com.ruoyi.common.core.page.Page; import com.ruoyi.xkt.dto.adminAdvertRound.*; -import com.ruoyi.xkt.dto.advertRound.AdRoundUploadPicDTO; +import com.ruoyi.xkt.dto.advertRound.AdRoundUpdateDTO; /** * 推广营销Service接口 @@ -42,7 +42,7 @@ public interface IAdminAdvertRoundService { * @param picDTO 上传推广图入参 * @return Integer */ - Integer uploadAdvertPic(AdRoundUploadPicDTO picDTO); + Integer uploadAdvertPic(AdRoundUpdateDTO picDTO); /** * 管理员拦截推广营销 diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/IAdvertRoundService.java b/xkt/src/main/java/com/ruoyi/xkt/service/IAdvertRoundService.java index afa065907..774d8bc03 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/IAdvertRoundService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/IAdvertRoundService.java @@ -104,7 +104,7 @@ public interface IAdvertRoundService { * @param picDTO 档口上传推广图入参 * @return Integer */ - Integer uploadAdvertPic(AdRoundUploadPicDTO picDTO); + Integer updateAdvert(AdRoundUpdateDTO picDTO); /** * 获取审核失败的拒绝理由 diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/AdminAdvertRoundServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/AdminAdvertRoundServiceImpl.java index ea7c419fa..f0ef3ad12 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/AdminAdvertRoundServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/AdminAdvertRoundServiceImpl.java @@ -17,7 +17,7 @@ import com.ruoyi.xkt.domain.AdvertRoundRecord; import com.ruoyi.xkt.domain.AdvertStoreFile; import com.ruoyi.xkt.domain.SysFile; import com.ruoyi.xkt.dto.adminAdvertRound.*; -import com.ruoyi.xkt.dto.advertRound.AdRoundUploadPicDTO; +import com.ruoyi.xkt.dto.advertRound.AdRoundUpdateDTO; import com.ruoyi.xkt.enums.*; import com.ruoyi.xkt.mapper.AdvertRoundMapper; import com.ruoyi.xkt.mapper.AdvertRoundRecordMapper; @@ -160,7 +160,7 @@ public class AdminAdvertRoundServiceImpl implements IAdminAdvertRoundService { */ @Override @Transactional - public Integer uploadAdvertPic(AdRoundUploadPicDTO picDTO) { + public Integer uploadAdvertPic(AdRoundUpdateDTO picDTO) { // TODO 判断当前是否是管理员 this.isSuperAdmin(); diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/AdvertRoundServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/AdvertRoundServiceImpl.java index 139913bd7..8d6c3d8c8 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/AdvertRoundServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/AdvertRoundServiceImpl.java @@ -562,15 +562,28 @@ public class AdvertRoundServiceImpl implements IAdvertRoundService { */ @Override @Transactional - public Integer uploadAdvertPic(AdRoundUploadPicDTO picDTO) { - AdvertRound advertRound = Optional.ofNullable(this.advertRoundMapper.selectOne(new LambdaQueryWrapper() + public Integer updateAdvert(AdRoundUpdateDTO picDTO) { + + // TODO 若为 已过期、已退订,则不可修改 + + // TODO 若为 待投放,判断上传时间是否为 推广开始前一晚 22:20 分 + + // TODO 若为 投放中,则判断 voucherDate 是否等于当天,若是,则再判断 是否晚于22:20分,若是,则不可编辑 + + + + + /* AdvertRound advertRound = Optional.ofNullable(this.advertRoundMapper.selectOne(new LambdaQueryWrapper() .eq(AdvertRound::getId, picDTO.getAdvertRoundId()).eq(AdvertRound::getDelFlag, Constants.UNDELETED))) .orElseThrow(() -> new ServiceException("推广位不存在!", HttpStatus.ERROR)); SysFile file = BeanUtil.toBean(picDTO, SysFile.class); int count = this.fileMapper.insert(file); // 更新推广位的图片ID advertRound.setPicId(file.getId()); - return this.advertRoundMapper.updateById(advertRound); + return this.advertRoundMapper.updateById(advertRound);*/ + + return null; + } /** diff --git a/xkt/src/main/resources/mapper/AdvertRoundMapper.xml b/xkt/src/main/resources/mapper/AdvertRoundMapper.xml index f64810763..11c2aaf2a 100644 --- a/xkt/src/main/resources/mapper/AdvertRoundMapper.xml +++ b/xkt/src/main/resources/mapper/AdvertRoundMapper.xml @@ -32,6 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" s.store_name, ar.type_id, CONCAT('位置', ar.position) AS position, + ar.voucher_date, ar.start_time, ar.end_time, ar.pay_price, @@ -71,6 +72,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" s.store_name, a.platform_id, ar.type_id, + ar.voucher_date, CONCAT('位置', ar.position) AS position, ar.start_time, ar.end_time, diff --git a/xkt/src/main/resources/mapper/StoreProductMapper.xml b/xkt/src/main/resources/mapper/StoreProductMapper.xml index b5fe15102..123ff1e72 100644 --- a/xkt/src/main/resources/mapper/StoreProductMapper.xml +++ b/xkt/src/main/resources/mapper/StoreProductMapper.xml @@ -40,22 +40,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" sp.id, s.store_name AS storeName, sf.file_url AS mainPic, - spca1.dict_value AS season, - spca2.dict_value AS style, + spca.suitable_season AS season, + spca.style AS style, spcp.min_price AS prodPrice, spc1.`name` AS prodCateName, spc2.id AS parCateId, spc2.`name` AS parCateName FROM store_product sp - LEFT JOIN store s ON sp.store_id = s.id - LEFT JOIN store_product_file spf ON sp.id = spf.store_prod_id AND spf.del_flag = 0 AND spf.file_type = 1 AND spf.order_num = 1 - LEFT JOIN sys_file sf ON spf.file_id = sf.id - LEFT JOIN store_product_category_attribute spca1 ON sp.id = spca1.store_prod_id AND spca1.dict_type = 'suitable_season' - LEFT JOIN sys_product_category spc1 ON sp.prod_cate_id = spc1.id - LEFT JOIN sys_product_category spc2 ON spc1.parent_id = spc2.id - LEFT JOIN store_product_category_attribute spca2 ON sp.id = spca2.store_prod_id AND spca2.dict_type = 'style' - LEFT JOIN ( SELECT store_prod_id, MIN( price ) AS min_price FROM store_product_color_price GROUP BY store_prod_id ) spcp ON sp.id = spcp.store_prod_id + LEFT JOIN store s ON sp.store_id = s.id + LEFT JOIN store_product_file spf ON sp.id = spf.store_prod_id AND spf.del_flag = 0 AND spf.file_type = 1 AND spf.order_num = 1 + LEFT JOIN sys_file sf ON spf.file_id = sf.id + LEFT JOIN store_product_category_attribute spca ON sp.id = spca.store_prod_id + LEFT JOIN sys_product_category spc1 ON sp.prod_cate_id = spc1.id + LEFT JOIN sys_product_category spc2 ON spc1.parent_id = spc2.id + LEFT JOIN ( SELECT store_prod_id, MIN( price ) AS min_price FROM store_product_color_price GROUP BY store_prod_id ) spcp ON sp.id = spcp.store_prod_id WHERE sp.del_flag = 0 AND sp.id IN @@ -66,12 +65,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"