Selaa lähdekoodia

Merge branch 'dev_v1.3.4_20220909' of http://git.dayaedu.com/yonge/cooleshow into dev_v1.3.4_20220909

Eric 2 vuotta sitten
vanhempi
commit
90f9767ec7

+ 1 - 1
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/coupon/CouponIssueController.java

@@ -97,7 +97,7 @@ public class CouponIssueController {
         if (sysUser == null  || sysUser.getId() == null) {
             return failed("用户信息获取失败");
         }
-        couponIssueService.issueCoupon(param.getCouponId(),param.getUserParam(),sysUser.getId(),param.getRemark(),true);
+        couponIssueService.issueCoupon(param.getCouponId(),param.getUserParam(),sysUser.getId(),param.getRemark(),true,true);
 
         return succeed();
     }

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CouponIssueService.java

@@ -46,8 +46,9 @@ public interface CouponIssueService extends IService<CouponIssue> {
      * @param userParam 用户信息
      * @param issuer
      * @param reason
+     * @return
      */
-    void issueCoupon(Long couponId, List<UserParam> userParam, Long issuer, String reason,Boolean sendMessage);
+    Boolean issueCoupon(Long couponId, List<UserParam> userParam, Long issuer, String reason, Boolean sendMessage, Boolean throwE);
 
     /**
      * 查询能发放优惠券的用户列表

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityPlanServiceImpl.java

@@ -329,6 +329,7 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean updateActivityState(Long activityId, Integer activityState, Long id) {
         ActivityPlanVo detail = detail(activityId);
 

+ 4 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityRewardServiceImpl.java

@@ -295,10 +295,9 @@ public class ActivityRewardServiceImpl extends ServiceImpl<ActivityRewardDao, Ac
                     userParam.setUserId(userId);
                     userParam.setClientType(activityPlan.getActivityClient());
                     list.add(userParam);
-                    try {
-                        couponIssueService.issueCoupon(activityReward.getCouponId(),list,null,"活动奖品",false);
-                    } catch (BizException e) {
-                        log.warn("send activity coupon {}",e.fillInStackTrace());
+                    Boolean issueCoupon = couponIssueService.issueCoupon(activityReward.getCouponId(), list, null, "活动奖品",
+                                                                  false, false);
+                    if (!issueCoupon) {
                         continue;
                     }
                 }
@@ -311,9 +310,7 @@ public class ActivityRewardServiceImpl extends ServiceImpl<ActivityRewardDao, Ac
                 sendActivityMessage(userId, activityPlan.getActivityName(),name, activityPlan.getActivityClient());
             }
         } finally {
-            if (lock.getHoldCount() != 0 && lock.isHeldByCurrentThread()) {
-                lock.unlock();
-            }
+            lock.unlock();
         }
 
         return activityRewardIdList;

+ 8 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CouponIssueServiceImp.java

@@ -157,15 +157,18 @@ public class CouponIssueServiceImp extends ServiceImpl<CouponIssueMapper, Coupon
 
     @Override
     @Transactional
-    public void issueCoupon(Long couponId, List<UserParam> userParam, Long issuer, String reason,Boolean sendMessage) {
+    public Boolean issueCoupon(Long couponId, List<UserParam> userParam, Long issuer, String reason, Boolean sendMessage, Boolean throwE) {
         CouponInfo couponInfo = couponInfoService.queryCouponInfoById(couponId);
         if (couponInfo == null) {
+            if (!throwE) return false;
             throw new BizException("未找到优惠券信息");
         }
         if (couponInfo.getInventory() < userParam.size()) {
+            if (!throwE) return false;
             throw new BizException("库存不足");
         }
         if (couponInfo.getStatus() == EStatus.DISABLE.getValue()) {
+            if (!throwE) return false;
             throw new BizException("优惠券已被禁用");
         }
         // 判断优惠券类型 设置优惠券时间
@@ -182,9 +185,11 @@ public class CouponIssueServiceImp extends ServiceImpl<CouponIssueMapper, Coupon
         List<CouponIssue> couponIssueList = new ArrayList<>();
         for (UserParam param : userParam) {
             if (param.getUserId() == null) {
+                if (!throwE) return false;
                 throw new BizException("发放用户id不能为空");
             }
             if (param.getClientType() == null) {
+                if (!throwE) return false;
                 throw new BizException("发放客户端不能为空");
             }
             CouponIssue couponIssue = new CouponIssue();
@@ -206,6 +211,7 @@ public class CouponIssueServiceImp extends ServiceImpl<CouponIssueMapper, Coupon
         //  优惠券扣减库存
         int i = couponInfoService.updateStock(couponId, userParam.size(), InOrOutEnum.OUT);
         if (i == 0) {
+            if (!throwE) return false;
             throw new BizException("库存不足");
         }
 
@@ -213,6 +219,7 @@ public class CouponIssueServiceImp extends ServiceImpl<CouponIssueMapper, Coupon
         if (sendMessage) {
             sendMessage(couponInfo.getName(), userParam);
         }
+        return true;
     }
 
     private void sendMessage(String couponName,List<UserParam> userParams) {