From 86d405a84645893cffd72934dc8e35a8b59e2fcf Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Tue, 07 Nov 2023 11:10:04 +0800
Subject: [PATCH] 消息红包记录只储存36个小时

---
 src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java |   11 +++++
 src/test/java/cc/mrbird/febs/ProfitTest.java                 |   33 ++++++++++++++--
 src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java      |   49 ++++++++++++++++++------
 src/main/resources/mapper/modules/ChatUserMapper.xml         |   24 ++++++++++++
 4 files changed, 99 insertions(+), 18 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java
index f501ddb..1a9952f 100644
--- a/src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/ChatUserMapper.java
@@ -4,6 +4,7 @@
 import cc.mrbird.febs.mall.entity.DataDictionary;
 import cc.mrbird.febs.mall.entity.MemberCoinWithdraw;
 import cc.mrbird.febs.mall.vo.*;
+import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -82,4 +83,14 @@
     void updatePortraitById(@Param("userId")Long userId, @Param("portrait")String portrait);
 
     void updateGetBoomByUserId(@Param("userId")String userId, @Param("getBoom")int i);
+
+    void deleteMsgByCreateTime(@Param("dateTime")Date dateTime);
+
+    List<Long> selectChatRedBagByCreateTime(@Param("dateTime")DateTime dateTime);
+
+    void deleteChatRedBagById(@Param("id")Long aLong);
+
+    List<Long> selectChatRedBagRecordByRebBagId(@Param("id")Long aLong);
+
+    void deleteChatRedBagRecordById(@Param("id")Long aLong1);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
index 7dbf688..1d4bc03 100644
--- a/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
+++ b/src/main/java/cc/mrbird/febs/mall/quartz/ProfitJob.java
@@ -32,6 +32,7 @@
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Random;
@@ -52,19 +53,6 @@
 
     @Resource
     private AgentProducer agentProducer;
-
-    public static void main(String[] args) {
-        for(int i = 0; i< 10 ;i++){
-            int randomInt = RandomUtil.randomInt(1, 5);
-            System.out.println(randomInt);
-            try {
-                Thread.sleep(randomInt * 1000L);
-            } catch (InterruptedException e) {
-                e.printStackTrace();
-            }
-            System.out.println(i);
-        }
-    }
 
     /**
      * 自动发送红包定时器
@@ -103,4 +91,39 @@
             }
         }
     }
+
+    @Scheduled(cron = "0 0 0 * * ? ")
+    public void deleteMsg() {
+        DateTime date = DateUtil.date();
+        DateTime dateTime = DateUtil.offsetHour(date, -36);
+        chatUserMapper.deleteMsgByCreateTime(dateTime);
+        List<Long> ids = chatUserMapper.selectChatRedBagByCreateTime(dateTime);
+        if(CollUtil.isNotEmpty(ids)){
+            Long aLong = ids.get(0);
+            chatUserMapper.deleteChatRedBagById(aLong);
+
+            List<Long> recordIds = chatUserMapper.selectChatRedBagRecordByRebBagId(aLong);
+            if(CollUtil.isNotEmpty(recordIds)){
+                Long aLong1 = recordIds.get(0);
+                chatUserMapper.deleteChatRedBagRecordById(aLong1);
+            }
+        }
+
+    }
+
+    public static void main(String[] args) {
+        DateTime date = DateUtil.date();
+        System.out.println(date);
+        ArrayList<DateTime> objects = new ArrayList<>();
+        for(int i = 0;i<= 10 ;i++){
+            DateTime dateTime = DateUtil.offsetHour(date, -i);
+            objects.add(dateTime);
+        }
+
+        System.out.println(objects.size());
+        System.out.println(objects);
+        objects.remove(0);
+        System.out.println(objects);
+        System.out.println(objects.size());
+    }
 }
diff --git a/src/main/resources/mapper/modules/ChatUserMapper.xml b/src/main/resources/mapper/modules/ChatUserMapper.xml
index d0d84f6..b2364b9 100644
--- a/src/main/resources/mapper/modules/ChatUserMapper.xml
+++ b/src/main/resources/mapper/modules/ChatUserMapper.xml
@@ -452,5 +452,29 @@
         where user_id = #{userId}
     </update>
 
+    <delete  id="deleteMsgByCreateTime">
+        DELETE from chat_msg where create_time &lt; #{dateTime}
+    </delete>
+
+    <select id="selectChatRedBagByCreateTime" resultType="java.lang.Long">
+        select id
+        from chat_red_bag
+        where create_time &lt; #{dateTime} order By create_time desc limit 1
+    </select>
+
+    <delete  id="deleteChatRedBagById">
+        DELETE from chat_red_bag where id &lt; #{id}
+    </delete>
+
+    <select id="selectChatRedBagRecordByRebBagId" resultType="java.lang.Long">
+        select id
+        from chat_red_bag_record
+        where red_bag_id = #{id}
+    </select>
+
+    <delete  id="deleteChatRedBagRecordById">
+        DELETE from chat_red_bag_record where id &lt; #{id}
+    </delete>
+
 
 </mapper>
\ No newline at end of file
diff --git a/src/test/java/cc/mrbird/febs/ProfitTest.java b/src/test/java/cc/mrbird/febs/ProfitTest.java
index 0f99507..9babaf5 100644
--- a/src/test/java/cc/mrbird/febs/ProfitTest.java
+++ b/src/test/java/cc/mrbird/febs/ProfitTest.java
@@ -1,12 +1,17 @@
 package cc.mrbird.febs;
 
+import cc.mrbird.febs.mall.mapper.ChatUserMapper;
 import cc.mrbird.febs.mall.service.IAgentService;
 import cc.mrbird.febs.rabbit.producter.AgentProducer;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * @author wzy
@@ -34,21 +39,39 @@
 //
     @Autowired
     private AgentProducer agentProducer;
+//
+    @Autowired
+    private ChatUserMapper chatUserMapper;
 ////
 ////    @Autowired
 ////    private IMemberProfitService memberProfitService;
 ////
     @Test
     public void dynamicProfit() {
-        for(int i =0;i<400;i++){
+        for(int i =0;i<75;i++){
             agentProducer.sendAddRobotMsg("32074345");
         }
 //        agentService.autoUpAgentLevel(640L);
     }
-//    @Test
-//    public void agentProfit() {
-//        memberProfitService.agentProfit(null);
-//    }
+    @Test
+    public void agentProfit() {
+
+        DateTime date = DateUtil.date();
+        DateTime dateTime = DateUtil.offsetHour(date, -26);
+        System.out.println("dateTime:"+dateTime);
+        chatUserMapper.deleteMsgByCreateTime(dateTime);
+        List<Long> ids = chatUserMapper.selectChatRedBagByCreateTime(dateTime);
+        if(CollUtil.isNotEmpty(ids)){
+            Long aLong = ids.get(0);
+            chatUserMapper.deleteChatRedBagById(aLong);
+
+            List<Long> recordIds = chatUserMapper.selectChatRedBagRecordByRebBagId(aLong);
+            if(CollUtil.isNotEmpty(recordIds)){
+                Long aLong1 = recordIds.get(0);
+                chatUserMapper.deleteChatRedBagRecordById(aLong1);
+            }
+        }
+    }
 //
 //
 ////    @Test

--
Gitblit v1.9.1