admin
2019-12-11 8b3371befea773bda4e08b19189c25c32ea6818f
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java
@@ -49,7 +49,6 @@
import com.yeshi.fanli.entity.system.SystemCoupon;
import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.exception.user.UserInfoExtraException;
import com.yeshi.fanli.exception.user.UserSystemCouponException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
@@ -79,6 +78,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;
@@ -155,6 +155,7 @@
   @Resource
   private UserOtherMsgNotificationService userOtherMsgNotificationService;
   @Lazy
   @Resource
   private CommonOrderCountService commonOrderCountService;
@@ -179,7 +180,7 @@
   @Resource(name = "producer")
   private Producer producer;
   @Resource
   private UserVIPInfoService userVIPInfoService;
@@ -251,6 +252,8 @@
         } else {
            coupon = systemCouponService.getCouponByTypeAndPercent(couponType, percent);
         }
      } else if (couponType.equals(CouponTypeEnum.freeCouponGive.name())) {
         coupon = systemCouponService.getCouponByType(couponType);
      }
      if (coupon == null) {
@@ -303,23 +306,18 @@
      executor.execute(new Runnable() {
         @Override
         public void run() {
            UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
            // 添加一条消息
            if (userInfoExtra != null) {
               if (userInfoExtra.getCouponNews() == null) {
                  userInfoExtra.setCouponNews(1);
         public void run() {  // 福利中心红点
            UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(uid);
            if (extra != null) {
               UserInfoExtra updateExtra =   new UserInfoExtra();
               updateExtra.setId(extra.getId());
               if (extra.getCouponNews() == null) {
                  updateExtra.setCouponNews(1);
               } else {
                  userInfoExtra.setCouponNews(userInfoExtra.getCouponNews() + 1);
                  updateExtra.setCouponNews(extra.getCouponNews() + 1);
               }
               try {
                  userInfoExtraService.saveUserInfoExtra(userInfoExtra);
               } catch (UserInfoExtraException e) {
                  e.printStackTrace();
               }
               userInfoExtraService.updateByPrimaryKeySelective(updateExtra);
            }
         }
      });
@@ -703,6 +701,26 @@
      return userSystemCouponMapper.countUsableByUid(uid, listCouponId);
   }
   @Override
   public long countGiveFreeCoupon(Long uid) {
      if (uid == null)
         return 0;
      List<SystemCoupon> couponList = systemCouponService.getGiveFreeCouponList();
      if (couponList == null || couponList.size() == 0)
         return 0;
      List<Long> listCouponId = new ArrayList<Long>();
      for (SystemCoupon systemCoupon : couponList) {
         listCouponId.add(systemCoupon.getId());
      }
      return userSystemCouponMapper.countUsableByUid(uid, listCouponId);
   }
   @Override
   public long countUsableRewardCoupon(Long uid) {
@@ -857,13 +875,12 @@
      if (orderVO == null)
         throw new UserSystemCouponException(1, "订单信息获取失败");
      // 版本区分:2.0.2
      // 版本区分:2.1
      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
            long limitDate = TimeUtil.parse(Constant.COUPON_REWARD_TIME).getTime();
            if (downOrderTime > limitDate) {
               Date endDay = DateUtil.plusDayDate(4, thirdCreateTime);
               long currentTime = java.lang.System.currentTimeMillis();
@@ -880,12 +897,12 @@
                     if (!valid && dateInfo.getMinute() > 0)
                        valid = true;
                     if (!valid && dateInfo.getSecond() >= 0)
                     if (!valid && dateInfo.getSecond() > 0)
                        valid = true;
                  }
                  if (!valid)
                     throw new UserSystemCouponException(1, "该订单已不能使用使用奖励券,详情请咨询客服");
                     throw new UserSystemCouponException(1, "该订单已超过有效使用奖励券时间");
               }
            }
         }
@@ -1612,13 +1629,16 @@
      if (userInfoExtra == null) {
         return;
      }
      UserInfoExtra extra = new UserInfoExtra();
      extra.setId(userInfoExtra.getId());
      Integer couponNews = userInfoExtra.getCouponNews();
      if (couponNews == null) {
         userInfoExtra.setCouponNews(num);
         extra.setCouponNews(num);
      } else {
         userInfoExtra.setCouponNews(couponNews + num);
         extra.setCouponNews(couponNews + num);
      }
      userInfoExtraService.saveUserInfoExtra(userInfoExtra);
      userInfoExtraService.saveUserInfoExtra(extra);
   }
   @Override
@@ -2461,34 +2481,16 @@
   }
   @Override
   public boolean getIncludeExchange(Long uid) {
   public boolean getValidRebateCoupon(Long uid) {
      // 过期券
      updateInvalidSate(uid);
      String percent = configService.get("exchange_rebate_percent");
      if (StringUtil.isNullOrEmpty(percent))
         percent = "35";
      List<UserSystemCoupon> listCoupon = userSystemCouponMapper.getIncludeExchange(uid, Integer.parseInt(percent),
            CouponTypeEnum.rebatePercentCoupon.name());
      List<UserSystemCouponVO> listCoupon = userSystemCouponMapper.getValidByUidAndType(uid, CouponTypeEnum.rebatePercentCoupon.name());
      if (listCoupon == null || listCoupon.size() == 0)
         return false;
      return true;
   }
   @Override
   public boolean getIncludeNotExchange(Long uid) {
      // 过期券
      updateInvalidSate(uid);
      String percent = configService.get("exchange_rebate_percent");
      if (StringUtil.isNullOrEmpty(percent))
         percent = "35";
      List<UserSystemCouponVO> listCoupon = userSystemCouponMapper.getIncludeNotExchange(uid,
            Integer.parseInt(percent), CouponTypeEnum.rebatePercentCoupon.name());
      if (listCoupon == null || listCoupon.size() == 0)
         return false;
      return true;
   }
   @Override
   public List<UserSystemCouponVO> listIncludeNotExchange(Long uid) throws Exception {
@@ -2498,12 +2500,8 @@
      // 退回券
      sendBackTimeOutCoupon(uid);
      String percent = configService.get("exchange_rebate_percent");
      if (StringUtil.isNullOrEmpty(percent))
         percent = "35";
      List<UserSystemCouponVO> listCoupon = userSystemCouponMapper.getIncludeNotExchange(uid,
            Integer.parseInt(percent), CouponTypeEnum.rebatePercentCoupon.name());
      List<UserSystemCouponVO> listCoupon = userSystemCouponMapper.getValidByUidAndType(uid, CouponTypeEnum.rebatePercentCoupon.name());
      if (listCoupon == null || listCoupon.size() == 0)
         return null;