Ver código fonte

修改评论

jin 2 meses atrás
pai
commit
7e01da7e6f

+ 5 - 65
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/domain/WxCredit.java

@@ -1,18 +1,19 @@
 package com.ruoyi.framework.recovery.domain;
 
-import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
+
+import java.util.Date;
 
 /**
  * 积分明细对象 wx_credit
- * 
+ *
  * @author jin
  * @date 2024-12-01
  */
+@Data
 public class WxCredit extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
@@ -30,70 +31,9 @@ public class WxCredit extends BaseEntity
 
     /** 创建时间 */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
     private Date createDate;
 
     /** 更新时间 */
     @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
     private Date updateDate;
-
-    public void setId(Long id) 
-    {
-        this.id = id;
-    }
-
-    public Long getId() 
-    {
-        return id;
-    }
-    public void setCreditType(String creditType) 
-    {
-        this.creditType = creditType;
-    }
-
-    public String getCreditType() 
-    {
-        return creditType;
-    }
-    public void setCreditNum(Long creditNum) 
-    {
-        this.creditNum = creditNum;
-    }
-
-    public Long getCreditNum() 
-    {
-        return creditNum;
-    }
-    public void setCreateDate(Date createDate) 
-    {
-        this.createDate = createDate;
-    }
-
-    public Date getCreateDate() 
-    {
-        return createDate;
-    }
-    public void setUpdateDate(Date updateDate) 
-    {
-        this.updateDate = updateDate;
-    }
-
-    public Date getUpdateDate() 
-    {
-        return updateDate;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("creditType", getCreditType())
-            .append("creditNum", getCreditNum())
-            .append("createBy", getCreateBy())
-            .append("createDate", getCreateDate())
-            .append("updateBy", getUpdateBy())
-            .append("updateDate", getUpdateDate())
-            .toString();
-    }
 }

+ 43 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/domain/vo/WxContent.java

@@ -0,0 +1,43 @@
+package com.ruoyi.framework.recovery.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.annotation.Excel;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+public class WxContent {
+    /** 评论id */
+    private Long id;
+
+    /** 评论内容 */
+    @Excel(name = "评论内容")
+    private String content;
+
+    @Excel(name = "点赞数")
+    private Long thumbs;
+
+    /**
+     * 创建人名称
+     */
+    private String username;
+
+    /**
+     * 头像
+     */
+    private String avatar;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date createDate;
+
+    /** 更新时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date updateDate;
+
+    private String images;
+}

+ 9 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/mapper/RecContentMapper.java

@@ -4,6 +4,7 @@ import java.util.List;
 import com.ruoyi.framework.recovery.domain.RecContent;
 import com.ruoyi.framework.recovery.domain.RecContentUser;
 import com.ruoyi.framework.recovery.domain.dto.ContentDto;
+import com.ruoyi.framework.recovery.domain.vo.WxContent;
 import org.apache.ibatis.annotations.Param;
 
 /**
@@ -78,4 +79,12 @@ public interface RecContentMapper
      * @return 结果集
      */
     List<RecContentUser> selectContentUserByOpenId(@Param("openId") String wxOpenid, @Param("contentId") Long id);
+
+    /**
+     * 查询评论
+     *
+     * @param wxContentVo 入参
+     * @return 结果集
+     */
+    List<WxContent> selectWxContentList(@Param("dto") WxContent wxContentVo);
 }

+ 7 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/mapper/WxCreditMapper.java

@@ -69,7 +69,7 @@ public interface WxCreditMapper
      * @param id 积分id
      * @param date 创建时间
      */
-    void insertWxCreditUser(@Param("openId") String wxOpenid, @Param("id") Long id, @Param("date") Date date);
+    void insertWxCreditUser(@Param("openId") String wxOpenid, @Param("creditId") Long id, @Param("date") Date date);
 
     /**
      * 查询当前登录人积分领取记录
@@ -88,4 +88,10 @@ public interface WxCreditMapper
      * @return 记录
      */
     List<CreditVo> selectWxCreditByOpenId(@Param("openId") String wxOpenid);
+
+    /**
+     * 每年元旦清空所有积分
+     *
+     */
+    void updateWxCreditClean();
 }

+ 11 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/service/IRecContentService.java

@@ -1,7 +1,9 @@
 package com.ruoyi.framework.recovery.service;
 
-import java.util.List;
 import com.ruoyi.framework.recovery.domain.RecContent;
+import com.ruoyi.framework.recovery.domain.vo.WxContent;
+
+import java.util.List;
 
 /**
  * 评论Service接口
@@ -67,4 +69,12 @@ public interface IRecContentService
      * @return 结果集
      */
     int insertRecContentUser(String wxOpenid, Long id);
+
+    /**
+     * 查询小程序评论
+     *
+     * @param wxContentVo 入参
+     * @return 结果集
+     */
+    List<WxContent> selectWxContentList(WxContent wxContentVo);
 }

+ 6 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/recovery/service/impl/RecContentServiceImpl.java

@@ -4,6 +4,7 @@ import java.util.Date;
 import java.util.List;
 
 import com.ruoyi.framework.recovery.domain.dto.ContentDto;
