Browse Source

feat:vip课活动购买限制

Joburgess 4 years ago
parent
commit
d1e64c159b

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDao.java

@@ -376,4 +376,7 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
      */
     int countStudentUserActivityNum(@Param("vipGroupActivityId") Integer vipGroupActivityId,
                                     @Param("studentId") Integer studentId);
+
+    int countStudentUseingActivityNum(@Param("vipGroupActivityId") Integer vipGroupActivityId,
+                                    @Param("studentId") Integer studentId);
 }

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -1513,7 +1513,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		}
 
 		if(Objects.nonNull(vipGroupActivity)&&Objects.nonNull(vipGroupActivity.getStudentMaxUsedTimes())&&vipGroupActivity.getStudentMaxUsedTimes()!=-1){
-			int useNum = vipGroupDao.countStudentUserActivityNum(vipGroup.getVipGroupActivityId(), Integer.valueOf(user.getId()));
+			int useNum = vipGroupDao.countStudentUseingActivityNum(vipGroup.getVipGroupActivityId(), Integer.valueOf(user.getId()));
 			if(useNum>vipGroupActivity.getStudentMaxUsedTimes()){
 				throw new BizException("当前活动可购买次数为{}次", vipGroupActivity.getStudentMaxUsedTimes());
 			}
@@ -2911,7 +2911,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		if(Objects.nonNull(vipGroupActivity)&&Objects.nonNull(vipGroupActivity.getStudentMaxUsedTimes())&&vipGroupActivity.getStudentMaxUsedTimes()!=-1&&!CollectionUtils.isEmpty(studentIds)){
 			for (Integer studentId : studentIds) {
-				int useNum = vipGroupDao.countStudentUserActivityNum(vipGroup.getVipGroupActivityId(), Integer.valueOf(studentId));
+				int useNum = vipGroupDao.countStudentUseingActivityNum(vipGroup.getVipGroupActivityId(), Integer.valueOf(studentId));
 				if(useNum>vipGroupActivity.getStudentMaxUsedTimes()){
 					throw new BizException("当前活动可购买次数为{}次", vipGroupActivity.getStudentMaxUsedTimes());
 				}

+ 8 - 0
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -1044,4 +1044,12 @@
         WHERE vg.vip_group_activity_id_=#{vipGroupActivityId}
             AND ((vg.group_status_=1 AND FIND_IN_SET(#{studentId}, vg.student_id_list_)) OR cgsm.user_id_=#{studentId});
     </select>
+
+    <select id="countStudentUseingActivityNum" resultType="int">
+        SELECT COUNT(DISTINCT vg.id_)
+        FROM vip_group vg
+                 LEFT JOIN class_group_student_mapper cgsm ON vg.id_=cgsm.music_group_id_ AND cgsm.group_type_='VIP'
+        WHERE vg.vip_group_activity_id_=#{vipGroupActivityId}
+          AND cgsm.user_id_=#{studentId}
+    </select>
 </mapper>