admin
2019-02-27 9aa335f99a99c7e4b0e01b329bbd5d2c929fb3b8
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java
@@ -28,6 +28,7 @@
import com.yeshi.fanli.entity.order.CommonOrder;
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;
@@ -49,7 +50,9 @@
import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.factory.UserMoneyDetailFactory;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
import com.yeshi.fanli.vo.order.CommonOrderVO;
import com.yeshi.fanli.vo.user.UserSystemCouponRecordVO;
@@ -62,6 +65,9 @@
   @Resource(name = "taskExecutor")
   private TaskExecutor executor;
   @Resource
   private RedisManager redisManager;
   
   @Resource
   private UserSystemCouponMapper userSystemCouponMapper;
@@ -420,8 +426,9 @@
         Integer stateActivated = userCouponVO.getStateActivated();
         if (stateActivated == null || stateActivated == 0) {
            userCouponVO.setCouponPicture(PIC_INVALID); // 未激活
            userCouponVO.setState(0);
            userCouponVO.setCouponEffect("待激活");
            userCouponVO.setCouponPicture(PIC_INVALID); // 未激活图片
         } else {
            userCouponVO.setCouponPicture(systemCoupon.getPicture());
         }
@@ -498,9 +505,14 @@
   }
   @Override
   public List<UserSystemCouponVO> getGoodsCouponList(Long uid) throws UserSystemCouponException, Exception {
   public List<UserSystemCouponVO> getGoodsCouponList(Long uid, Long auctionId) throws UserSystemCouponException, Exception {
      if (uid == null) {
         throw new UserSystemCouponException(1, "用户未登录");
      }
      if (auctionId == null) {
         throw new UserSystemCouponException(1, "商品ID为空");
      }
      
      // 更新过期券
@@ -514,7 +526,26 @@
         return null;
      }
      return getEnableListByCouponId(uid, null, couponList);
      List<UserSystemCouponVO> list = getEnableListByCouponId(uid, null, couponList);
      // 获取商品详情
      TaoBaoGoodsBrief taoBaoGoodsBrief = redisManager.getTaoBaoGoodsBrief(auctionId);
      if (taoBaoGoodsBrief != null) {
         BigDecimal quanPrice = TaoBaoUtil.getAfterUseCouplePrice(taoBaoGoodsBrief);
         // 券后价 大于10元 不能免单
         if (quanPrice.compareTo(new BigDecimal(10)) > 0) {
            if (list != null && list.size() > 0) {
               for (UserSystemCouponVO userCouponVO: list) {
                  // 显示不能使用
                  userCouponVO.setState(0);
                  userCouponVO.setCouponPicture(PIC_INVALID);
               }
            }
         }
      }
      return list;
   }
   @Override
@@ -570,7 +601,7 @@
      // 消息推送
      try {
         if (baseCoupon.getType() != CouponTypeEnum.welfareFreeCoupon) {
            userOtherMsgNotificationService.welfareCouponUsing(userSystemCoupon);
//            userOtherMsgNotificationService.welfareCouponUsing(userSystemCoupon,order);
         } else if (baseCoupon.getType() != CouponTypeEnum.freeCoupon) {
            userOtherMsgNotificationService.freeSheetCouponUsing(userSystemCoupon);
         }
@@ -1143,10 +1174,6 @@
   public boolean updateCouponRecordUsed(Long uid, String orderNo, BigDecimal payment,
         Long auctionId) throws  Exception{
      
      //只处理付款金额小于10的
      if(payment==null||payment.compareTo(new BigDecimal(10))<0)
         return false;
      boolean isfree = false;
      
      if (uid == null || payment == null || auctionId == null || orderNo == null || 
@@ -1209,7 +1236,7 @@
               // 券已使用
               userOtherMsgNotificationService.freeSheetCouponUsed(userSystemCoupon);
            } else    if (baseCoupon.getType() != CouponTypeEnum.welfareFreeCoupon) {
               userOtherMsgNotificationService.welfareCouponUsed(userSystemCoupon);
               userOtherMsgNotificationService.welfareCouponUsing(userSystemCoupon,orderNo,payment);
            } else if (baseCoupon.getType() != CouponTypeEnum.freeCoupon) {
               userOtherMsgNotificationService.freeSheetCouponUsed(userSystemCoupon);
            }