+import com.ruoyi.framework.recovery.domain.vo.WxContent;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.framework.recovery.mapper.RecContentMapper;
@@ -103,4 +104,9 @@ public class RecContentServiceImpl implements IRecContentService
         dto.setCreateTime(new Date());
         return recContentMapper.insertRecContentUser(dto);
     }
+
+    @Override
+    public List<WxContent> selectWxContentList(WxContent wxContentVo) {
+        return recContentMapper.selectWxContentList(wxContentVo);
+    }
 }

+ 4 - 0
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/WxLoginService.java

@@ -88,4 +88,8 @@ public class WxLoginService {
         int result = wxUserService.updateWxUser(user);
         return String.valueOf(result);
     }
+
+    public WxUser findUser(String openId) {
+        return wxUserService.selectWxUSerByOpenid(openId);
+    }
 }

+ 5 - 2
ruoyi-quartz/pom.xml

@@ -34,7 +34,10 @@
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-common</artifactId>
         </dependency>
-
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-framework</artifactId>
+        </dependency>
     </dependencies>
 
-</project>
+</project>

+ 20 - 0
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/CreditTask.java

@@ -0,0 +1,20 @@
+package com.ruoyi.quartz.task;
+
+import com.ruoyi.framework.recovery.domain.WxCredit;
+import com.ruoyi.framework.recovery.mapper.WxCreditMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component("creditTask")
+@Slf4j
+public class CreditTask {
+    @Autowired
+    private WxCreditMapper wxCreditMapper;
+
+    public void credit(){
+        log.info("开始清空用户积分");
+        wxCreditMapper.updateWxCreditClean();
+        log.info("清空完成");
+    }
+}

+ 15 - 0
ruoyi-system/src/main/resources/mapper/system/RecContentMapper.xml

@@ -46,6 +46,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </if>
         </where>
     </select>
+    <select id="selectWxContentList" resultType="com.ruoyi.framework.recovery.domain.vo.WxContent">
+        SELECT
+            rc.id as id,
+            content as content,
+            thumbs as thumbs,
+            images as images,
+            wu.username as username,
+            wu.avatar as avatar,
+            rc.create_date as createDate
+        FROM
+            rec_content rc
+                LEFT JOIN wx_content_user wcu ON rc.id = wcu.content_id
+                LEFT JOIN wx_user wu on wcu.open_id = wu.wx_openid
+        order by rc.create_date desc
+    </select>
 
     <insert id="insertRecContent" parameterType="RecContent">
         insert into rec_content

+ 5 - 1
ruoyi-system/src/main/resources/mapper/system/WxCreditMapper.xml

@@ -41,6 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                from wx_credit_user wcu
                    left join wx_credit wc on wc.id = wcu.credit_id
                where wcu.open_id = #{openId}
+        order by wcu.create_date desc
     </select>
 
     <insert id="insertWxCredit" parameterType="WxCredit">
@@ -65,7 +66,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
          </trim>
     </insert>
     <insert id="insertWxCreditUser">
