yujian
2020-01-18 f4a0f2acc63d7785eab108419a4e16f5f688cb95
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java
@@ -46,6 +46,7 @@
import com.yeshi.fanli.entity.common.JumpDetailV2;
import com.yeshi.fanli.entity.money.UserMoneyDetail;
import com.yeshi.fanli.entity.order.CommonOrder;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.entity.system.SystemCoupon;
import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
@@ -230,7 +231,7 @@
   }
   @Override
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   public UserSystemCoupon insertUserCoupon(Long uid, String couponType, String source, BigDecimal percent,
         Boolean needNotify) throws UserSystemCouponException, Exception {
@@ -344,7 +345,7 @@
      return userCoupon;
   }
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   @Override
   public List<UserSystemCouponVO> getUserCouponVOList(long start, int count, Long uid, boolean changeJump)
         throws UserSystemCouponException, Exception {
@@ -449,7 +450,7 @@
                  // 免单券、 福利免单券
                  // 免单商品列表
                  jumpLink.put("url", configService.get("free_goods_list"));
                  jumpLink.put("url", configService.get(ConfigKeyEnum.freeGoodsList.getKey()));
                  jumpBtn = new HashMap<String, Object>();
                  jumpBtn.put("params", jumpLink);
@@ -467,7 +468,7 @@
            } else if (UserSystemCoupon.STATE_IN_USE == state) {
               // 使用中
               userCouponVO.setInUseExplain(configService.get("free_coupon_using-help"));
               userCouponVO.setInUseExplain(configService.get(ConfigKeyEnum.freeCouponUsingHelp.getKey()));
            }
         }
@@ -610,7 +611,7 @@
      return hasCoupon;
   }
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   @Override
   public List<UserSystemCouponVO> getOrderCouponList(Long uid) throws UserSystemCouponException, Exception {
@@ -633,7 +634,7 @@
      return getEnableListByCouponId(uid, 1, couponList);
   }
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   @Override
   public List<UserSystemCouponVO> getGoodsCouponList(Long uid, Long auctionId)
         throws UserSystemCouponException, Exception {
@@ -955,7 +956,7 @@
      }
   }
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   public void useRewardCouponCore(UserSystemCoupon userSystemCoupon, BigDecimal money, BigDecimal hongBao, Long uid,
         Order order) throws Exception {
      org.springframework.transaction.TransactionStatus transactionStatus = transactionManager
@@ -1093,9 +1094,9 @@
      userRecordVO.setJumpWelfare(jumpWelfare);
      // 跳转奖励券规则
      userRecordVO.setRuleLink(configService.get("reward_coupon_help"));
      userRecordVO.setRuleLink(configService.get(ConfigKeyEnum.rewardCouponHelp.getKey()));
      String rewardCouponRemark = configService.get("reward_coupon_remark");
      String rewardCouponRemark = configService.get(ConfigKeyEnum.rewardCouponRemark.getKey());
      if (rewardCouponRemark != null && rewardCouponRemark.trim().length() > 0) {
         userRecordVO.setRemark(JSONObject.fromObject(rewardCouponRemark));
      }
@@ -1154,7 +1155,7 @@
      String progressMsg = "";
      String progressColor = "";
      // 跳转奖励券规则
      userRecordVO.setRuleLink(configService.get("free_coupon_help"));
      userRecordVO.setRuleLink(configService.get(ConfigKeyEnum.freeCouponHelp.getKey()));
      // 进度: 1 灰色 2 红色 3 绿色
      String progressState1 = "3";
@@ -1192,7 +1193,7 @@
         jumpDetail = jumpDetailV2Service.getByTypeCache("welfareCore");
         rewardCouponRemark = configService.get("free_coupon_back_remark");
         rewardCouponRemark = configService.get(ConfigKeyEnum.freeCouponBackRemark.getKey());
      } else if (UserSystemCouponRecord.STATE_FAIL_DRAWBACK == stateRecord) {
         // 退款
@@ -1211,7 +1212,7 @@
         jumpDetail = jumpDetailV2Service.getByTypeCache("welfareCore");
         rewardCouponRemark = configService.get("free_coupon_back_remark");
         rewardCouponRemark = configService.get(ConfigKeyEnum.freeCouponBackRemark.getKey());
      } else if (UserSystemCouponRecord.STATE_FREE_ON == stateRecord) {
         // 免单中
@@ -1225,7 +1226,7 @@
            progressMsg = "免单发起,等待收货";
         }
         rewardCouponRemark = configService.get("free_coupon_remark");
         rewardCouponRemark = configService.get(ConfigKeyEnum.freeCouponRemark.getKey());
      } else if (UserSystemCouponRecord.STATE_SUCCESS == stateRecord) {
         // 免单成功
@@ -1247,7 +1248,7 @@
         jumpDetail = jumpDetailV2Service.getByTypeCache("capitalDetails");
         rewardCouponRemark = configService.get("free_coupon_remark");
         rewardCouponRemark = configService.get(ConfigKeyEnum.freeCouponRemark.getKey());
      }
      userRecordVO.setProgressState(progressState);
      userRecordVO.setPayMoney(payMoney);
