fangqing 5 kuukautta sitten
vanhempi
sitoutus
0d25bae966

+ 43 - 1
ruoyi-generator/src/main/java/com/ruoyi/generator/controller/CommunityCommentController.java

@@ -9,14 +9,17 @@ import com.ruoyi.common.exception.user.ProjectException;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.ip.AddressUtils;
+import com.ruoyi.generator.domain.Community.CommunityArticle;
 import com.ruoyi.generator.domain.Community.CommunityArticleComment;
 import com.ruoyi.generator.domain.Community.CommunityCommentLike;
 import com.ruoyi.generator.domain.Community.CommunityCommentReply;
+import com.ruoyi.generator.mapper.community.CommunityArticleMapper;
 import com.ruoyi.generator.mapper.community.CommunityCommentLikeMapper;
 import com.ruoyi.generator.service.ICommunityArticleCommentService;
 import com.ruoyi.generator.service.ICommunityArticleService;
 import com.ruoyi.generator.service.ICommunityCommentReplyService;
 import com.ruoyi.generator.vo.CommunityArticleCommentVo;
+import com.ruoyi.generator.vo.CommunityCommentRaffleVo;
 import com.ruoyi.generator.vo.CommunityCommentReplyVo;
 import com.ruoyi.system.mapper.SysUserMapper;
 import com.ruoyi.system.service.impl.SysUserServiceImpl;
@@ -63,7 +66,8 @@ public class CommunityCommentController extends BaseController {
     @Autowired
     private ICommunityArticleService communityArticleService;
 
-
+    @Autowired
+    private CommunityArticleMapper communityArticleMapper;
     /**
      * 获取文章评论
      */
@@ -273,4 +277,42 @@ public class CommunityCommentController extends BaseController {
 
         return AjaxResult.success("删除回复成功!");
     }
+
+
+    /**
+     *
+     * @param articleId
+     * @return
+     */
+    @ApiOperation("评论抽奖")
+    @GetMapping("/raffleComment")
+    @Transactional
+    //@Anonymous
+    public AjaxResult raffleComment(Long articleId) {
+        if (Objects.isNull(articleId)) {
+            return AjaxResult.error("参数异常!");
+        }
+
+        CommunityArticle communityArticle = communityArticleMapper.selectOne(new QueryWrapper<CommunityArticle>()
+                .eq("id", articleId)
+                .eq("create_by", SecurityUtils.getUserId())
+                .and((wrapper) -> {
+                    wrapper.ne("is_delete", true).or().isNull("is_delete");
+                }));
+        if (communityArticle == null){
+            return  AjaxResult.error("非本人无法操作抽奖按钮!");
+        }
+
+        CommunityCommentRaffleVo communityCommentRaffleVos = null;
+        try {
+           communityCommentRaffleVos = communityArticleService.selectCommentRaffle(articleId);
+        } catch (Exception e) {
+            System.out.println(e.getMessage());
+            throw new ProjectException();
+        }
+        return AjaxResult.success(communityCommentRaffleVos);
+    }
+
+
+
 }

+ 77 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/Community/CommunityCommentRaffle.java

