admin
2020-05-20 98b1a0affd69bbe63223c21fdd2c404e8bedfccb
fanli/src/main/java/com/yeshi/fanli/service/impl/user/integral/IntegralGetServiceImpl.java
@@ -7,6 +7,7 @@
import org.springframework.context.annotation.Lazy;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.yeshi.fanli.dao.mybatis.ThreeSaleMapper;
import com.yeshi.fanli.entity.bus.user.UserInfo;
@@ -17,17 +18,20 @@
import com.yeshi.fanli.entity.integral.IntegralTask.TaskUniqueKeyEnum;
import com.yeshi.fanli.entity.integral.IntegralTaskRank;
import com.yeshi.fanli.entity.integral.IntegralTaskRecord;
import com.yeshi.fanli.entity.integral.UserGetIntegralFromOrderRecord;
import com.yeshi.fanli.exception.integral.IntegralGetException;
import com.yeshi.fanli.exception.integral.IntegralTaskRecordException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.integral.IntegralGetService;
import com.yeshi.fanli.service.inter.user.integral.IntegralTaskRankService;
import com.yeshi.fanli.service.inter.user.integral.IntegralTaskRecordService;
import com.yeshi.fanli.service.inter.user.integral.IntegralTaskService;
import com.yeshi.fanli.service.inter.user.integral.UserGetIntegralFromOrderRecordService;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.annotation.RequestSerializableByKeyService;
import com.yeshi.fanli.util.annotation.integral.IntegralGetFrequencyLimit;
import com.yeshi.fanli.util.annotation.integral.IntegralGetVersionLimit;
import com.yeshi.fanli.util.factory.integral.UserGetIntegralFromOrderRecordFactory;
@Lazy
@Service
@@ -51,12 +55,15 @@
   @Resource
   private IntegralTaskRankService integralTaskRankService;
   // TODO 有bug
   @Resource
   private UserGetIntegralFromOrderRecordService userGetIntegralFromOrderRecordService;
   private UserInfo getBossByUid(Long uid) {
      return threeSaleMapper.selectBoss(uid);
   }
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid + '-' + #event")
   @Override
   public IntegralTaskRecord addEventStatistic(Long uid, String event) throws IntegralGetException {
      Date nowDate = new Date();
@@ -64,11 +71,11 @@
      if (task == null)
         throw new IntegralGetException(1, "事件类型不存在");
      if (TaskUniqueKeyEnum.inShop == TaskUniqueKeyEnum.valueOf(event)) {
         UserInfo boss = getBossByUid(uid);
         if (boss != null)
            addInShopLevelOne(boss.getId()); // 下级浏览店铺
      }
//      if (TaskUniqueKeyEnum.inShop == TaskUniqueKeyEnum.valueOf(event)) {
//         UserInfo boss = getBossByUid(uid);
//         if (boss != null)
//            addInShopLevelOne(boss.getId()); // 下级浏览店铺
//      }
      if (task.getFrequency() == FrequencyEnum.everyday) {
         int count = integralTaskRecordService.countGetCountByTaskIdAndDay(task.getId(), uid, nowDate);
@@ -142,7 +149,7 @@
      return null;
   }
   @IntegralGetFrequencyLimit(key = "'addShareInvite-'+#uid", time = 30)
   @Override
   public IntegralTaskRecord addShareInvite(Long uid) {
@@ -175,7 +182,7 @@
         addEventStatistic(uid, TaskUniqueKeyEnum.inShopLevelOne.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
@@ -185,7 +192,7 @@
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.inShopLevelTwo.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
@@ -253,11 +260,12 @@
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.taoLiJinBuy.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Async()
   @Override
   public void addInviteLevelOne(Long uid, Long workerId) {
@@ -268,7 +276,7 @@
         addEventStatistic(uid, TaskUniqueKeyEnum.inviteLevelOne.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
          //LogHelper.errorDetailInfo(e);
      }
   }
@@ -278,12 +286,13 @@
    * @param uid
    */
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Async()
   private void addInviteLevelTwo(Long uid) {
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.inviteLevelTwo.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
          //LogHelper.errorDetailInfo(e);
      }
   }
@@ -295,7 +304,7 @@
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.shareSingleGoods.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
@@ -307,7 +316,7 @@
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.shareMultipleGoods.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
@@ -319,40 +328,43 @@
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.shareTLJGoods.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Async()
   @Override
   public void addGiveRebateCoupon(Long uid) {
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.giveRebateCoupon.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Async()
   @Override
   public void addGiveFreeCoupon(Long uid) {
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.giveFreeCoupon.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Async()
   @Override
   public void addGiveTaoLiJin(Long uid) {
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.giveTaoLiJin.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
@@ -364,7 +376,7 @@
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.closeRecommendGoods.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
@@ -374,13 +386,13 @@
   @Override
   public void addCouponRebate(Long uid) {
      try {
         UserInfo boss = getBossByUid(uid);
         if (boss != null)
            addCouponRebateLevelOne(boss.getId());
//         UserInfo boss = getBossByUid(uid);
//         if (boss != null)
//            addCouponRebateLevelOne(boss.getId());
         addEventStatistic(uid, TaskUniqueKeyEnum.couponRebate.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
@@ -390,6 +402,7 @@
    * @param uid
    */
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Async()
   private void addCouponRebateLevelOne(Long uid) {
      try {
@@ -399,7 +412,7 @@
         addEventStatistic(uid, TaskUniqueKeyEnum.couponRebateLevelOne.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
@@ -409,23 +422,31 @@
    * @param uid
    */
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Async()
   private void addCouponRebateLevelTwo(Long uid) {
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.couponRebateLevelTwo.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Async()
   @Transactional
   @Override
   public void addRebateOrder(Long uid) {
   public void addRebateOrder(Long uid, String orderNo, int sourceType) {
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.rebateOrder.name());
         IntegralTaskRecord record = addEventStatistic(uid, TaskUniqueKeyEnum.rebateOrder.name());
         if (record != null) {
            userGetIntegralFromOrderRecordService.addRecord(
                  UserGetIntegralFromOrderRecordFactory.create(UserGetIntegralFromOrderRecord.TYPE_RECIEVE_MONEY,
                        uid, orderNo, sourceType, record.getGoldCoin()));
         }
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
@@ -434,14 +455,22 @@
    * 
    * @param uid
    */
   @IntegralGetVersionLimit(uid = "#uid")
   //@IntegralGetVersionLimit(uid = "#uid")
   //@RequestSerializableByKeyService(key = "#uid")
   @Async()
   @Transactional
   @Override
   public void addInviteOrderLevelOne(Long uid) {
   public void addInviteOrderLevelOne(Long uid, String orderNo, int sourceType) {
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.inviteOrderLevelOne.name());
//         IntegralTaskRecord record = addEventStatistic(uid, TaskUniqueKeyEnum.inviteOrderLevelOne.name());
//         if (record != null) {
//            userGetIntegralFromOrderRecordService.addRecord(
//                  UserGetIntegralFromOrderRecordFactory.create(UserGetIntegralFromOrderRecord.TYPE_RECIEVE_MONEY,
//                        uid, orderNo, sourceType, record.getGoldCoin()));
//         }
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
@@ -450,124 +479,148 @@
    * 
    * @param uid
    */
   @IntegralGetVersionLimit(uid = "#uid")
   //@IntegralGetVersionLimit(uid = "#uid")
   //@RequestSerializableByKeyService(key = "#uid")
   @Async()
   @Transactional
   @Override
   public void addInviteOrderLevelTwo(Long uid) {
   public void addInviteOrderLevelTwo(Long uid, String orderNo, int sourceType) {
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.inviteOrderLevelTwo.name());
//         IntegralTaskRecord record = addEventStatistic(uid, TaskUniqueKeyEnum.inviteOrderLevelTwo.name());
//         if (record != null) {
//            userGetIntegralFromOrderRecordService.addRecord(
//                  UserGetIntegralFromOrderRecordFactory.create(UserGetIntegralFromOrderRecord.TYPE_RECIEVE_MONEY,
//                        uid, orderNo, sourceType, record.getGoldCoin()));
//         }
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Async()
   @Transactional
   @Override
   public void addShareOrder(Long uid) {
   public void addShareOrder(Long uid, String orderNo, int sourceType) {
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.shareOrder.name());
         IntegralTaskRecord record = addEventStatistic(uid, TaskUniqueKeyEnum.shareOrder.name());
         if (record != null) {
            userGetIntegralFromOrderRecordService.addRecord(
                  UserGetIntegralFromOrderRecordFactory.create(UserGetIntegralFromOrderRecord.TYPE_RECIEVE_MONEY,
                        uid, orderNo, sourceType, record.getGoldCoin()));
         }
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Async()
   @Override
   public void addBindWeiXin(Long uid) {
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.bindWeiXin.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Async()
   @Override
   public void addBindPhone(Long uid) {
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.bindPhone.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Async()
   @Override
   public void addBindTaoBao(Long uid) {
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.bindTaoBao.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Async()
   @Override
   public void addSetWeiXinNum(Long uid) {
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.setWeiXinNum.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Async()
   @Override
   public void addSetGender(Long uid) {
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.setGender.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Async()
   @Override
   public void addSetPortrait(Long uid) {
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.setPortrait.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Async()
   @Override
   public void addSetNickname(Long uid) {
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.setNickName.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Async()
   @Override
   public void addBindAlipay(Long uid) {
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.bindAlipay.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }
   @IntegralGetVersionLimit(uid = "#uid")
   @RequestSerializableByKeyService(key = "#uid")
   @Async()
   @Override
   public void addInviteActivate(Long uid) {
      try {
         addEventStatistic(uid, TaskUniqueKeyEnum.inviteActivate.name());
      } catch (Exception e) {
         LogHelper.errorDetailInfo(e);
         // LogHelper.errorDetailInfo(e);
      }
   }