yujian
2020-06-29 645c16466ce9dbe563c03943b0ab5fd46c8eed00
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java
@@ -322,7 +322,7 @@
   @Override
   @Transactional(rollbackFor = Exception.class)
   public UserSystemCoupon freeCouponWinBySystem(Long uid, CouponTypeEnum typeEnum, String source, int num, boolean notify,
         Integer expiryDay) throws UserSystemCouponException, Exception {
         Integer expiryDay, Integer activated) throws UserSystemCouponException, Exception {
      if (typeEnum == null || uid == null || StringUtil.isNullOrEmpty(source) || num < 1) {
         throw new UserSystemCouponException(1, "参数不正确");
      }
@@ -333,15 +333,14 @@
      }
      // 激活状态
      int stateActivated = 0;
      // 自购免单券、赠送免单券可直接使用
      if (coupon.getType() == CouponTypeEnum.freeCouponBuy || coupon.getType() == CouponTypeEnum.freeCouponGive) {
         stateActivated = 1;
         activated = 1;
      }
      // 有效时长
      if (expiryDay == null) {
         if (stateActivated == 0)
         if (activated == 0)
            expiryDay = coupon.getActivateDay();
         if (expiryDay == null || expiryDay == 0)
            expiryDay = coupon.getExpiryDay();
@@ -363,7 +362,7 @@
         userCoupon.setSource(source);
         userCoupon.setSystemCoupon(coupon);
         userCoupon.setState(UserSystemCoupon.STATE_CAN_USE);
         userCoupon.setStateActivated(stateActivated);
         userCoupon.setStateActivated(activated);
         userCoupon.setStartTime(nowTime);
         userCoupon.setEndTime(endTime);
         userCoupon.setCreateTime(nowTime);
@@ -1655,62 +1654,6 @@
      }
   }
   @Override
   @Transactional(rollbackFor = Exception.class)
   public void exchangeCoupon(Long uid, String couponType, String source, BigDecimal percent)
         throws UserSystemCouponException, Exception {
      if (couponType == null || uid == null) {
         throw new UserSystemCouponException(1, "参数不正确");
      }
      SystemCoupon coupon = null;
      if (couponType.equals(CouponTypeEnum.rebatePercentCoupon.name())) {
         coupon = systemCouponService.getCouponByTypeAndPercent(couponType, percent);
      } else {
         coupon = systemCouponService.getCouponByType(couponType);
      }
      if (coupon == null) {
         throw new UserSystemCouponException(1, "券类型不正确");
      }
      int stateActivated = 1;
      if (couponType == CouponTypeEnum.freeCoupon.name()) {
         stateActivated = 0; //
      } else if (couponType == CouponTypeEnum.welfareFreeCoupon.name()
            && threeSaleSerivce.countFirstTeam(uid) <= 0) {
         stateActivated = 0; // 无下级队员 --待激活
      }
      Integer expiryDay = null;
      if (stateActivated == 0)
         expiryDay = coupon.getActivateDay();
      if (expiryDay == null || expiryDay == 0)
         expiryDay = coupon.getExpiryDay();
      // 计算结束日期:今天在内 减去一天
      String endDay = DateUtil.plusDay(expiryDay - 1, new Date());
      SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      if (endDay != null && endDay.trim().length() > 0) {
         endDay += " 23:59:59";
      }
      Date endTime = format.parse(endDay);
      UserSystemCoupon userCoupon = new UserSystemCoupon();
      userCoupon.setUid(uid);
      userCoupon.setSource(source);
      userCoupon.setSystemCoupon(coupon);
      userCoupon.setStateActivated(stateActivated);
      userCoupon.setStartTime(new Date());
      userCoupon.setEndTime(endTime);
      userCoupon.setGive(false);
      userCoupon.setCreateTime(new Date());
      userCoupon.setUpdateTime(new Date());
      userCoupon.setState(UserSystemCoupon.STATE_CAN_USE);
      insertSelective(userCoupon);
   }
   @Transactional(rollbackFor = Exception.class)
   @Override