@@ -0,0 +1,77 @@
+package com.ruoyi.generator.domain.Community;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+* 合集关联文章
+* @TableName community_collection_article
+*/
+@Data
+@TableName("community_comment_raffle")
+public class CommunityCommentRaffle implements Serializable {
+
+    /**
+    * 唯一id
+    */
+    @NotNull(message="[唯一id]不能为空")
+    @ApiModelProperty("唯一id")
+    @TableId("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+    * 文章id
+    */
+    @ApiModelProperty("文章id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long articleId;
+
+    /**
+     * 评论ID
+     */
+    @ApiModelProperty("评论ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long commentId;
+    /**
+     * 评论用户id
+     */
+    @ApiModelProperty("评论用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+    /**
+     * 是否删除
+     */
+    @ApiModelProperty("是否删除")
+    private boolean isDelete;
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    private Long createBy;
+    /**
+    * 更新人
+    */
+    @ApiModelProperty("更新人")
+    private Long updateBy;
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+    /**
+    * 更新时间
+    */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+}

+ 9 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/community/CommunityCommentRaffleMapper.java

@@ -0,0 +1,9 @@
+package com.ruoyi.generator.mapper.community;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.generator.domain.Community.CommunityCommentRaffle;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface CommunityCommentRaffleMapper extends BaseMapper<CommunityCommentRaffle> {
+}

+ 53 - 4
ruoyi-generator/src/main/java/com/ruoyi/generator/service/CommunityArticleServiceImpl.java

@@ -23,10 +23,7 @@ import org.springframework.stereotype.Service;
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.concurrent.ExecutionException;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -117,6 +114,8 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
     @Autowired
     private CommunityArticleCollectMapper communityArticleCollectMapper;
 
+    @Autowired
+    private  CommunityCommentRaffleMapper communityCommentRaffleMapper;
     /**
      * 查询文章列表
      *
@@ -1004,6 +1003,56 @@ public class CommunityArticleServiceImpl extends ServiceImpl<CommunityArticleMap
         return communityArticleVos;
     }
 
+    /**
+     * 开启抽奖
+     * @param articleId
+     * @return
+     */
+    @Override
+    public CommunityCommentRaffleVo selectCommentRaffle(Long articleId) {
+        CommunityCommentRaffle communityCommentRaffle = communityCommentRaffleMapper.selectOne(
+                new QueryWrapper<CommunityCommentRaffle>()
+                        .eq("article_id", articleId)
+                        .and((wrapper) -> {
+                            wrapper.ne("is_delete", true).or().isNull("is_delete");
+                        }));
+
+        CommunityCommentRaffleVo communityCommentRaffleVo = new CommunityCommentRaffleVo();
+        CommunityUserInfoVo communityUserInfoVo = null;
+        //如果抽奖表为空则需要插入一条数据
+        if (communityCommentRaffle == null){
+            List<CommunityArticleComment> communityArticleComments = communityArticleCommentMapper.selectList(new QueryWrapper<CommunityArticleComment>()
+                    .eq("article_id", articleId)
+                    .and((wrapper) -> {
+                        wrapper.ne("is_delete", true).or().isNull("is_delete");
+                    })
+            );
+            // 使用 Random 类生成一个随机索引
+            Random random = new Random();
+            int randomIndex = random.nextInt(communityArticleComments.size());
+            CommunityArticleComment communityArticleComment = communityArticleComments.get(randomIndex);
+            CommunityCommentRaffle commentRaffle = new CommunityCommentRaffle();
+            commentRaffle.setArticleId(communityArticleComment.getArticleId());
+            commentRaffle.setCommentId(communityArticleComment.getId());
+            commentRaffle.setUserId(communityArticleComment.getUserId());
+            commentRaffle.setCreateBy(SecurityUtils.getUserId());
+            commentRaffle.setCreateTime(DateUtils.parseDate(DateUtils.getTime()));
+            communityCommentRaffleMapper.insert(commentRaffle);
+            BeanUtils.copyProperties(commentRaffle, communityCommentRaffleVo);
+            communityUserInfoVo = communityArticleService.selectCommunityUserInfoById(commentRaffle.getUserId());
+            communityCommentRaffleVo.setUserName(communityUserInfoVo.getNickName());
+            communityCommentRaffleVo.setUserAvatar(communityUserInfoVo.getAvatar());
+            return  communityCommentRaffleVo;
+        }
+
+        BeanUtils.copyProperties(communityCommentRaffle, communityCommentRaffleVo);
+        communityUserInfoVo = communityArticleService.selectCommunityUserInfoById(communityCommentRaffle.getUserId());
+        communityCommentRaffleVo.setUserName(communityUserInfoVo.getNickName());
+        communityCommentRaffleVo.setUserAvatar(communityUserInfoVo.getAvatar());
+        return communityCommentRaffleVo;
+    }
+
+
     /**
      * 判断是否是视频文件
      *

+ 10 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/service/ICommunityArticleService.java

@@ -205,4 +205,14 @@ public interface ICommunityArticleService extends IService<CommunityArticle> {
      */
     List<CommunityArticleVo> selectUserCollect(int pageNum, int pageSize, int searchType);
 
+    /**
+     * 查询抽奖表
+     * @param articleId
+     * @return
+     */
+    CommunityCommentRaffleVo selectCommentRaffle(Long articleId);
+
+
+
+
 }

+ 93 - 0
ruoyi-generator/src/main/java/com/ruoyi/generator/vo/CommunityCommentRaffleVo.java

@@ -0,0 +1,93 @@
+package com.ruoyi.generator.vo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+* 合集关联文章
+* @TableName community_collection_article
+*/
+@Data
+@TableName("community_comment_raffle")
+public class CommunityCommentRaffleVo implements Serializable {
+
+    /**
+    * 唯一id
+    */
+    @NotNull(message="[唯一id]不能为空")
+    @ApiModelProperty("唯一id")
+    @TableId("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+    * 文章id
+    */
+    @ApiModelProperty("文章id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long articleId;
+
+    /**
+     * 评论ID
+     */
+    @ApiModelProperty("评论ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long commentId;
+
+
+    /**
+     * 评论用户id
+     */
+    @ApiModelProperty("评论用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    /**
+     * 评论用户名称
+     */
+    @ApiModelProperty("评论用户名称")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private String userName;
+
+    /**
+     * 评论用户头像
+     */
+    @ApiModelProperty("评论用户头像")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private String userAvatar;
+
+
+    /**
+    * 创建人
+    */
+    @ApiModelProperty("创建人")
+    private Long createBy;
+
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /**
+     * 更新人
+     */
+    @ApiModelProperty("更新人")
+    private Long updateBy;
+
+    /**
+    * 更新时间
+    */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+}