KKSU
2023-11-07 86d405a84645893cffd72934dc8e35a8b59e2fcf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
package cc.mrbird.febs.mall.quartz;
 
import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
import cc.mrbird.febs.common.utils.MallUtils;
import cc.mrbird.febs.mall.entity.ChatGroup;
import cc.mrbird.febs.mall.entity.ChatUser;
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.entity.MallMoneyFlow;
import cc.mrbird.febs.mall.mapper.ChatGroupMapper;
import cc.mrbird.febs.mall.mapper.ChatUserMapper;
import cc.mrbird.febs.mall.mapper.MallMemberMapper;
import cc.mrbird.febs.mall.mapper.MallMoneyFlowMapper;
import cc.mrbird.febs.mall.service.IApiMallMemberService;
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
import cc.mrbird.febs.mall.service.IMemberProfitService;
import cc.mrbird.febs.mall.service.impl.CommonService;
import cc.mrbird.febs.mall.vo.AdminChatRedBagVo;
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 cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
 
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;
 
/**
 * @author wzy
 * @date 2021-09-28
 **/
@Slf4j
@Component
public class ProfitJob {
 
    @Resource
    private ChatUserMapper chatUserMapper;
 
    @Resource
    private ChatGroupMapper chatGroupMapper;
 
    @Resource
    private AgentProducer agentProducer;
 
    /**
     * 自动发送红包定时器
     */
//    @Scheduled(cron = "0 0/1 * * * ? ")
    @Scheduled(cron = "0/1 * * * * ? ")
//    @Scheduled(cron = "0/30 * * * * ? ")
    public void profitJob() {
//        int randomInt = RandomUtil.randomInt(1, 20);
//        try {
//            Thread.sleep(randomInt * 1000L);
//        } catch (InterruptedException e) {
//            e.printStackTrace();
//        }
        QueryWrapper<ChatGroup> objectQueryWrapper = new QueryWrapper<>();
        objectQueryWrapper.eq("auto_send", 1);
        List<ChatGroup> chatGroups = chatGroupMapper.selectList(objectQueryWrapper);
        if(CollUtil.isNotEmpty(chatGroups)){
            for(ChatGroup chatGroup : chatGroups){
                agentProducer.sendAutoSendMsg(chatGroup.getId());
            }
        }
    }
 
    /**
     * 红包未领完,过期更新
     */
//    @Scheduled(cron = "0/2 * * * * ? ")
    @Scheduled(cron = "0 0 0/1 * * ? ")
    public void returnRedBagAmount() {
        List<AdminChatRedBagVo> adminChatRedBagVos = chatUserMapper.selectByOverDueStatueAndTime(2, DateUtil.date());
        if(CollUtil.isNotEmpty(adminChatRedBagVos)){
            for(AdminChatRedBagVo adminChatRedBagVo : adminChatRedBagVos){
                chatUserMapper.updateOverdueStatusById(1,adminChatRedBagVo.getId());
                agentProducer.sendOverdueSendMsg(adminChatRedBagVo.getId());
            }
        }
    }
 
    @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());
    }
}