From 21c14363d19321b976054e9ab954f4a413b64010 Mon Sep 17 00:00:00 2001 From: liujiang <569804566@qq.com> Date: Sun, 13 Jul 2025 17:56:17 +0800 Subject: [PATCH] =?UTF-8?q?master=EF=BC=9A=E7=B3=BB=E7=BB=9F=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E8=B0=83=E6=95=B4=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/xkt/NoticeController.java | 10 ++++ .../xkt/vo/notice/NoticeCreateVO.java | 2 +- .../xkt/vo/notice/NoticeLatest10ResVO.java | 25 ++++++++ .../storeProdColorSize/StoreSaleSnResVO.java | 58 ++++++++++--------- .../vo/storeProdColorSize/StoreSaleSnVO.java | 2 +- .../java/com/ruoyi/quartz/task/XktTask.java | 2 +- .../java/com/ruoyi/xkt/domain/Notice.java | 2 +- .../app/strength/APPStrengthStoreDTO.java | 2 +- .../xkt/dto/notice/NoticeLatest10ResDTO.java | 25 ++++++++ .../storeProdColorSize/StoreSaleSnResDTO.java | 13 ++++- .../ruoyi/xkt/enums/NoticePerpetuityType.java | 36 ++++++++++++ .../com/ruoyi/xkt/service/INoticeService.java | 10 ++++ .../xkt/service/impl/NoticeServiceImpl.java | 43 +++++++++++--- .../service/impl/StoreProductServiceImpl.java | 7 ++- .../service/impl/WebsiteAPPServiceImpl.java | 4 +- .../mapper/StoreProductColorSizeMapper.xml | 4 ++ 16 files changed, 197 insertions(+), 48 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/notice/NoticeLatest10ResVO.java create mode 100644 xkt/src/main/java/com/ruoyi/xkt/dto/notice/NoticeLatest10ResDTO.java create mode 100644 xkt/src/main/java/com/ruoyi/xkt/enums/NoticePerpetuityType.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/NoticeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/NoticeController.java index 2505b9181..fb2c7bf25 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/NoticeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/NoticeController.java @@ -16,6 +16,8 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * 公告 信息操作处理 * @@ -66,4 +68,12 @@ public class NoticeController extends BaseController { return R.ok(noticeService.page(BeanUtil.toBean(pageVO, NoticePageDTO.class))); } + @PreAuthorize("@ss.hasAnyRoles('admin,general_admin,store')||@ss.hasSupplierSubRole()") + @ApiOperation(value = "档口首页获取正在生效的公告列表", httpMethod = "GET", response = R.class) + @GetMapping("/list") + public R> latest10() { + return R.ok(BeanUtil.copyToList(noticeService.latest10(), NoticeLatest10ResVO.class)); + } + + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/notice/NoticeCreateVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/notice/NoticeCreateVO.java index db5cc5e2b..c87a885c7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/notice/NoticeCreateVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/notice/NoticeCreateVO.java @@ -27,7 +27,7 @@ public class NoticeCreateVO { @ApiModelProperty(value = "公告标题", required = true) private String noticeTitle; @NotNull(message = "公告类型不能为空") - @ApiModelProperty(value = "公告类型", required = true) + @ApiModelProperty(value = "公告类型 1 通知 2 公告", required = true) private Integer noticeType; @NotBlank(message = "公告内容不能为空") @ApiModelProperty(value = "公告内容", required = true) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/notice/NoticeLatest10ResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/notice/NoticeLatest10ResVO.java new file mode 100644 index 000000000..b472901ff --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/notice/NoticeLatest10ResVO.java @@ -0,0 +1,25 @@ +package com.ruoyi.web.controller.xkt.vo.notice; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel +@Data +@Accessors(chain = true) +public class NoticeLatest10ResVO { + + @ApiModelProperty(value = "公告ID") + @JsonProperty(value = "noticeId") + private Long id; + @ApiModelProperty(value = "公告标题") + private String noticeTitle; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreSaleSnResVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreSaleSnResVO.java index 93a2f1a13..46a162581 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreSaleSnResVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreSaleSnResVO.java @@ -4,10 +4,8 @@ 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; -import java.util.List; /** * @author liujiang @@ -19,31 +17,35 @@ import java.util.List; @JsonInclude(JsonInclude.Include.NON_NULL) public class StoreSaleSnResVO { - @ApiModelProperty(value = "错误列表") - List failList; - @ApiModelProperty(value = "成功列表") - List successList; - - @Data - @ApiModel - @Accessors(chain = true) - public static class SPSDetailVO { - @ApiModelProperty(value = "档口商品ID") - private Long storeProdId; - @ApiModelProperty(value = "档口商品颜色尺码ID") - private Long storeProdColorId; - @ApiModelProperty(value = "档口颜色ID") - private Long storeColorId; - @ApiModelProperty(value = "颜色") - private String colorName; - @ApiModelProperty(value = "商品货号") - private String prodArtNum; - @ApiModelProperty(value = "生产价格") - private BigDecimal producePrice; - @ApiModelProperty(value = "尺码") - private Integer size; - @ApiModelProperty(value = "销售条码") - private String sn; - } + @ApiModelProperty(value = "是否成功") + private Boolean success; + @ApiModelProperty(value = "档口商品ID") + private Long storeProdId; + @ApiModelProperty(value = "档口商品颜色尺码ID") + private Long storeProdColorId; + @ApiModelProperty(value = "颜色") + private String colorName; + @ApiModelProperty(value = "尺码") + private Integer size; + @ApiModelProperty(value = "商品货号") + private String prodArtNum; + @ApiModelProperty(value = "销售条码") + private String sn; + @ApiModelProperty(value = "销售单价") + private BigDecimal price; + @ApiModelProperty(value = "档口客户优惠金额") + private BigDecimal discount; + @ApiModelProperty(value = "大小码加价") + private BigDecimal overPrice; + @ApiModelProperty(value = "标准尺码") + private Integer standard; + @ApiModelProperty(value = "[退货扫码时才有]优惠后销售单价") + private BigDecimal discountedPrice; + @ApiModelProperty(value = "[退货扫码时才有]销售金额") + private BigDecimal amount; + @ApiModelProperty(value = "[退货扫码时才有]销售数量") + private BigDecimal quantity; + @ApiModelProperty(value = "[退货扫码时才有]其它优惠") + private BigDecimal otherDiscount; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreSaleSnVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreSaleSnVO.java index 0b056f3b5..3d50e814f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreSaleSnVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeProdColorSize/StoreSaleSnVO.java @@ -28,7 +28,7 @@ public class StoreSaleSnVO { @ApiModelProperty(value = "是否退货", required = true) private Boolean refund; @NotBlank(message = "条码不能为空!") - @ApiModelProperty(value = "条码") + @ApiModelProperty(value = "条码", required = true) private String sn; } diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java index 4fe606d69..52c875c82 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java @@ -1512,7 +1512,7 @@ public class XktTask { Notice notice = new Notice().setNoticeTitle(storeName + "商品上新啦!").setNoticeType(NoticeType.NOTICE.getValue()) .setNoticeContent(storeName + "上新了货号为: " + storeProd.getProdArtNum() + " 的商品!请及时关注!") .setOwnerType(NoticeOwnerType.STORE.getValue()).setStoreId(storeProd.getStoreId()) - .setUserId(userId).setPerpetuity(1); + .setUserId(userId).setPerpetuity(NoticePerpetuityType.PERMANENT.getValue()); this.noticeMapper.insert(notice); final Date voucherDate = java.sql.Date.valueOf(LocalDate.now()); // 新增消息通知列表 diff --git a/xkt/src/main/java/com/ruoyi/xkt/domain/Notice.java b/xkt/src/main/java/com/ruoyi/xkt/domain/Notice.java index 1b9bd9d4e..ee86aab92 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/domain/Notice.java +++ b/xkt/src/main/java/com/ruoyi/xkt/domain/Notice.java @@ -55,7 +55,7 @@ public class Notice extends XktBaseEntity { */ private Date effectEnd; /** - * 是否永久生效 + * 是否永久生效 1 存在有效期 2 永久有效 */ private Integer perpetuity; diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/strength/APPStrengthStoreDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/strength/APPStrengthStoreDTO.java index 0f2161a9c..592e36269 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/strength/APPStrengthStoreDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/advertRound/app/strength/APPStrengthStoreDTO.java @@ -18,7 +18,7 @@ public class APPStrengthStoreDTO { @ApiModelProperty(value = "会员等级") private Integer memberLevel; @ApiModelProperty(value = "档口ID") - private String storeId; + private Long storeId; @ApiModelProperty(value = "档口名称") private String storeName; @ApiModelProperty(value = "商品第一张主图路径") diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/notice/NoticeLatest10ResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/notice/NoticeLatest10ResDTO.java new file mode 100644 index 000000000..dd3dd8456 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/notice/NoticeLatest10ResDTO.java @@ -0,0 +1,25 @@ +package com.ruoyi.xkt.dto.notice; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@ApiModel +@Data +@Accessors(chain = true) +public class NoticeLatest10ResDTO { + + @ApiModelProperty(value = "公告ID") + @JsonProperty(value = "noticeId") + private Long id; + @ApiModelProperty(value = "公告标题") + private String noticeTitle; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdColorSize/StoreSaleSnResDTO.java b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdColorSize/StoreSaleSnResDTO.java index af1708917..569958dc7 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdColorSize/StoreSaleSnResDTO.java +++ b/xkt/src/main/java/com/ruoyi/xkt/dto/storeProdColorSize/StoreSaleSnResDTO.java @@ -15,7 +15,6 @@ import java.util.List; */ @Data @Accessors(chain = true) -@JsonInclude(JsonInclude.Include.NON_NULL) public class StoreSaleSnResDTO { @ApiModelProperty(value = "是否成功") @@ -36,5 +35,17 @@ public class StoreSaleSnResDTO { private BigDecimal price; @ApiModelProperty(value = "档口客户优惠金额") private BigDecimal discount; + @ApiModelProperty(value = "大小码加价") + private BigDecimal overPrice; + @ApiModelProperty(value = "标准尺码") + private Integer standard; + @ApiModelProperty(value = "[退货扫码时才有]优惠后销售单价") + private BigDecimal discountedPrice; + @ApiModelProperty(value = "[退货扫码时才有]销售金额") + private BigDecimal amount; + @ApiModelProperty(value = "[退货扫码时才有]销售数量") + private BigDecimal quantity; + @ApiModelProperty(value = "[退货扫码时才有]其它优惠") + private BigDecimal otherDiscount; } diff --git a/xkt/src/main/java/com/ruoyi/xkt/enums/NoticePerpetuityType.java b/xkt/src/main/java/com/ruoyi/xkt/enums/NoticePerpetuityType.java new file mode 100644 index 000000000..1d26f45f8 --- /dev/null +++ b/xkt/src/main/java/com/ruoyi/xkt/enums/NoticePerpetuityType.java @@ -0,0 +1,36 @@ +package com.ruoyi.xkt.enums; + +import com.ruoyi.common.constant.HttpStatus; +import com.ruoyi.common.exception.ServiceException; +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 通知类型 + * + * @author liujiang + * @date 2025-04-02 23:42 + */ +@Getter +@AllArgsConstructor +public enum NoticePerpetuityType { + + // 存在有效期 + TEMPORARY(1, "存在有效期"), + // 永久有效 + PERMANENT(2, "永久有效"), + + ; + + private final Integer value; + private final String label; + + public static NoticePerpetuityType of(Integer value) { + for (NoticePerpetuityType e : NoticePerpetuityType.values()) { + if (e.getValue().equals(value)) { + return e; + } + } + throw new ServiceException("通知类型不存在!", HttpStatus.ERROR); + } +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/INoticeService.java b/xkt/src/main/java/com/ruoyi/xkt/service/INoticeService.java index 5620b7953..3c194c141 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/INoticeService.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/INoticeService.java @@ -3,6 +3,8 @@ package com.ruoyi.xkt.service; import com.ruoyi.common.core.page.Page; import com.ruoyi.xkt.dto.notice.*; +import java.util.List; + /** * 公告 服务层 * @@ -64,4 +66,12 @@ public interface INoticeService { */ Integer createSingleNotice(Long userId, String title, Integer noticeType, Integer ownerType, Long storeId, Integer targetNoticeType, String content); + + /** + * 获取最新的10条公告 + * + * @return List + */ + List latest10(); + } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/NoticeServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/NoticeServiceImpl.java index 953df27aa..416222dc8 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/NoticeServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/NoticeServiceImpl.java @@ -14,9 +14,7 @@ import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.xkt.domain.Notice; import com.ruoyi.xkt.domain.UserNotice; import com.ruoyi.xkt.dto.notice.*; -import com.ruoyi.xkt.enums.NoticeOwnerType; -import com.ruoyi.xkt.enums.NoticeReadType; -import com.ruoyi.xkt.enums.UserNoticeType; +import com.ruoyi.xkt.enums.*; import com.ruoyi.xkt.mapper.*; import com.ruoyi.xkt.service.INoticeService; import lombok.RequiredArgsConstructor; @@ -27,10 +25,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; -import java.util.Date; -import java.util.List; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; /** @@ -59,7 +54,7 @@ public class NoticeServiceImpl implements INoticeService { @Transactional public Integer create(NoticeCreateDTO createDTO) { nullFilter(createDTO.getOwnerType(), createDTO.getStoreId(), createDTO.getPerpetuity(), createDTO.getEffectStart(), createDTO.getEffectEnd()); - Notice notice = BeanUtil.toBean(createDTO, Notice.class).setUserId(SecurityUtils.getUserId()); + Notice notice = BeanUtil.toBean(createDTO, Notice.class).setNoticeType(NoticeType.ANNOUNCEMENT.getValue()).setUserId(SecurityUtils.getUserId()); notice.setCreateBy(SecurityUtils.getUsername()); int count = this.noticeMapper.insert(notice); final Date voucherDate = java.sql.Date.valueOf(LocalDate.now()); @@ -97,6 +92,7 @@ public class NoticeServiceImpl implements INoticeService { .eq(Notice::getId, editDTO.getNoticeId()).eq(Notice::getDelFlag, Constants.UNDELETED))) .orElseThrow(() -> new ServiceException("公告不存在!", HttpStatus.ERROR)); BeanUtil.copyProperties(editDTO, notice); + notice.setNoticeType(NoticeType.ANNOUNCEMENT.getValue()); notice.setUpdateBy(SecurityUtils.getUsername()); return this.noticeMapper.updateById(notice); } @@ -153,7 +149,9 @@ public class NoticeServiceImpl implements INoticeService { @Override @Transactional(readOnly = true) public Page page(NoticePageDTO pageDTO) { + // 查询公告 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper().eq(Notice::getDelFlag, Constants.UNDELETED) + .eq(Notice::getNoticeType, NoticeType.ANNOUNCEMENT.getValue()) .eq(Notice::getOwnerType, pageDTO.getOwnerType()).orderByDesc(Notice::getCreateTime); if (StringUtils.isNotBlank(pageDTO.getNoticeTitle())) { queryWrapper.like(Notice::getNoticeTitle, pageDTO.getNoticeTitle()); @@ -196,11 +194,38 @@ public class NoticeServiceImpl implements INoticeService { */ public Integer createSingleNotice(Long userId, String title, Integer noticeType, Integer ownerType, Long storeId, Integer targetNoticeType, String content) { Notice notice = new Notice().setNoticeTitle(title).setNoticeType(noticeType).setOwnerType(ownerType) - .setStoreId(storeId).setUserId(userId).setPerpetuity(1).setNoticeContent(content); + .setStoreId(storeId).setUserId(userId).setPerpetuity(NoticePerpetuityType.PERMANENT.getValue()) + .setNoticeContent(content); this.noticeMapper.insert(notice); return this.userNoticeMapper.insert(new UserNotice().setNoticeId(notice.getId()).setUserId(userId).setReadStatus(NoticeReadType.UN_READ.getValue()) .setVoucherDate(java.sql.Date.valueOf(LocalDate.now())).setTargetNoticeType(targetNoticeType)); } + /** + * 获取最新的10条公告 + * + * @return List + */ + @Override + @Transactional(readOnly = true) + public List latest10() { + List noticeList = this.noticeMapper.selectList(new LambdaQueryWrapper() + .eq(Notice::getNoticeType, NoticeType.ANNOUNCEMENT.getValue()).eq(Notice::getDelFlag, Constants.UNDELETED) + .eq(Notice::getOwnerType, NoticeOwnerType.SYSTEM.getValue()).orderByDesc(Notice::getCreateTime)); + if (CollectionUtils.isEmpty(noticeList)) { + return new ArrayList<>(); + } + final Date now = new Date(); + return noticeList.stream().filter(x -> { + // 存在有效期,则判断是否在有效期内 + if (Objects.equals(x.getPerpetuity(), NoticePerpetuityType.TEMPORARY.getValue())) { + return x.getEffectStart().before(now) && x.getEffectEnd().after(now); + } + return Boolean.TRUE; + }).limit(10) + .map(x -> new NoticeLatest10ResDTO().setId(x.getId()).setNoticeTitle(x.getNoticeTitle())) + .collect(Collectors.toList()); + } + } 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 565ed100f..60c5077ba 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 @@ -1096,7 +1096,7 @@ public class StoreProductServiceImpl implements IStoreProductService { Notice notice = new Notice().setNoticeTitle(storeName + "商品上新啦!").setNoticeType(NoticeType.NOTICE.getValue()) .setNoticeContent(storeName + "上新了货号为: " + storeProd.getProdArtNum() + " 的商品!请及时关注!") .setOwnerType(NoticeOwnerType.STORE.getValue()).setStoreId(storeProd.getStoreId()) - .setUserId(userId).setPerpetuity(1); + .setUserId(userId).setPerpetuity(NoticePerpetuityType.PERMANENT.getValue()); this.noticeMapper.insert(notice); final Date voucherDate = java.sql.Date.valueOf(LocalDate.now()); // 新增消息通知列表 @@ -1131,7 +1131,7 @@ public class StoreProductServiceImpl implements IStoreProductService { Notice notice = new Notice().setNoticeTitle(storeName + "商品更新啦!").setNoticeType(NoticeType.NOTICE.getValue()) .setNoticeContent(storeName + "更新了货号为: " + storeProd.getProdArtNum() + " 的商品!请及时关注!") .setOwnerType(NoticeOwnerType.STORE.getValue()).setStoreId(storeProd.getStoreId()) - .setUserId(userId).setPerpetuity(1); + .setUserId(userId).setPerpetuity(NoticePerpetuityType.PERMANENT.getValue()); this.noticeMapper.insert(notice); final Date voucherDate = java.sql.Date.valueOf(LocalDate.now()); // 新增消息通知列表 @@ -1168,7 +1168,8 @@ public class StoreProductServiceImpl implements IStoreProductService { final Date voucherDate = java.sql.Date.valueOf(LocalDate.now()); storeProdList.forEach(storeProd -> { // 新增一条档口消息通知 - Notice notice = new Notice().setNoticeType(NoticeType.NOTICE.getValue()).setUserId(userId).setPerpetuity(1) + Notice notice = new Notice().setNoticeType(NoticeType.NOTICE.getValue()).setUserId(userId) + .setPerpetuity(NoticePerpetuityType.PERMANENT.getValue()) .setOwnerType(NoticeOwnerType.STORE.getValue()).setStoreId(storeProd.getStoreId()) .setNoticeTitle(ObjectUtils.isNotEmpty(store) ? store.getStoreName() : "" + "商品" + (offSale ? "下架" : "重新上架") + "啦!") .setNoticeContent(ObjectUtils.isNotEmpty(store) ? store.getStoreName() : "" + (offSale ? "下架" : "重新上架") diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsiteAPPServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsiteAPPServiceImpl.java index a5ea508ee..debd803ef 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsiteAPPServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/WebsiteAPPServiceImpl.java @@ -379,11 +379,11 @@ public class WebsiteAPPServiceImpl implements IWebsiteAPPService { Long userId = SecurityUtils.getUserIdSafe(); Map focusStoreIdMap = ObjectUtils.isEmpty(userId) ? new HashMap<>() : this.userSubMapper.selectList(new LambdaQueryWrapper() - .eq(UserSubscriptions::getUserId, userId).in(UserSubscriptions::getStoreId, storeList) + .eq(UserSubscriptions::getUserId, userId).in(UserSubscriptions::getStoreId, storeIdList) .eq(UserSubscriptions::getDelFlag, Constants.UNDELETED)).stream() .collect(Collectors.toMap(UserSubscriptions::getStoreId, UserSubscriptions::getStoreId)); List list = storeList.stream().map(store -> BeanUtil.toBean(store, APPStrengthStoreDTO.class) - .setFocus(focusStoreIdMap.containsKey(store.getId())).setMainPicUrl(storeFileMap.get(store.getId()))) + .setStoreId(store.getId()).setFocus(focusStoreIdMap.containsKey(store.getId())).setMainPicUrl(storeFileMap.get(store.getId()))) .collect(Collectors.toList()); // 设置档口会员等级 list.forEach(x -> { diff --git a/xkt/src/main/resources/mapper/StoreProductColorSizeMapper.xml b/xkt/src/main/resources/mapper/StoreProductColorSizeMapper.xml index 6239ee68c..7ebb62ac3 100644 --- a/xkt/src/main/resources/mapper/StoreProductColorSizeMapper.xml +++ b/xkt/src/main/resources/mapper/StoreProductColorSizeMapper.xml @@ -27,6 +27,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" spc.id AS storeProdColorId, spc.color_name, spcs.size, + sp.over_price, + spcs.standard, sp.prod_art_num, spcp.price, ( SELECT discount FROM store_customer_product_discount WHERE store_cus_id = #{storeCusId} AND store_prod_color_id = spc.id AND del_flag = 0 ) AS discount @@ -47,6 +49,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" spc.id AS storeProdColorId, spc.color_name, spcs.size, + sp.over_price, + spcs.standard, sp.prod_art_num, spcp.price, ( SELECT discount FROM store_customer_product_discount WHERE store_cus_id = #{storeCusId} AND store_prod_color_id = spc.id AND del_flag = 0 ) AS discount