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.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; 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); } } /** * 自动发送红包定时器 */ // @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()); } } } }