admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/job/UserCloudJob.java
@@ -1,84 +1,101 @@
package com.yeshi.fanli.job;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.yeshi.fanli.entity.bus.user.cloud.UserCloudOrder;
import com.yeshi.fanli.entity.dynamic.GoodsEvaluate;
import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
import com.yeshi.fanli.service.inter.user.cloud.UserCloudOrderService;
import com.yeshi.fanli.service.inter.user.cloud.UserCloudService;
import com.yeshi.fanli.service.manger.alipay.UserCloudAlipayManager;
import com.yeshi.fanli.util.Constant;
@Component
public class UserCloudJob {
   @Resource
   private UserCloudService userCloudService;
   @Resource
   private UserCloudOrderService userCloudOrderService;
   @Resource
   private UserCloudAlipayManager userCloudAlipayManager;
   @Resource
   private GoodsEvaluateService goodsEvaluateService;
   /**
    * 每十分钟检测是否付款
    */
   @Scheduled(cron = "0 0/10 * * * ? ")
   public void tradeQuery() {
      if (!Constant.IS_TASK) {
         return;
      }
      List<UserCloudOrder> list = userCloudOrderService.getLasthourByUnpaid();
      if (list == null || list.size() == 0)
         return;
      for (UserCloudOrder cloudOrder : list) {
         try {
            userCloudAlipayManager.tradeQueryByOrderId(cloudOrder.getId());
         } catch (Exception e) {
            e.printStackTrace();
         }
      }
   }
   /**
    * 定时检测是否存在新的发圈
    */
   @Scheduled(cron = "0 0/20 * * * ? ")
   public void dailyCount() {
      if (!Constant.IS_TASK) {
         return;
      }
      // 9-21 执行云发单
      Calendar nowCalendar = Calendar.getInstance();
      nowCalendar.setTimeInMillis(java.lang.System.currentTimeMillis());
      int hour = nowCalendar.get(Calendar.HOUR_OF_DAY);
      if (hour < 9 && hour > 21)
         return;
      // 一个小时之内最新发圈
      long rand = 1000 * 60 * 60;
      long time = java.lang.System.currentTimeMillis() - rand;
      Date lastTime = new Date(time);
      List<GoodsEvaluate> list = goodsEvaluateService.listByStartTime(lastTime);
      if (list == null || list.size() == 0)
         return;
      userCloudService.fixedTimeSend(list.get(0).getId());
   }
}
package com.yeshi.fanli.job;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.yeshi.fanli.entity.bus.user.cloud.UserCloudOrder;
import com.yeshi.fanli.entity.dynamic.GoodsEvaluate;
import com.yeshi.fanli.entity.dynamic.GoodsEvaluate.EvaluateEnum;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.dynamic.GoodsEvaluateService;
import com.yeshi.fanli.service.inter.user.cloud.UserCloudOrderService;
import com.yeshi.fanli.service.inter.user.cloud.UserCloudService;
import com.yeshi.fanli.service.manger.alipay.UserCloudAlipayManager;
import com.yeshi.fanli.util.Constant;
@Component
public class UserCloudJob {
   @Resource
   private UserCloudService userCloudService;
   @Resource
   private UserCloudOrderService userCloudOrderService;
   @Resource
   private UserCloudAlipayManager userCloudAlipayManager;
   @Resource
   private GoodsEvaluateService goodsEvaluateService;
   /**
    * 每十分钟检测是否付款
    */
   @Scheduled(cron = "0 0/10 * * * ? ")
   public void tradeQuery() {
      if (!Constant.IS_TASK) {
         return;
      }
      List<UserCloudOrder> list = userCloudOrderService.getLasthourByUnpaid();
      if (list == null || list.size() == 0)
         return;
      for (UserCloudOrder cloudOrder : list) {
         try {
            userCloudAlipayManager.tradeQueryByOrderId(cloudOrder.getId());
         } catch (Exception e) {
            LogHelper.errorDetailInfo(e);
            e.printStackTrace();
         }
      }
   }
   /**
    * 定时检测是否存在新的发圈
    */
   @Scheduled(cron = "0 0/20 * * * ? ")
   public void fixedTimeSend() {
      if (!Constant.IS_TASK) {
         return;
      }
      // 9-21 执行云发单
      Calendar nowCalendar = Calendar.getInstance();
      nowCalendar.setTimeInMillis(java.lang.System.currentTimeMillis());
      int hour = nowCalendar.get(Calendar.HOUR_OF_DAY);
      if (hour < 9 || hour > 21)
         return;
      // 活动列表
      List<GoodsEvaluate> listActivity = goodsEvaluateService.queryValidSortASC(1, 100, EvaluateEnum.activity, false);
      // 单品商品
      List<GoodsEvaluate> listGoods = goodsEvaluateService.queryValidSortASC(1, 5, EvaluateEnum.single, true);
      // 执行发单
      userCloudService.fixedTimeSend(listActivity, listGoods, true);
   }
   /**
    * 每日22点进行深夜发圈
    */
   @Scheduled(cron = "0 0 22 * * ? ")
   public void zeroPoint() {
      if (!Constant.IS_TASK) {
         return;
      }
      List<GoodsEvaluate> list = goodsEvaluateService.queryValidZeroPoint(1, 50);
      if (list == null || list.size() == 0) {
         return;
      }
      // 执行发单
      userCloudService.fixedTimeSend(null, list, false);
   }
}