@@ -1358,7 +1359,7 @@
      }
   }
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   @Override
   public void updateStateByDrawback(String orderNo) throws Exception {
@@ -1380,7 +1381,7 @@
      sendBackCoupon(record.getUserSystemCoupon(), record);
   }
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   @Override
   public void updateStateByArrivalAccount(String orderNo) throws Exception {
@@ -1414,7 +1415,7 @@
      return userSystemCouponMapper.getCounponNowInvalid(count);
   }
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   @Override
   public boolean updateCouponRecordUsed(Long uid, String orderNo, BigDecimal payment, Long auctionId)
         throws Exception {
@@ -1494,7 +1495,7 @@
   }
   @Override
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   public void copyLotteryPrize(Long uid, int platform, String device) throws Exception {
      return;
@@ -1577,7 +1578,7 @@
   }
   @Override
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   public void randomRewardCoupon(int num, Long uid, String source) throws Exception {
      if (num < 1) {
         return;
@@ -1650,7 +1651,7 @@
         throws Exception {
      // 添加奖励券
      insertUserCoupon(uid, CouponTypeEnum.rebatePercentCoupon.name(), "系统赠送",
            new BigDecimal(configService.get("exchange_rebate_percent")), false);
            new BigDecimal(configService.get(ConfigKeyEnum.exchangeRebatePercent.getKey())), false);
      // 添加奖励券消息
      userOtherMsgNotificationService.systemGiveRewardCoupon(uid, null, MsgOtherSystemGiveDTOFactory
            .createRewardCouponGive(num, "请按照返利奖励券规则使用", "返利奖励券", orderId, orderType, reason));
@@ -1717,7 +1718,7 @@
   }
   @Override
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   public void exchangeCoupon(Long uid, String couponType, String source, BigDecimal percent)
         throws UserSystemCouponException, Exception {
      if (couponType == null || uid == null) {
@@ -1773,7 +1774,7 @@
      insertSelective(userCoupon);
   }
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   @Override
   public List<UserSystemCouponVO> getCouponList(AcceptData acceptData, long start, int count, Long uid)
         throws UserSystemCouponException, Exception {
@@ -1873,7 +1874,7 @@
                  // 统计待激活数量
                  if (VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), acceptData.getVersion())) {
                     int activateCount = userSystemCouponActivateService.getActivateCount(userCouponVO.getId());
                     String activateNum = configService.get("free_coupon_activate_num");
                     String activateNum = configService.get(ConfigKeyEnum.freeCouponActivateNum.getKey());
                     userCouponVO.setCouponEffect(
                           "(" + activateCount + "/" + Integer.parseInt(activateNum) + ")待激活");
                  }
@@ -1911,7 +1912,7 @@
               userCouponVO.setState(UserSystemCoupon.STATE_GIVE_ONLY);
            } else if (CouponTypeEnum.freeCoupon == type || CouponTypeEnum.welfareFreeCoupon == type
                  || CouponTypeEnum.freeCouponBuy == type) {
               jumpLink.put("url", configService.get("free_goods_list"));
               jumpLink.put("url", configService.get(ConfigKeyEnum.freeGoodsList.getKey()));
               jumpBtn = new HashMap<String, Object>();
               jumpBtn.put("params", jumpLink);
               jumpBtn.put("jumpDetail", jumpDetailV2Service.getByTypeCache("web"));
@@ -1939,13 +1940,13 @@
            TokenTypeEnum tokenType = null;
            if (CouponTypeEnum.freeCouponGive == type) {
               userCouponVO.setState(UserSystemCoupon.STATE_GIVE_IN);
               tips = configService.get("give_free_coupon_tips");
               tips = configService.get(ConfigKeyEnum.giveFreeCouponTips.getKey());
               tokenType = TokenTypeEnum.freeCoupon;
            }
            if (CouponTypeEnum.rebatePercentCoupon == type) {
               userCouponVO.setState(UserSystemCoupon.STATE_GIVE_IN);
               tips = configService.get("give_rebate_percent_coupon_tips");
               tips = configService.get(ConfigKeyEnum.giveRebatePercentCouponTips.getKey());
               tokenType = TokenTypeEnum.rebatePercentCoupon;
            }
@@ -1961,7 +1962,7 @@
                        tips = tips.replace("{APP名称}", projectChineseName);
                     }
                     tips = tips.replace("{口令}", tokenRecord.getToken()).replace("{下载链接}",
                           configService.get("app_down_link"));
                           configService.get(ConfigKeyEnum.appDownLink.getKey()));
                     userCouponVO.setGiveTips(tips);
                  }
