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 objectQueryWrapper = new QueryWrapper<>(); objectQueryWrapper.eq("auto_send", 1); List 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 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 ids = chatUserMapper.selectChatRedBagByCreateTime(dateTime); if(CollUtil.isNotEmpty(ids)){ Long aLong = ids.get(0); chatUserMapper.deleteChatRedBagById(aLong); List 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 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()); } }