-        insert into wx_credit_user (open_id, credit_id, create_date) values (#{openId}, #{id}, #{date})
+        insert into wx_credit_user (open_id, credit_id, create_date) values (#{openId}, #{creditId}, #{date})
     </insert>
 
     <update id="updateWxCredit" parameterType="WxCredit">
@@ -80,6 +81,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </trim>
         where id = #{id}
     </update>
+    <update id="updateWxCreditClean">
+        update wx_user set points = 0
+    </update>
 
     <delete id="deleteWxCreditById" parameterType="Long">
         delete from wx_credit where id = #{id}

+ 7 - 0
ruoyi-wx/src/main/java/com/ruoyi/wx/web/controller/WxLoginController.java

@@ -36,4 +36,11 @@ public class WxLoginController {
         return AjaxResult.success(result);
     }
 
+    @ApiOperation("查询用户信息")
+    @GetMapping("/find/user/{wxOpenId}")
+    public AjaxResult findUser(@PathVariable("wxOpenId") String openId) {
+        // 生成令牌
+        WxUser result = wxLoginService.findUser(openId);
+        return AjaxResult.success(result);
+    }
 }

+ 2 - 2
ruoyi-wx/src/main/java/com/ruoyi/wx/web/controller/WxPayController.java

@@ -158,8 +158,8 @@ public class WxPayController {
         wxRecharge.setUserName(wxUser.getUsername());
         wxRechargeService.insertWxRecharge(wxRecharge);
         wxUser.setUserLevel(dto.getVipLv());
-        wxUser.setVipStartTime(LocalDate.now(ZoneId.of("Asia/Shanghai")));
-        wxUser.setVipEndTime(defDate(LocalDate.now(ZoneId.of("Asia/Shanghai")), dto.getVipLv()));
+        wxUser.setVipStartTime(null == wxUser.getVipStartTime() ? LocalDate.now(ZoneId.of("Asia/Shanghai")) : wxUser.getVipStartTime());
+        wxUser.setVipEndTime(defDate(wxUser.getVipStartTime(), dto.getVipLv()));
         wxUserService.updateWxUser(wxUser);
         Map<String, Object> resultMap = new HashMap<>();
         resultMap.put("appId", orderV3.getAppId());

+ 3 - 0
ruoyi-wx/src/main/java/com/ruoyi/wx/web/domain/dto/WxContentDto.java

@@ -19,6 +19,9 @@ public class WxContentDto {
     @Excel(name = "点赞数")
     private Long thumbs;
 
+    /** 创建人 */
+    private String createBy;
+
     /** 创建时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")

+ 10 - 0
ruoyi-wx/src/main/java/com/ruoyi/wx/web/domain/vo/WxContentVo.java

@@ -19,6 +19,16 @@ public class WxContentVo {
     @Excel(name = "点赞数")
     private Long thumbs;
 
+    /**
+     * 创建人名称
+     */
+    private String username;
+
+    /**
+     * 头像
+     */
+    private String avatar;
+
     /** 创建时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")

+ 6 - 5
ruoyi-wx/src/main/java/com/ruoyi/wx/web/service/impl/WxHomeServiceImpl.java

@@ -12,6 +12,7 @@ import com.ruoyi.framework.recovery.domain.RecContent;
 import com.ruoyi.framework.recovery.domain.RecContentUser;
 import com.ruoyi.framework.recovery.domain.RecSaleInfo;
 import com.ruoyi.framework.recovery.domain.RecStores;
+import com.ruoyi.framework.recovery.domain.vo.WxContent;
 import com.ruoyi.framework.recovery.mapper.RecContentMapper;
 import com.ruoyi.framework.recovery.mapper.RecSaleInfoMapper;
 import com.ruoyi.framework.recovery.service.IRecContentService;
@@ -74,17 +75,17 @@ public class WxHomeServiceImpl implements IWxHomeService {
         Date endTime = DateUtil.offsetDay(dateTime, 1);
         Callable<List<RecSaleInfo>> saleInfoCallable = () -> recSaleInfoService.selectRecSaleInfoByTime(startTime, endTime);
         // 评论
-        Callable<List<RecContent>> contentCallable = () -> recContentService.selectRecContentList(new RecContent());
+        Callable<List<WxContent>> contentCallable = () -> recContentService.selectWxContentList(new WxContent());
         FutureTask<List<RecSaleInfo>> saleInfoTask = new FutureTask<>(saleInfoCallable);
-        FutureTask<List<RecContent>> contentTask = new FutureTask<>(contentCallable);
+        FutureTask<List<WxContent>> contentTask = new FutureTask<>(contentCallable);
         executorService.submit(saleInfoTask);
         executorService.submit(contentTask);
-        List<RecContent> contents = contentTask.get();
+        List<WxContent> contents = contentTask.get();
         List<WxContentVo> contentVos = new ArrayList<>();
-        for (RecContent content : contents) {
+        for (WxContent content : contents) {
+            String images = content.getImages();
             WxContentVo vo = new WxContentVo();
             BeanUtils.copyProperties(content, vo);
-            String images = content.getImages();
             if (StringUtils.isNotEmpty(images)) {
                 List<String> imagesList = Arrays.asList(images.split(","));
                 vo.setImageList(imagesList);

+ 10 - 1
ruoyi-wx/src/main/java/com/ruoyi/wx/web/service/impl/WxPersonCenterServiceImpl.java

@@ -50,6 +50,12 @@ public class WxPersonCenterServiceImpl implements IWxPersonCenterService {
         }
         WxUser loginWxUserWxUser = loginWxUser.getWxUser();
         WxUser wxUser = wxUserMapper.selectWxUserById(loginWxUserWxUser.getId());
+        if (wxUser.getVipLv() != 0 && wxUser.getVipEndTime().isBefore(LocalDate.now())) {
+            wxUser.setVipLv(0);
+            wxUser.setVipStartTime(null);
+            wxUser.setVipEndTime(null);
+            wxUserMapper.updateWxUser(wxUser);
+        }
         WxUserVo userVo = new WxUserVo();
         BeanUtils.copyBeanProp(userVo, wxUser);
         Map<String, Object> data = new HashMap<>();
@@ -119,6 +125,7 @@ public class WxPersonCenterServiceImpl implements IWxPersonCenterService {
     }
 
     @Override
+    @Transactional
     public String conCredit(String cash) {
         String result = "兑换成功";
         LoginWxUser loginWxUser = SecurityUtils.getLoginWxUser();
@@ -159,7 +166,9 @@ public class WxPersonCenterServiceImpl implements IWxPersonCenterService {
             default:
                 break;
         }
-
+        long credit_id = cash.equals("month") ? 200L : cash.equals("quarter") ? 500L : 1800L;
+        log.info("保存用户兑换会员记录:{}, {}, {}", wxUser.getWxOpenid(), credit_id, new Date());
+        wxCreditMapper.insertWxCreditUser(wxUser.getWxOpenid(), credit_id, new Date());
         wxUserMapper.updateWxUser(wxUser);
         return result;
     }