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;
@@ -78,6 +79,7 @@
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.TokenUtil;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.annotation.RequestSerializableByKeyService;
@@ -176,15 +178,12 @@
   @Resource
   private UserSystemCouponActivateService userSystemCouponActivateService;
   @Resource(name = "producer")
   private Producer producer;
   
   @Lazy
   @Resource
   private UserVIPInfoService userVIPInfoService;
   @Override
   public int insertSelective(UserSystemCoupon record) {
@@ -232,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 {
@@ -301,8 +300,8 @@
      userCoupon.setCreateTime(new Date());
      userCoupon.setUpdateTime(new Date());
      userSystemCouponMapper.insertSelective(userCoupon);
      if(coupon.getType() == CouponTypeEnum.freeCoupon) {
      if (coupon.getType() == CouponTypeEnum.freeCoupon) {
         userSystemCouponActivateService.addActivateRecord(userCoupon.getId());
      }
@@ -346,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 {
@@ -451,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);
@@ -469,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()));
            }
         }
@@ -612,7 +611,7 @@
      return hasCoupon;
   }
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   @Override
   public List<UserSystemCouponVO> getOrderCouponList(Long uid) throws UserSystemCouponException, Exception {
@@ -635,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 {
@@ -741,7 +740,7 @@
      return userSystemCouponMapper.countUsableByUid(uid, listCouponId);
   }
   @Transactional
   @Transactional(rollbackFor = Exception.class)
   @Override
   public void useGoodsCoupon(Long uid, Long id, Long goodId, Integer sourceType)
         throws UserSystemCouponException, Exception {
@@ -818,7 +817,7 @@
   }
   @Transactional
   @Transactional(rollbackFor = Exception.class)
   @Override
   public void useOrderCoupon(Long uid, Long id, String orderNo, Integer sourceType, AcceptData acceptData)
         throws UserSystemCouponException, Exception {
@@ -855,44 +854,62 @@
      if (orderNo == null || orderNo.trim().length() == 0)
         throw new UserSystemCouponException(1, "订单号不存在");
      // 订单
      CommonOrderVO orderVO = commonOrderService.getCommonOrderByOrderNo(uid, orderNo, CommonOrder.STATE_JS,
            sourceType);
      if (orderVO == null)
         throw new UserSystemCouponException(1, "订单信息获取失败");
      // 版本区分:2.0.2
      if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
         Date thirdCreateTime = orderVO.getThirdCreateTime();
         if (thirdCreateTime != null) {
            long downOrderTime = thirdCreateTime.getTime();
            long limitDate = Long.parseLong("1573315200000"); // TODO
                                                   // 日期待确定2019-11-10
            if (downOrderTime > limitDate) {
               Date endDay = DateUtil.plusDayDate(4, thirdCreateTime);
               long currentTime = java.lang.System.currentTimeMillis();
               if (endDay.getTime() > currentTime) {
                  boolean valid = false;
                  DateInfo dateInfo = DateUtil.dateDiff3(currentTime, endDay.getTime());
                  if (dateInfo != null) {
                     if (dateInfo.getDay() > 0)
                        valid = true;
                     if (!valid && dateInfo.getHour() > 0)
                        valid = true;
                     if (!valid && dateInfo.getMinute() > 0)
                        valid = true;
                     if (!valid && dateInfo.getSecond() >= 0)
                        valid = true;
                  }
                  if (!valid)
                     throw new UserSystemCouponException(1, "该订单已不能使用使用奖励券,详情请咨询客服");
               }
      // 检查订单号是否维权
      List<CommonOrder> commonOrderList = commonOrderService.listBySourceTypeAndOrderId(sourceType, orderNo);
      boolean weiquan = false;
      if (commonOrderList != null) {
         for (CommonOrder commonOrder : commonOrderList) {
            if (commonOrder.getState() == CommonOrder.STATE_WQ) {
               weiquan = true;
               break;
            }
         }
      }
      if (weiquan) {
         throw new UserSystemCouponException(1, "亲,很遗憾,售后维权订单不能使用返利奖励券~");
      }
      // 订单
      List<CommonOrderVO> listVo = commonOrderService.listGroupOrderNoByUid(0, 1, uid, 2, 1,1, orderNo, null,
            null, null, sourceType);
      if (listVo == null || listVo.size() == 0)
         throw new UserSystemCouponException(1, "亲,很遗憾,该订单已不能使用返利奖励券~");
      CommonOrderVO orderVO = listVo.get(0);
      // 2.1新版
      Date thirdCreateTime = orderVO.getThirdCreateTime();
      Date accountTime = orderVO.getAccountTime();
      if (thirdCreateTime == null || accountTime == null)
         throw new UserSystemCouponException(1, "该订单不能使用奖励券");
      long downOrderTime = thirdCreateTime.getTime();
      long limitDate = TimeUtil.convertDateToTemp(Constant.VIP_ONLINE_TIME);
      if (downOrderTime > limitDate) {
         boolean valid = false;
         Date endDay = DateUtil.plusDayDate(Constant.COUPON_REWARD_LIMIT_DAY, accountTime);
         long currentTime = java.lang.System.currentTimeMillis();
         if (endDay.getTime() > currentTime) {
            DateInfo dateInfo = DateUtil.dateDiff3(currentTime, endDay.getTime());
            if (dateInfo != null) {
               if (dateInfo.getDay() > 0)
                  valid = true;
               if (!valid && dateInfo.getHour() > 0)
                  valid = true;
               if (!valid && dateInfo.getMinute() > 0)
                  valid = true;
               if (!valid && dateInfo.getSecond() > 0)
                  valid = true;
            }
         }
         if (!valid)
            throw new UserSystemCouponException(1, "该订单不能使用奖励券");
      }
      BigDecimal hongBao = orderVO.getHongBao();
@@ -918,8 +935,7 @@
         UserSystemCouponUseMQMsg mqMsg = new UserSystemCouponUseMQMsg(userSystemCoupon.getId(), order.getOrderId(),
               sourceType, systemCoupon.getType().name());
         // 事务消息
         Message msg =MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.useSystemCoupon,
               mqMsg);
         Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.useSystemCoupon, mqMsg);
         try {
            SendResult result = orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
               @Override
@@ -940,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
@@ -1078,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));
      }