@@ -2047,10 +2048,10 @@
      TokenTypeEnum tokenTypeEnum = null;
      if (type == CouponTypeEnum.freeCouponGive) {
         tokenTypeEnum = TokenTypeEnum.freeCoupon;
         tips = configService.get("give_free_coupon_tips");
         tips = configService.get(ConfigKeyEnum.giveFreeCouponTips.getKey());
      } else if (type == CouponTypeEnum.rebatePercentCoupon) {
         tokenTypeEnum = TokenTypeEnum.rebatePercentCoupon;
         tips = configService.get("give_rebate_percent_coupon_tips");
         tips = configService.get(ConfigKeyEnum.giveRebatePercentCouponTips.getKey());
      } else {
         throw new UserSystemCouponException(1, "该券不支持赠送");
      }
@@ -2068,19 +2069,20 @@
               tips = tips.replace("{APP名称}", projectChineseName);
            }
            tips = tips.replace("{口令}", tokenRecord.getToken()).replace("{下载链接}",
                  configService.get("app_down_link"));
                  configService.get(ConfigKeyEnum.appDownLink.getKey()));
            return createUserCouponVOo(userSystemCoupon, systemCoupon, record, tips);
         }
      }
      Date nowDate = new Date();
      Date endTime = DateUtil.plusDayDate(Constant.GIVE_DAYS, nowDate);
      // 插入赠送记录
      UserSystemCouponGiveRecord giveRecord = new UserSystemCouponGiveRecord();
      giveRecord.setCouponId(id);
      giveRecord.setGiveUid(uid);
      giveRecord.setGiveTime(nowDate);
      giveRecord.setEndTime(DateUtil.plusDayDate(Constant.GIVE_DAYS, nowDate));
      giveRecord.setEndTime(endTime);
      userSystemCouponGiveRecordService.insertSelective(giveRecord);
      // 创建记录
@@ -2089,7 +2091,7 @@
      tokenRecord.setIdentify(giveRecord.getId() + "");
      tokenRecord.setType(tokenTypeEnum);
      tokenRecord.setStartTime(nowDate);
      tokenRecord.setEndTime(DateUtil.plusDayDate(Constant.TOKEN_DAYS, nowDate));
      tokenRecord.setEndTime(endTime);
      tokenRecord.setState(0);
      tokenRecordService.insertSelective(tokenRecord);
@@ -2117,7 +2119,7 @@
      while (tips.contains("{APP名称}")) {
         tips = tips.replace("{APP名称}", projectChineseName);
      }
      tips = tips.replace("{口令}", token).replace("{下载链接}", configService.get("app_down_link"));
      tips = tips.replace("{口令}", token).replace("{下载链接}", configService.get(ConfigKeyEnum.appDownLink.getKey()));
      UserSystemCouponVO couponVO = createUserCouponVOo(userSystemCoupon, systemCoupon, giveRecord, tips);
@@ -2125,6 +2127,8 @@
      msg.setUserSystemCouponId(id);
      msg.setCouponType(type.name());
      Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.systemCouponDrawback, msg);
      // 延迟一分钟
      message.setStartDeliverTime(endTime.getTime() + 1000 * 60);
      try {
         producer.send(message);
      } catch (Exception e) {
@@ -2317,7 +2321,7 @@
   }
   @Override
   @RequestSerializableByKeyService(key = "#id")
   @RequestSerializableByKeyService(key = "#couponId")
   @Transactional(rollbackFor = Exception.class)
   public void sendBackByGiveId(Long couponId) {
      if (couponId == null)
@@ -2604,7 +2608,7 @@
      // 激活数量
      boolean result = false;
      int limitNum = Integer.parseInt(configService.get("free_coupon_activate_num"));
      int limitNum = Integer.parseInt(configService.get(ConfigKeyEnum.freeCouponActivateNum.getKey()));
      Integer state = couponActivate.getState();
      int count = couponActivate.getCount();