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 < #{dateTime} + </delete> + + <select id="selectChatRedBagByCreateTime" resultType="java.lang.Long"> + select id + from chat_red_bag + where create_time < #{dateTime} order By create_time desc limit 1 + </select> + + <delete id="deleteChatRedBagById"> + DELETE from chat_red_bag where id < #{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 < #{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