admin
2020-04-10 d960fdbfe07a65cb80ccb764bfb15ce78ebfd84a
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java
@@ -74,7 +74,7 @@
import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService;
import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
import com.yeshi.fanli.service.inter.user.invite.UserInviteService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.RedisManager;
@@ -119,6 +119,7 @@
   @Resource
   private SystemCouponService systemCouponService;
   @Lazy
   @Resource
   private CommonOrderService commonOrderService;
@@ -183,7 +184,7 @@
   private Producer producer;
   
   @Resource
   private UserVIPInfoService userVIPInfoService;
   private UserInviteService userInviteService;
   @Override
   public int insertSelective(UserSystemCoupon record) {
@@ -934,24 +935,28 @@
         UserSystemCouponUseMQMsg mqMsg = new UserSystemCouponUseMQMsg(userSystemCoupon.getId(), order.getOrderId(),
               sourceType, systemCoupon.getType().name());
         // 事务消息
         Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.useSystemCoupon, mqMsg);
         try {
            SendResult result = orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
               @Override
               public TransactionStatus execute(Message arg0, Object arg1) {
                  try {
                     useRewardCouponCore(userSystemCoupon, money, hongBao, uid, order);
                     return TransactionStatus.CommitTransaction;
                  } catch (Exception e) {
                     return TransactionStatus.RollbackTransaction;
         if (Constant.IS_TEST) {
            useRewardCouponCore(userSystemCoupon, money, hongBao, uid, order);
         } else { // 事务消息
            Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.useSystemCoupon, mqMsg);
            try {
               SendResult result = orderTransactionProducer.send(msg, new LocalTransactionExecuter() {
                  @Override
                  public TransactionStatus execute(Message arg0, Object arg1) {
                     try {
                        useRewardCouponCore(userSystemCoupon, money, hongBao, uid, order);
                        return TransactionStatus.CommitTransaction;
                     } catch (Exception e) {
                        return TransactionStatus.RollbackTransaction;
                     }
                  }
               }
            }, null);
            System.out.println(result);
         } catch (Exception e) {
            e.printStackTrace();
            throw e;
               }, null);
               System.out.println(result);
            } catch (Exception e) {
               e.printStackTrace();
               throw e;
            }
         }
      }
   }
@@ -1917,7 +1922,7 @@
               jumpBtn.put("params", jumpLink);
               jumpBtn.put("jumpDetail", jumpDetailV2Service.getByTypeCache("web"));
            } else if (CouponTypeEnum.rebatePercentCoupon == type) {
               if (userVIPInfoService.isVIP(uid)) { // 会员只可赠送
               if (userInviteService.verifyVIP(uid)) { // 会员只可赠送
                  userCouponVO.setState(UserSystemCoupon.STATE_GIVE_ONLY);
               } else {// 可使用 可赠送
                  userCouponVO.setState(UserSystemCoupon.STATE_USE_GIVE);