@@ -1139,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";
@@ -1177,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) {
         // 退款
@@ -1196,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) {
         // 免单中
@@ -1210,7 +1226,7 @@
            progressMsg = "免单发起,等待收货";
         }
         rewardCouponRemark = configService.get("free_coupon_remark");
         rewardCouponRemark = configService.get(ConfigKeyEnum.freeCouponRemark.getKey());
      } else if (UserSystemCouponRecord.STATE_SUCCESS == stateRecord) {
         // 免单成功
@@ -1232,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);
@@ -1343,7 +1359,7 @@
      }
   }
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   @Override
   public void updateStateByDrawback(String orderNo) throws Exception {
@@ -1365,7 +1381,7 @@
      sendBackCoupon(record.getUserSystemCoupon(), record);
   }
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   @Override
   public void updateStateByArrivalAccount(String orderNo) throws Exception {
@@ -1399,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 {
@@ -1479,7 +1495,7 @@
   }
   @Override
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   public void copyLotteryPrize(Long uid, int platform, String device) throws Exception {
      return;
@@ -1562,7 +1578,7 @@
   }
   @Override
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   public void randomRewardCoupon(int num, Long uid, String source) throws Exception {
      if (num < 1) {
         return;
@@ -1635,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));
@@ -1702,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) {
@@ -1758,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 {
@@ -1858,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) + ")待激活");
                  }
@@ -1896,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"));
@@ -1905,7 +1921,7 @@
                  userCouponVO.setState(UserSystemCoupon.STATE_GIVE_ONLY);
               } else {// 可使用 可赠送
                  userCouponVO.setState(UserSystemCoupon.STATE_USE_GIVE);
                  jumpLink.put("state", "2"); // 已收货
                  jumpLink.put("showNav", false); // 不显示上方统计信息
                  jumpLink.put("type", "1"); // 返利订单
@@ -1924,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;
            }
@@ -1946,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);
                  }
@@ -2005,7 +2021,7 @@
      return listVO;
   }
   @Transactional
   @Transactional(rollbackFor = Exception.class)
   @Override
   public UserSystemCouponVO giveCoupon(Long uid, Long id) throws UserSystemCouponException {
      UserSystemCoupon userSystemCoupon = userSystemCouponMapper.selectByPrimaryKey(id);
@@ -2032,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, "该券不支持赠送");
      }
@@ -2053,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);
      // 创建记录
