admin
2020-01-01 c8f11c229b87d1652b6da0b15576c166cd51eb8b
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java
@@ -230,7 +230,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 +344,7 @@
      return userCoupon;
   }
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   @Override
   public List<UserSystemCouponVO> getUserCouponVOList(long start, int count, Long uid, boolean changeJump)
         throws UserSystemCouponException, Exception {
@@ -610,7 +610,7 @@
      return hasCoupon;
   }
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   @Override
   public List<UserSystemCouponVO> getOrderCouponList(Long uid) throws UserSystemCouponException, Exception {
@@ -633,7 +633,7 @@
      return getEnableListByCouponId(uid, 1, couponList);
   }
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   @Override
   public List<UserSystemCouponVO> getGoodsCouponList(Long uid, Long auctionId)
         throws UserSystemCouponException, Exception {
@@ -739,7 +739,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 {
@@ -816,7 +816,7 @@
   }
   @Transactional
   @Transactional(rollbackFor = Exception.class)
   @Override
   public void useOrderCoupon(Long uid, Long id, String orderNo, Integer sourceType, AcceptData acceptData)
         throws UserSystemCouponException, Exception {
@@ -869,43 +869,46 @@
         throw new UserSystemCouponException(1, "亲,很遗憾,售后维权订单不能使用返利奖励券~");
      }
      // 订单
      CommonOrderVO orderVO = commonOrderService.getCommonOrderByOrderNo(uid, orderNo, CommonOrder.STATE_JS,
            sourceType);
      if (orderVO == null)
         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;
      // 版本区分:2.1
      if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
         Date thirdCreateTime = orderVO.getThirdCreateTime();
         if (thirdCreateTime != null) {
            long downOrderTime = thirdCreateTime.getTime();
            long limitDate = TimeUtil.parse(Constant.COUPON_REWARD_TIME).getTime();
            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.getHour() > 0)
                        valid = true;
               if (!valid && dateInfo.getMinute() > 0)
                  valid = true;
                     if (!valid && dateInfo.getMinute() > 0)
                        valid = true;
                     if (!valid && dateInfo.getSecond() > 0)
                        valid = true;
                  }
                  if (!valid)
                     throw new UserSystemCouponException(1, "该订单已超过有效使用奖励券时间");
               }
               if (!valid && dateInfo.getSecond() > 0)
                  valid = true;
            }
         }
         if (!valid)
            throw new UserSystemCouponException(1, "该订单不能使用奖励券");
      }
      BigDecimal hongBao = orderVO.getHongBao();
@@ -952,7 +955,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
@@ -1355,7 +1358,7 @@
      }
   }
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   @Override
   public void updateStateByDrawback(String orderNo) throws Exception {
@@ -1377,7 +1380,7 @@
      sendBackCoupon(record.getUserSystemCoupon(), record);
   }
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   @Override
   public void updateStateByArrivalAccount(String orderNo) throws Exception {
@@ -1411,7 +1414,7 @@
      return userSystemCouponMapper.getCounponNowInvalid(count);
   }
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   @Override
   public boolean updateCouponRecordUsed(Long uid, String orderNo, BigDecimal payment, Long auctionId)
         throws Exception {
@@ -1491,7 +1494,7 @@
   }
   @Override
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   public void copyLotteryPrize(Long uid, int platform, String device) throws Exception {
      return;
@@ -1574,7 +1577,7 @@
   }
   @Override
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   public void randomRewardCoupon(int num, Long uid, String source) throws Exception {
      if (num < 1) {
         return;
@@ -1714,7 +1717,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) {
@@ -1770,7 +1773,7 @@
      insertSelective(userCoupon);
   }
   @Transactional
   @Transactional(rollbackFor=Exception.class)
   @Override
   public List<UserSystemCouponVO> getCouponList(AcceptData acceptData, long start, int count, Long uid)
         throws UserSystemCouponException, Exception {
@@ -2017,7 +2020,7 @@
      return listVO;
   }
   @Transactional
   @Transactional(rollbackFor = Exception.class)
   @Override
   public UserSystemCouponVO giveCoupon(Long uid, Long id) throws UserSystemCouponException {
      UserSystemCoupon userSystemCoupon = userSystemCouponMapper.selectByPrimaryKey(id);
@@ -2072,12 +2075,13 @@
      }
      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);
      // 创建记录
@@ -2086,7 +2090,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);
@@ -2122,6 +2126,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) {
@@ -2314,7 +2320,7 @@
   }
   @Override
   @RequestSerializableByKeyService(key = "#id")
   @RequestSerializableByKeyService(key = "#couponId")
   @Transactional(rollbackFor = Exception.class)
   public void sendBackByGiveId(Long couponId) {
      if (couponId == null)