From 05fe558f722590aa706c2296c8a9a619d12b42be Mon Sep 17 00:00:00 2001 From: rentaiming <806181062@qq.com> Date: 星期一, 27 五月 2024 14:35:06 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java | 6 + ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java | 11 + ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java | 2 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberLikeService.java | 16 ++ ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/Article.java | 2 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberLike.java | 62 ++++++++++ ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/SensitiveWords.java | 2 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeckillService.java | 5 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleCommentsService.java | 1 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/SensitiveWordsController.java | 11 - ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/SensitiveWordsMapper.java | 2 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java | 34 ++++- ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java | 7 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsSeckillController.java | 15 ++ ruoyi-modules/ruoyi-article/src/main/resources/mapper/article/MemberLikeMapper.xml | 5 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java | 3 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberLikeServiceImpl.java | 21 +++ ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/ArticleController.java | 4 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java | 7 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constants/NotificationTypeConstant.java | 11 + ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/ISensitiveWordsService.java | 3 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java | 31 ++++- ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/ArticleCommentsMapper.java | 2 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/MemberLikeMapper.java | 16 ++ ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsGroupPurchaseController.java | 15 ++ ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java | 5 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/ArticleMapper.java | 2 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java | 2 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/SensitiveWordsServiceImpl.java | 10 - ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberLikeController.java | 20 +++ 30 files changed, 278 insertions(+), 55 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constants/NotificationTypeConstant.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constants/NotificationTypeConstant.java new file mode 100644 index 0000000..b5e2e23 --- /dev/null +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constants/NotificationTypeConstant.java @@ -0,0 +1,11 @@ +package com.ruoyi.system.api.constants; + +/** + * @author mitao + * @date 2024/5/27 + */ +public interface NotificationTypeConstant { + + String SECKILL = "seckill"; + String GROUP_PURCHASE = "group_purchase"; +} diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/ArticleController.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/ArticleController.java index 660147e..f5dfd23 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/ArticleController.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/ArticleController.java @@ -1,7 +1,7 @@ package com.ruoyi.article.controller; -import com.ruoyi.article.domain.pojo.Article; +import com.ruoyi.article.domain.Article; import com.ruoyi.article.dto.ArticleDTO; import com.ruoyi.article.service.IArticleService; import com.ruoyi.article.vo.ArticleCommentsVO; @@ -12,9 +12,9 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.formula.functions.T; +import javax.annotation.Resource; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; - import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberLikeController.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberLikeController.java new file mode 100644 index 0000000..9dc38ce --- /dev/null +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/MemberLikeController.java @@ -0,0 +1,20 @@ +package com.ruoyi.article.controller; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + * <p> + * 用户点赞关联表 前端控制器 + * </p> + * + * @author mitao + * @since 2024-05-27 + */ +@RestController +@RequestMapping("/member-like") +public class MemberLikeController { + +} diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/SensitiveWordsController.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/SensitiveWordsController.java index 44ef633..0f17b8d 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/SensitiveWordsController.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/SensitiveWordsController.java @@ -1,21 +1,16 @@ package com.ruoyi.article.controller; -import com.ruoyi.article.domain.pojo.Article; -import com.ruoyi.article.domain.pojo.SensitiveWords; -import com.ruoyi.article.dto.ArticleDTO; +import com.ruoyi.article.domain.SensitiveWords; import com.ruoyi.article.service.ISensitiveWordsService; import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.utils.page.PageDTO; import io.swagger.annotations.ApiOperation; +import java.util.List; +import javax.annotation.Resource; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; - import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; -import java.util.List; /** * <p> diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/pojo/Article.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/Article.java similarity index 98% rename from ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/pojo/Article.java rename to ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/Article.java index 6aca620..b454e5e 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/pojo/Article.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/Article.java @@ -1,4 +1,4 @@ -package com.ruoyi.article.domain.pojo; +package com.ruoyi.article.domain; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/pojo/ArticleComments.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java similarity index 98% rename from ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/pojo/ArticleComments.java rename to ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java index c744096..01597c6 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/pojo/ArticleComments.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/ArticleComments.java @@ -1,4 +1,4 @@ -package com.ruoyi.article.domain.pojo; +package com.ruoyi.article.domain; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberLike.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberLike.java new file mode 100644 index 0000000..1666013 --- /dev/null +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/MemberLike.java @@ -0,0 +1,62 @@ +package com.ruoyi.article.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.time.LocalDateTime; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * <p> + * 用户点赞关联表 + * </p> + * + * @author mitao + * @since 2024-05-27 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("t_member_like") +@ApiModel(value = "MemberLike对象", description = "用户点赞关联表") +public class MemberLike implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty(value = "会员id") + private Long memberId; + + @ApiModelProperty(value = "资讯id/评论id/回复id") + private Long articleId; + + @ApiModelProperty(value = "1 点赞资讯,2 点赞评论, 3 点赞回复") + private Long type; + + @ApiModelProperty(value = "创建者") + private String createBy; + + @ApiModelProperty(value = "创建时间") + private LocalDateTime createTime; + + @ApiModelProperty(value = "更新者") + private String updateBy; + + @ApiModelProperty(value = "更新时间") + private LocalDateTime updateTime; + + @ApiModelProperty(value = "删除标志(0代表存在 1代表删除)") + private Integer delFlag; + + @ApiModelProperty(value = "点赞数") + private Long likeNum; + + +} diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/pojo/SensitiveWords.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/SensitiveWords.java similarity index 97% rename from ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/pojo/SensitiveWords.java rename to ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/SensitiveWords.java index 3a9e1e5..a07a293 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/pojo/SensitiveWords.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/domain/SensitiveWords.java @@ -1,4 +1,4 @@ -package com.ruoyi.article.domain.pojo; +package com.ruoyi.article.domain; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.IdType; diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/ArticleCommentsMapper.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/ArticleCommentsMapper.java index 6543e59..f6af9fb 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/ArticleCommentsMapper.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/ArticleCommentsMapper.java @@ -1,7 +1,7 @@ package com.ruoyi.article.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.ruoyi.article.domain.pojo.ArticleComments; +import com.ruoyi.article.domain.ArticleComments; /** * <p> diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/ArticleMapper.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/ArticleMapper.java index 2df9bcb..213c012 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/ArticleMapper.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/ArticleMapper.java @@ -1,7 +1,7 @@ package com.ruoyi.article.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.ruoyi.article.domain.pojo.Article; +import com.ruoyi.article.domain.Article; /** * <p> diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/MemberLikeMapper.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/MemberLikeMapper.java new file mode 100644 index 0000000..e1c0493 --- /dev/null +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/MemberLikeMapper.java @@ -0,0 +1,16 @@ +package com.ruoyi.article.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.article.domain.MemberLike; + +/** + * <p> + * 用户点赞关联表 Mapper 接口 + * </p> + * + * @author mitao + * @since 2024-05-27 + */ +public interface MemberLikeMapper extends BaseMapper<MemberLike> { + +} diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/SensitiveWordsMapper.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/SensitiveWordsMapper.java index 00a0c20..1c75036 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/SensitiveWordsMapper.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/mapper/SensitiveWordsMapper.java @@ -1,7 +1,7 @@ package com.ruoyi.article.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.ruoyi.article.domain.pojo.SensitiveWords; +import com.ruoyi.article.domain.SensitiveWords; /** * <p> diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleCommentsService.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleCommentsService.java index f94bad4..39ce0b5 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleCommentsService.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleCommentsService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.article.domain.pojo.ArticleComments; import com.ruoyi.article.dto.ArticleCommentsDTO; +import com.ruoyi.article.domain.ArticleComments; /** * <p> diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java index 9624520..5b522b4 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java @@ -1,11 +1,10 @@ package com.ruoyi.article.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.ruoyi.article.domain.pojo.Article; +import com.ruoyi.article.domain.Article; import com.ruoyi.article.dto.ArticleDTO; import com.ruoyi.article.vo.ArticleCommentsVO; import com.ruoyi.common.core.utils.page.PageDTO; -import com.ruoyi.system.api.domain.MemberAddress; /** * <p> diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberLikeService.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberLikeService.java new file mode 100644 index 0000000..b5d537a --- /dev/null +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IMemberLikeService.java @@ -0,0 +1,16 @@ +package com.ruoyi.article.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.article.domain.MemberLike; + +/** + * <p> + * 用户点赞关联表 服务类 + * </p> + * + * @author mitao + * @since 2024-05-27 + */ +public interface IMemberLikeService extends IService<MemberLike> { + +} diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/ISensitiveWordsService.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/ISensitiveWordsService.java index e495227..3c1a2f9 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/ISensitiveWordsService.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/ISensitiveWordsService.java @@ -1,8 +1,7 @@ package com.ruoyi.article.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.ruoyi.article.domain.pojo.SensitiveWords; - +import com.ruoyi.article.domain.SensitiveWords; import java.util.List; /** diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java index 55ac505..b16b40c 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.article.domain.pojo.Article; import com.ruoyi.article.domain.pojo.ArticleComments; +import com.ruoyi.article.domain.Article; import com.ruoyi.article.dto.ArticleDTO; import com.ruoyi.article.mapper.ArticleMapper; import com.ruoyi.article.service.IArticleCommentsService; @@ -23,6 +24,7 @@ import util.HuaWeiOBSUtil; import javax.annotation.Resource; +import org.springframework.stereotype.Service; import java.io.IOException; import java.time.LocalDateTime; import java.util.ArrayList; diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberLikeServiceImpl.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberLikeServiceImpl.java new file mode 100644 index 0000000..a855882 --- /dev/null +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/MemberLikeServiceImpl.java @@ -0,0 +1,21 @@ +package com.ruoyi.article.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.article.domain.MemberLike; +import com.ruoyi.article.mapper.MemberLikeMapper; +import com.ruoyi.article.service.IMemberLikeService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 用户点赞关联表 服务实现类 + * </p> + * + * @author mitao + * @since 2024-05-27 + */ +@Service +public class MemberLikeServiceImpl extends ServiceImpl<MemberLikeMapper, MemberLike> implements + IMemberLikeService { + +} diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/SensitiveWordsServiceImpl.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/SensitiveWordsServiceImpl.java index 4f6387f..0aed3ed 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/SensitiveWordsServiceImpl.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/SensitiveWordsServiceImpl.java @@ -2,17 +2,13 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.article.domain.pojo.Article; -import com.ruoyi.article.domain.pojo.SensitiveWords; +import com.ruoyi.article.domain.SensitiveWords; import com.ruoyi.article.mapper.SensitiveWordsMapper; import com.ruoyi.article.service.ISensitiveWordsService; -import com.ruoyi.common.core.utils.page.PageDTO; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; import java.util.List; +import javax.annotation.Resource; +import org.springframework.stereotype.Service; /** * <p> diff --git a/ruoyi-modules/ruoyi-article/src/main/resources/mapper/article/MemberLikeMapper.xml b/ruoyi-modules/ruoyi-article/src/main/resources/mapper/article/MemberLikeMapper.xml new file mode 100644 index 0000000..0606ed7 --- /dev/null +++ b/ruoyi-modules/ruoyi-article/src/main/resources/mapper/article/MemberLikeMapper.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.ruoyi.article.mapper.MemberLikeMapper"> + +</mapper> diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java index 3043837..94848fe 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/MgtAuctionGoodsController.java @@ -29,6 +29,12 @@ private final IAuctionGoodsService auctionGoodsService; + /** + * 获取拍卖商品列表的分页数据 + * + * @param query 拍卖商品查询对象 + * @return PageDTO<AuctionGoodsVO> + */ @ApiOperation(value = "获取拍卖商品列表的分页数据", notes = "获取拍卖商品列表的分页数据") @PostMapping("/page") public R<PageDTO<AuctionGoodsVO>> getAuctionGoodsPage( diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java index 78d5e68..0433a57 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/IAuctionGoodsService.java @@ -15,6 +15,11 @@ * @since 2024-05-16 */ public interface IAuctionGoodsService extends IService<AuctionGoods> { - + /** + * 获取拍卖商品列表的分页数据 + * + * @param query 拍卖商品查询对象 + * @return PageDTO<AuctionGoodsVO> + */ PageDTO<AuctionGoodsVO> getAuctionGoodsPage(AuctionGoodsQuery query); } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java index ae47f33..ef6fd3c 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java @@ -36,6 +36,12 @@ @Resource private GoodsSkuClient goodsSkuClient; + /** + * 获取拍卖商品列表的分页数据 + * + * @param query 拍卖商品查询对象 + * @return PageDTO<AuctionGoodsVO> + */ @Override public PageDTO<AuctionGoodsVO> getAuctionGoodsPage(AuctionGoodsQuery query) { Set<Long> goodsSkuIdList = null; @@ -45,7 +51,8 @@ goodsSkuIdList = goodsSku.stream().map(GoodsSku::getId) .collect(Collectors.toSet()); } - this.lambdaQuery().select(AuctionGoods::getId, AuctionGoods::getGoodsSkuId, + Page<AuctionGoods> page = this.lambdaQuery() + .select(AuctionGoods::getId, AuctionGoods::getGoodsSkuId, AuctionGoods::getListingStatus, AuctionGoods::getStartStatus, AuctionGoods::getStartTime, AuctionGoods::getEndTime, AuctionGoods::getAuctionStock, AuctionGoods::getMinimumMarkupAmount).in( @@ -57,6 +64,6 @@ .eq(StringUtils.isNotNull(query.getStartStatus()), AuctionGoods::getStartStatus, query.getStartStatus()) .page(new Page<>(query.getPageCurr(), query.getPageSize())); - return null; + return PageDTO.of(page, AuctionGoodsVO.class); } } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsGroupPurchaseController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsGroupPurchaseController.java index ebad70f..373ceb6 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsGroupPurchaseController.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsGroupPurchaseController.java @@ -1,6 +1,7 @@ package com.ruoyi.goods.controller.inner; +import com.fasterxml.jackson.core.JsonProcessingException; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.goods.service.IGoodsGroupPurchaseService; @@ -35,7 +36,12 @@ @InnerAuth @GetMapping("/start/{groupPurchaseId}") R<?> startGroupPurchase(@PathVariable("groupPurchaseId") Long groupPurchaseId) { - goodsGroupPurchaseService.startGroupPurchase(groupPurchaseId); + try { + goodsGroupPurchaseService.startGroupPurchase(groupPurchaseId); + } catch (JsonProcessingException e) { + log.error("团购商品开始团购失败", e); + return R.fail("团购商品开始团购失败"); + } return R.ok(); } @@ -47,7 +53,12 @@ @InnerAuth @GetMapping("/end/{groupPurchaseId}") R<?> endGroupPurchase(@PathVariable("groupPurchaseId") Long groupPurchaseId) { - goodsGroupPurchaseService.endGroupPurchase(groupPurchaseId); + try { + goodsGroupPurchaseService.endGroupPurchase(groupPurchaseId); + } catch (JsonProcessingException e) { + log.error("团购商品开始团购失败", e); + return R.fail("团购商品结束团购失败"); + } return R.ok(); } } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsSeckillController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsSeckillController.java index 2b97060..09533e1 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsSeckillController.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/inner/GoodsSeckillController.java @@ -1,6 +1,7 @@ package com.ruoyi.goods.controller.inner; +import com.fasterxml.jackson.core.JsonProcessingException; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.goods.service.IGoodsSeckillService; @@ -45,7 +46,12 @@ @InnerAuth @GetMapping("/start/{seckillId}") R<?> startSeckill(@PathVariable("seckillId") Long seckillId) { - goodsSeckillService.startSeckill(seckillId); + try { + goodsSeckillService.startSeckill(seckillId); + } catch (JsonProcessingException e) { + log.error("秒杀开始异常", e); + return R.fail(); + } return R.ok(); } @@ -57,7 +63,12 @@ @InnerAuth @GetMapping("/end/{seckillId}") R<?> endSeckill(@PathVariable("seckillId") Long seckillId) { - goodsSeckillService.endSeckill(seckillId); + try { + goodsSeckillService.endSeckill(seckillId); + } catch (JsonProcessingException e) { + log.error("秒杀结束异常", e); + return R.fail(); + } return R.ok(); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java index 04a1f71..1550c37 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsGroupPurchaseService.java @@ -1,6 +1,7 @@ package com.ruoyi.goods.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.fasterxml.jackson.core.JsonProcessingException; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseDTO; import com.ruoyi.goods.controller.management.dto.GoodsGroupPurchaseQuery; @@ -53,14 +54,14 @@ * * @param groupPurchaseId 团购商品id */ - void startGroupPurchase(Long groupPurchaseId); + void startGroupPurchase(Long groupPurchaseId) throws JsonProcessingException; /** * 团购商品结束团购 * * @param groupPurchaseId 团购商品id */ - void endGroupPurchase(Long groupPurchaseId); + void endGroupPurchase(Long groupPurchaseId) throws JsonProcessingException; /** * 立即结束团购 diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeckillService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeckillService.java index fa85f00..eb363f7 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeckillService.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/IGoodsSeckillService.java @@ -1,6 +1,7 @@ package com.ruoyi.goods.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.fasterxml.jackson.core.JsonProcessingException; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.goods.controller.management.dto.GoodsSeckillDTO; import com.ruoyi.goods.controller.management.dto.GoodsSeckillQuery; @@ -61,12 +62,12 @@ * * @param seckillId 秒杀id */ - void startSeckill(Long seckillId); + void startSeckill(Long seckillId) throws JsonProcessingException; /** * 结束秒杀 * * @param seckillId 秒杀id */ - void endSeckill(Long seckillId); + void endSeckill(Long seckillId) throws JsonProcessingException; } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java index a0a2954..975ab4c 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/async/AsyncMethodService.java @@ -13,13 +13,14 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Async; -import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; /** * @author mitao * @date 2024/5/24 */ -@Component +@Service @Slf4j @RequiredArgsConstructor public class AsyncMethodService { @@ -28,6 +29,7 @@ private final SysUserClient sysUserClient; @Async + @Transactional(rollbackFor = Exception.class) public void seckillScheduleTask(GoodsSeckill goodsSeckill) { LocalDateTime startTime = goodsSeckill.getStartTime(); LocalDateTime endTime = goodsSeckill.getEndTime(); @@ -50,6 +52,7 @@ } @Async + @Transactional(rollbackFor = Exception.class) public void groupPurchaseScheduleTask(GoodsGroupPurchase groupPurchase) { LocalDateTime startTime = groupPurchase.getStartTime(); LocalDateTime endTime = groupPurchase.getEndTime(); diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java index dbb37c1..69dc106 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import com.ruoyi.common.core.enums.GroupStatusEnum; import com.ruoyi.common.core.enums.ListingStatusEnum; import com.ruoyi.common.core.enums.PaymentMethodEnum; @@ -18,15 +20,19 @@ import com.ruoyi.goods.service.IGoodsGroupPurchaseService; import com.ruoyi.goods.service.IGoodsSkuService; import com.ruoyi.goods.service.async.AsyncMethodService; -import com.ruoyi.system.api.WebSocketUsers; +import com.ruoyi.system.api.constants.NotificationTypeConstant; import com.ruoyi.system.api.domain.GoodsSku; import com.ruoyi.system.api.domain.Order; import com.ruoyi.system.api.domain.dto.ListStatusDTO; import com.ruoyi.system.api.feignClient.OrderClient; +import java.time.LocalDateTime; import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import util.WebSocketUsers; /** * <p> @@ -44,6 +50,8 @@ private final OrderClient orderClient; private final IGoodsSkuService goodsSkuService; private final AsyncMethodService asyncMethodService; + // 创建一个静态共享的ObjectMapper实例以重用 + private static final ObjectMapper objectMapper = new ObjectMapper(); /** * 获取团购商品列表的分页数据 * @@ -148,15 +156,19 @@ * @param groupPurchaseId 团购商品id */ @Override - public void startGroupPurchase(Long groupPurchaseId) { + public void startGroupPurchase(Long groupPurchaseId) throws JsonProcessingException { log.info(">>>>>>>>>>>>>>>>>>>>{}团购商品开始团购<<<<<<<<<<<<<<<<<<<<", groupPurchaseId); GoodsGroupPurchase groupPurchase = this.getById(groupPurchaseId); if (StringUtils.isNotNull(groupPurchase)) { this.lambdaUpdate().set(GoodsGroupPurchase::getStartStatus, StartStatusEnum.STARTED) .eq(GoodsGroupPurchase::getId, groupPurchaseId).update(); - //TODO 通知小程序 - WebSocketUsers.sendMessageToUsersByText( - "团购商品" + groupPurchase.getGoodsSkuName() + "开始团购"); + Map<String, Object> map = new ConcurrentHashMap<>(); + map.put("notification_type", NotificationTypeConstant.GROUP_PURCHASE); + map.put("notification_time", LocalDateTime.now()); + map.put("message_type", "start"); + String msg = objectMapper.writeValueAsString(map); + WebSocketUsers.sendMessageToUsersByText(msg); + log.info("===================>发送websocket通知,消息体{}", msg); } } @@ -166,15 +178,19 @@ * @param groupPurchaseId 团购商品id */ @Override - public void endGroupPurchase(Long groupPurchaseId) { + public void endGroupPurchase(Long groupPurchaseId) throws JsonProcessingException { log.info(">>>>>>>>>>>>>>>>>>>>{}团购商品结束团购<<<<<<<<<<<<<<<<<<<<", groupPurchaseId); GoodsGroupPurchase groupPurchase = this.getById(groupPurchaseId); if (StringUtils.isNotNull(groupPurchase)) { this.lambdaUpdate().set(GoodsGroupPurchase::getStartStatus, StartStatusEnum.ENDED) .eq(GoodsGroupPurchase::getId, groupPurchaseId).update(); - //TODO 通知小程序 - WebSocketUsers.sendMessageToUsersByText( - "团购商品" + groupPurchase.getGoodsSkuName() + "结束团购"); + Map<String, Object> map = new ConcurrentHashMap<>(); + map.put("notification_type", NotificationTypeConstant.GROUP_PURCHASE); + map.put("notification_time", LocalDateTime.now()); + map.put("message_type", "end"); + String msg = objectMapper.writeValueAsString(map); + WebSocketUsers.sendMessageToUsersByText(msg); + log.info("===================>发送websocket通知,消息体{}", msg); } } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java index 8cf04e0..60955b8 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.enums.StartStatusEnum; import com.ruoyi.common.core.exception.ServiceException; @@ -17,18 +19,22 @@ import com.ruoyi.goods.service.IGoodsSeckillService; import com.ruoyi.goods.service.IGoodsSkuService; import com.ruoyi.goods.service.async.AsyncMethodService; -import com.ruoyi.system.api.WebSocketUsers; +import com.ruoyi.system.api.constants.NotificationTypeConstant; import com.ruoyi.system.api.domain.GoodsSeckill; import com.ruoyi.system.api.domain.GoodsSku; import com.ruoyi.system.api.domain.dto.ListStatusDTO; import com.ruoyi.system.api.feignClient.OrderClient; import com.ruoyi.system.api.feignClient.SysUserClient; +import java.time.LocalDateTime; import java.util.List; +import java.util.Map; import java.util.Optional; +import java.util.concurrent.ConcurrentHashMap; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import util.WebSocketUsers; /** * <p> @@ -48,6 +54,8 @@ private final RedisService redisService; private final SysUserClient sysUserClient; private final AsyncMethodService asyncMethodService; + // 创建一个静态共享的ObjectMapper实例以重用 + private static final ObjectMapper objectMapper = new ObjectMapper(); @Override @Transactional(rollbackFor = Exception.class) public void addGoodsSeckill(GoodsSeckillDTO dto) { @@ -147,7 +155,7 @@ * @param seckillId 秒杀id */ @Override - public void startSeckill(Long seckillId) { + public void startSeckill(Long seckillId) throws JsonProcessingException { log.info(">>>>>>>>>>>>>>>>>>>>{}秒杀开始<<<<<<<<<<<<<<<<<<<<", seckillId); GoodsSeckill goodsSeckill = this.getById(seckillId); //秒杀商品不能为空且状态为未开始 @@ -162,7 +170,13 @@ goodsSeckill.getSeckillStock()); } //推送秒杀开始消息 - WebSocketUsers.sendMessageToUsersByText("秒杀活动已开始"); + Map<String, Object> map = new ConcurrentHashMap<>(); + map.put("notification_type", NotificationTypeConstant.SECKILL); + map.put("notification_time", LocalDateTime.now()); + map.put("message_type", "start"); + String msg = objectMapper.writeValueAsString(map); + WebSocketUsers.sendMessageToUsersByText(msg); + log.info("===================>发送websocket通知,消息体{}", msg); } /** @@ -171,7 +185,7 @@ * @param seckillId 秒杀id */ @Override - public void endSeckill(Long seckillId) { + public void endSeckill(Long seckillId) throws JsonProcessingException { log.info(">>>>>>>>>>>>>>>>>>>>{}秒杀结束<<<<<<<<<<<<<<<<<<<<", seckillId); GoodsSeckill goodsSeckill = this.getById(seckillId); if (StringUtils.isNotNull(goodsSeckill) @@ -182,7 +196,12 @@ // 将秒杀商品从缓存中移除 redisService.deleteObject(CacheConstants.SECKILL_GOODS + goodsSeckill.getId()); } - //TODO websocket 推送秒杀结束消息 - WebSocketUsers.sendMessageToUsersByText("秒杀活动已结束"); + Map<String, Object> map = new ConcurrentHashMap<>(); + map.put("notification_type", NotificationTypeConstant.SECKILL); + map.put("notification_time", LocalDateTime.now()); + map.put("message_type", "end"); + String msg = objectMapper.writeValueAsString(map); + WebSocketUsers.sendMessageToUsersByText(msg); + log.info("===================>发送websocket通知,消息体{}", msg); } } -- Gitblit v1.7.1