@@ -2074,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);
@@ -2102,21 +2119,22 @@
      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);
      UserSystemCouponUseMQMsg msg = new UserSystemCouponUseMQMsg();
      msg.setUserSystemCouponId(id);
      msg.setCouponType(type.name());
      Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.systemCouponDrawback,
            msg);
      Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.systemCouponDrawback, msg);
      // 延迟一分钟
      message.setStartDeliverTime(endTime.getTime() + 1000 * 60);
      try {
         producer.send(message);
      } catch (Exception e) {
         throw new UserSystemCouponException(1, "创建赠送信息失败");
      }
      return couponVO;
   }
@@ -2302,38 +2320,36 @@
      sendBackGiveCoupon(list);
   }
   @Override
   @RequestSerializableByKeyService(key = "#id")
   @RequestSerializableByKeyService(key = "#couponId")
   @Transactional(rollbackFor = Exception.class)
   public void sendBackByGiveId(Long couponId) {
      if (couponId == null)
         return;
      UserSystemCoupon userCoupon = userSystemCouponMapper.selectByPrimaryKey(couponId);
      if (userCoupon == null)
         return;
      Integer state = userCoupon.getState();
      if (state != UserSystemCoupon.STATE_IN_USE)
         return;
      UserSystemCouponGiveRecord giveRecord = userSystemCouponGiveRecordService.getByCouponId(couponId);
      if (giveRecord == null)
         return;
      if (giveRecord.getState() != null && giveRecord.getState() != UserSystemCouponGiveRecord.STATE_INIT)
      if (giveRecord.getState() != null && giveRecord.getState() != UserSystemCouponGiveRecord.STATE_INIT)
         return;
      // 更新赠送记录
      UserSystemCouponGiveRecord updateRecord = new UserSystemCouponGiveRecord();
      updateRecord.setId(giveRecord.getId());
      updateRecord.setState(UserSystemCouponGiveRecord.STATE_OVERDUE);
      userSystemCouponGiveRecordService.updateByPrimaryKeySelective(updateRecord);
      // 口令失效
      tokenRecordService.invalidByCoupon(giveRecord.getId());
      Date now = new Date();
      Date endTime = userCoupon.getEndTime();
@@ -2388,14 +2404,13 @@
      msgOther.setReturnTime(sd.format(new Date()));
      userOtherMsgNotificationService.tokenGiveMsg(giveRecord.getGiveUid(), beiZhu, msgOther);
   }
   @Override
   public void sendBackGiveCoupon(List<UserSystemCouponGiveRecord> overdueList) {
      for (UserSystemCouponGiveRecord record : overdueList) {
         if (record.getState() != null && record.getState() != UserSystemCouponGiveRecord.STATE_INIT)
         if (record.getState() != null && record.getState() != UserSystemCouponGiveRecord.STATE_INIT)
            continue;
         // 更新赠送记录
         UserSystemCouponGiveRecord updateRecord = new UserSystemCouponGiveRecord();
         updateRecord.setId(record.getId());
@@ -2566,9 +2581,9 @@
   @Override
   @Transactional(rollbackFor = Exception.class)
   public void triggerFreeCouponActivate(Long uid, String orderNo, Integer source) {
      if (uid == null || source == null || StringUtil.isNullOrEmpty(orderNo))
      if (uid == null || source == null || StringUtil.isNullOrEmpty(orderNo))
         return;
      UserSystemCoupon coupon = userSystemCouponMapper.getNeedActivateCouponByType(uid,
            CouponTypeEnum.freeCoupon.name());
      if (coupon == null)
@@ -2578,14 +2593,14 @@
      UserSystemCouponActivate couponActivate = userSystemCouponActivateService.selectForUpdate(id);
      if (couponActivate == null)
         return;
      // 验证同订单是否存在
      String key = orderNo + "_" + source;
      String ordernos = couponActivate.getOrdernos();
      if (!StringUtil.isNullOrEmpty(ordernos)) {
         String[] array = ordernos.split(",");
         if (array != null)
            for (int i= 0; i < array.length; i ++) {
            for (int i = 0; i < array.length; i++) {
               if (array[i].equals(key))
                  return;
            }
@@ -2593,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();
@@ -2608,7 +2623,7 @@
      } else {
         ordernos = ordernos + "," + key;
      }
      UserSystemCouponActivate updateActivate = new UserSystemCouponActivate();
      updateActivate.setId(id);
      updateActivate.setState(state);