yujian
2019-03-07 e6cb7c27384f22b39ccee584028e23b56c30e9ee
fanli/src/main/java/com/yeshi/fanli/util/SpringContext.java
@@ -12,14 +12,18 @@
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.core.task.TaskExecutor;
import org.springframework.stereotype.Component;
import org.yeshi.utils.tencentcloud.COSManager;
import org.yeshi.utils.tencentcloud.entity.COSInitParams;
import com.yeshi.fanli.entity.bus.user.AlipayTransferResultInfo;
import com.yeshi.fanli.entity.bus.user.HongBao;
import com.yeshi.fanli.entity.bus.user.HongBaoV2;
import com.yeshi.fanli.entity.bus.user.ThreeSale;
import com.yeshi.fanli.entity.push.PushQueueRecord;
import com.yeshi.fanli.entity.taobao.TaoBaoOrder;
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
import com.yeshi.fanli.exception.TaoBaoWeiQuanException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.lable.BoutiqueAutoRuleService;
import com.yeshi.fanli.service.inter.lable.LabelService;
import com.yeshi.fanli.service.inter.lable.QualityFactoryService;
@@ -27,8 +31,7 @@
import com.yeshi.fanli.service.inter.push.IOSPushService;
import com.yeshi.fanli.service.inter.user.ExtractService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import org.yeshi.utils.tencentcloud.COSManager;
import org.yeshi.utils.tencentcloud.entity.COSInitParams;
import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
/**
 * 系统初始化
@@ -63,6 +66,12 @@
   @Resource
   private QualityFactoryService qualityFactoryService;
   @Resource
   private UserSystemCouponService userSystemCouponService;
   @Resource
   private ThreeSaleSerivce threeSaleSerivce;
   private static boolean isInited = false;
   public void onApplicationEvent(ContextRefreshedEvent arg0) {
@@ -85,13 +94,14 @@
      if (Constant.IS_TASK) {
         doExtractResult();// 处理提现结果
         doTaoBaoOrders();// 处理淘宝订单
         doOrderFanLi();// 处理订单返利
         doOrderFanLiNew();// 新版返利
         doOrderTiChengFanLi();// 处理订单提成返利
         doWeiQuanOrder();// 处理维权订单
         doPushIOS();// 处理发送IOS消息
         doThreeSaleUserCouponJob();// 处理邀请队列
      } else if (!Constant.IS_TEST) {
         initScheduler();// 启动定时任务
         doUpdateGoodsJob();
         // doUpdateGoodsJob();
      }
   }
@@ -166,7 +176,11 @@
                        orderProcessService.processOrder(map);
                     }
                  } catch (Exception e) {
                     try {
                        LogHelper.errorDetailInfo(e);
                     } catch (Exception e1) {
                     }
                  }
               }
            }
@@ -175,22 +189,22 @@
   }
   /**
    * 处理淘宝订单返利
    * 处理新版淘宝订单返利
    */
   public void doOrderFanLi() {
   public void doOrderFanLiNew() {
      executor.execute(new Runnable() {
         @Override
         public void run() {
            while (true) {
               try {
                  Map<String, HongBao> map = CMQManager.getInstance().consumeFanLiMsg(16);
                  Map<String, HongBaoV2> map = CMQManager.getInstance().consumeFanLiMsgNew(16);
                  if (map != null) {
                     Iterator<String> its = map.keySet().iterator();
                     while (its.hasNext()) {
                        String handler = its.next();
                        try {
                           orderProcessService.fanli(map.get(handler));
                           CMQManager.getInstance().deleteFanLiMsg(handler);
                           CMQManager.getInstance().deleteFanLiMsgNew(handler);
                        } catch (TaoBaoWeiQuanException e) {
                           try {
                              LogHelper.errorDetailInfo(e);
@@ -199,7 +213,7 @@
                           }
                        } catch (Exception e) {
                           try {
                              LogHelper.errorDetailInfo(e);
                              LogHelper.errorDetailInfo(e, "HongBaoV2-ID:" + map.get(handler).getId(), "");
                           } catch (Exception e1) {
                              e1.printStackTrace();
                           }
@@ -344,7 +358,7 @@
   public void doUpdateGoodsJob() {
      // 采用4个线程做更新
      for (int i = 0; i < 4; i++)
      for (int i = 0; i < 1; i++)
         executor.execute(new Runnable() {
            @Override
            public void run() {
@@ -376,6 +390,66 @@
                        }
                     }
                  } catch (Exception e) {
                     LogHelper.error("更新商品出错:" + e.getMessage());
                  }
               }
            }
         });
   }
   /**
    * 邀请关系变化后券的更新
    */
   public void doThreeSaleUserCouponJob() {
      // 采用2个线程做更新
      for (int i = 0; i < 2; i++)
         executor.execute(new Runnable() {
            @Override
            public void run() {
               while (true) {
                  try {
                     Map<String, ThreeSale> map = ThreeSaleCMQManager.getInstance()
                           .consumeQueueMsg(ThreeSaleCMQManager.QUEUE_USER_COUPON, 16);
                     if (map != null) {
                        Iterator<String> its = map.keySet().iterator();
                        while (its.hasNext()) {
                           String key = its.next();
                           try {
                              ThreeSale threeSale = map.get(key);
                              if (threeSale != null)
                                 threeSale = threeSaleSerivce.selectByPrimaryKey(threeSale.getId());
                              if (threeSale != null) {
                                 if (threeSale.getState() != null && threeSale.getState() == true) {
                                    // 邀请成功 - 券激活生效
                                    LogHelper.test("doThreeSaleUserCouponJob-" + threeSale.getId());
                                    Long bossId = threeSale.getBoss().getId();
                                    // 下级昵称
                                    String workerNickName = userInfoService
                                          .selectByPKey(threeSale.getWorker().getId()).getNickName();
                                    userSystemCouponService.activatedWelfareFreeCoupon(bossId,
                                          workerNickName);
                                 }
                              }
                              ThreeSaleCMQManager.getInstance()
                                    .deleteQueueMsg(ThreeSaleCMQManager.QUEUE_USER_COUPON, key);
                           } catch (Exception e) {
                              try {
                                 LogHelper.errorDetailInfo(e);
                              } catch (Exception e1) {
                                 e1.printStackTrace();
                              }
                           }
                        }
                     }
                  } catch (Exception e) {
                     LogHelper.error("更新商品出错:" + e.getMessage());
                  }
               }