刘俊驰 8 hónapja
szülő
commit
d2a716a72d

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

@@ -76,6 +76,7 @@ public class PlatformCashAccountRecordServiceImpl extends ServiceImpl<PlatformCa
         paramNames.add(AccountBizTypeEnum.ALBUM_SHARE.getCode());
         paramNames.add(AccountBizTypeEnum.VIP.getCode());
         paramNames.add(AccountBizTypeEnum.SVIP.getCode());
+        paramNames.add(AccountBizTypeEnum.DISCOUNT.getCode());
         paramNames.add(AccountBizTypeEnum.VIP_SHARE.getCode());
         paramNames.add(AccountBizTypeEnum.ACTI_REGIST.getCode());
         paramNames.add(AccountBizTypeEnum.ACTI_REGIST_SHARE.getCode());

+ 45 - 11
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserPaymentCoreServiceImpl.java

@@ -870,17 +870,8 @@ DISCOUNT("畅学卡")
         ActivityPlanVo activityPlan = activityPlanService.detail(orderReq.getActivityId());
         if (activityPlan != null && activityPlan.getActivityState() == 1) {
             if (ActivityTypeEnum.MEMBER == activityPlan.getActivityType()) {
-                //  检查购买次数是否符合要求 待支付,支付中,支付完成的订单小于次数才可以继续购买
-                if (activityPlan.getBuyCount() !=null && activityPlan.getBuyCount() !=-1) {
-                    int count = userOrderService.lambdaQuery()
-                            .eq(UserOrder::getActivityId, orderReq.getActivityId())
-                            .in(UserOrder::getStatus, OrderStatusEnum.WAIT_PAY.getCode(),
-                                    OrderStatusEnum.PAYING.getCode(), OrderStatusEnum.PAID.getCode())
-                            .count();
-                    if (count >= activityPlan.getBuyCount()) {
-                        throw new BizException("活动以达到参与最大次数");
-                    }
-                }
+
+                checkActivityTimes(orderReq.getUserId(),orderReq.getPaymentClient(), activityPlan.getId());
 
                 // 会员买赠活动 判断购买商品是否符合活动要求
                 Map<String, List<Long>> map = orderReq.getGoodsInfos().stream()
@@ -921,6 +912,49 @@ DISCOUNT("畅学卡")
         }
     }
 
+
+    /**
+     * 检查活动购买次数
+     *
+     * @param userId 用户ID
+     * @param client 客户端
+     * @param activityId 活动ID
+     */
+    private void checkActivityTimes(Long userId,ClientEnum client, Long activityId) {
+        ActivityPlan activityPlan = activityPlanService.getById(activityId);
+        if (activityPlan == null) {
+            throw new BizException("活动不存在");
+        }
+
+        //  检查购买次数是否符合要求 待支付,支付中,支付完成的订单小于次数才可以继续购买
+        if (activityPlan.getBuyCount() !=null && activityPlan.getBuyCount() !=-1) {
+            int count = getActivityCount(userId, client, activityId);
+            if (count >= activityPlan.getBuyCount()) {
+                throw new BizException("活动以达到参与最大次数");
+            }
+
+        }
+
+    }
+
+    /**
+     * 查询活动参与次数
+     *
+     * @param userId 用户ID
+     * @param client 客户端
+     * @param activityId 活动ID
+     * @return int 活动参与次数
+     */
+    private int getActivityCount(Long userId, ClientEnum client, Long activityId) {
+        return userOrderService.lambdaQuery()
+                    .eq(UserOrder::getActivityId, activityId)
+                    .eq(UserOrder::getUserId, userId)
+                    .eq(UserOrder::getOrderClient, client)
+                    .in(UserOrder::getStatus, OrderStatusEnum.WAIT_PAY.getCode(),
+                            OrderStatusEnum.PAYING.getCode(), OrderStatusEnum.PAID.getCode())
+                    .count();
+    }
+
     /**
      * 用户支付请求
      *

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -963,7 +963,7 @@
         FROM course_schedule_teacher_salary ts
         LEFT JOIN course_group g ON ts.course_group_id_ = g.id_
         LEFT JOIN course_schedule_student_payment sp ON ts.course_schedule_id_ = sp.course_id_
-        WHERE ts.course_group_type_ = 'PRACTICE'
+        WHERE ts.course_group_type_ in ('PRACTICE','VIP_COURSE')
         AND ts.status_ = 'WAIT'
         <![CDATA[ AND DATE_FORMAT(ts.update_time_,'%Y-%m-%d') <= #{day}]]>
     </select>