浏览代码

活动排课

zouxuan 4 年之前
父节点
当前提交
38687b5e9b

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupActivityDao.java

@@ -65,6 +65,6 @@ public interface VipGroupActivityDao extends BaseDAO<Integer, VipGroupActivity>
     * @author zx
     * @date 2021/10/11 15:02
     */
-	ActivityWaitCourseStudentNumDto getActivityStudentCanCourseNum(@Param("userId") Integer userId, @Param("activityId") Integer activityId);
+	List<ActivityWaitCourseStudentNumDto> getActivityStudentCanCourseNum(@Param("userId") Integer userId, @Param("activityId") Integer activityId);
 
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ActivityWaitCourseStudentNumDto.java

@@ -18,6 +18,16 @@ public class ActivityWaitCourseStudentNumDto{
 
     private String avatar;
 
+    private Integer userId;
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
     public String getUsername() {
         return username;
     }

+ 33 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroupActivity.java

@@ -67,6 +67,12 @@ public class VipGroupActivity {
 	@ApiModelProperty(value = "赠课形式")
 	private String giveCategoryId;
 
+	@ApiModelProperty(value = "赠课形式")
+	private String giveCategoryName;
+
+	@ApiModelProperty(value = "人数")
+	private Integer giveCategoryNum;
+
 	@ApiModelProperty(value = "赠课数量")
 	private Integer giveCourseNum = 0;
 
@@ -114,6 +120,9 @@ public class VipGroupActivity {
 
 	private String vipGroupCategoryNames;
 
+	@ApiModelProperty(value = "学员数量")
+	private Integer vipGroupCategoryNum;
+
 	@ApiModelProperty(value = "是否删除")
 	private Boolean delFlag = false;
 
@@ -153,6 +162,30 @@ public class VipGroupActivity {
 
 	private String status = "DRAFT";
 
+	public Integer getGiveCategoryNum() {
+		return giveCategoryNum;
+	}
+
+	public void setGiveCategoryNum(Integer giveCategoryNum) {
+		this.giveCategoryNum = giveCategoryNum;
+	}
+
+	public Integer getVipGroupCategoryNum() {
+		return vipGroupCategoryNum;
+	}
+
+	public void setVipGroupCategoryNum(Integer vipGroupCategoryNum) {
+		this.vipGroupCategoryNum = vipGroupCategoryNum;
+	}
+
+	public String getGiveCategoryName() {
+		return giveCategoryName;
+	}
+
+	public void setGiveCategoryName(String giveCategoryName) {
+		this.giveCategoryName = giveCategoryName;
+	}
+
 	public String getStatus() {
 		return status;
 	}

+ 33 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/VipGroupActivityQueryInfo.java

@@ -15,11 +15,44 @@ public class VipGroupActivityQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "是否可用")
     private Boolean enable;
 
+    @ApiModelProperty(value = "是否赠送")
+    private Boolean giveFlag;
+
+    @ApiModelProperty(value = "赠送类型,vip、practice、member")
+    private String giveType;
+
+    @ApiModelProperty(value = "活动状态草稿、进行中")
+    private String status;
+
     @ApiModelProperty(value = "适用学生类型:-1:所有;0:老用户;1:新用户")
     private Integer  applyToStudentType;
 
     private Integer allowOnlineToOffline;
 
+    public Boolean getGiveFlag() {
+        return giveFlag;
+    }
+
+    public void setGiveFlag(Boolean giveFlag) {
+        this.giveFlag = giveFlag;
+    }
+
+    public String getGiveType() {
+        return giveType;
+    }
+
+    public void setGiveType(String giveType) {
+        this.giveType = giveType;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
     public Integer getAllowOnlineToOffline() {
         return allowOnlineToOffline;
     }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupActivityService.java

@@ -65,5 +65,5 @@ public interface VipGroupActivityService extends BaseService<Integer, VipGroupAc
     * @author zx
     * @date 2021/10/11 15:00
     */
-    ActivityWaitCourseStudentNumDto getActivityStudentCanCourseNum(Integer userId, Integer activityId);
+    List<ActivityWaitCourseStudentNumDto> getActivityStudentCanCourseNum(Integer userId, Integer activityId);
 }

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

@@ -5,10 +5,12 @@ import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.biz.dal.dao.ActivityApplyStudentTypeDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dao.VipGroupActivityDao;
+import com.ym.mec.biz.dal.dao.VipGroupCategoryDao;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.ActivityApplyStudentType;
 import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.entity.VipGroupActivity;
+import com.ym.mec.biz.dal.entity.VipGroupCategory;
 import com.ym.mec.biz.dal.page.VipGroupActivityQueryInfo;
 import com.ym.mec.biz.event.source.EntityChangeEventSource;
 import com.ym.mec.biz.service.VipGroupActivityService;
@@ -37,6 +39,8 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 	private ActivityApplyStudentTypeDao activityApplyStudentTypeDao;
 	@Autowired
 	private TeacherDao teacherDao;
+	@Autowired
+	private VipGroupCategoryDao vipGroupCategoryDao;
 
 	@Override
 	public BaseDAO<Integer, VipGroupActivity> getDAO() {
@@ -175,12 +179,23 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
     @Override
     public ActivityWaitCourseStudentNumDto getActivityWaitCourseStudentNum(Integer userId, Integer activityId) {
 		ActivityWaitCourseStudentNumDto activityWaitCourseStudentNum = vipGroupActivityDao.getActivityWaitCourseStudentNum(userId, activityId);
-		activityWaitCourseStudentNum.setVipGroupActivity(vipGroupActivityDao.get(activityId));
+		VipGroupActivity activity = vipGroupActivityDao.get(activityId);
+		if(StringUtils.isNotEmpty(activity.getVipGroupCategoryIdList())){
+			VipGroupCategory category = vipGroupCategoryDao.get(Integer.parseInt(activity.getVipGroupCategoryIdList().split(",")[0]));
+			activity.setVipGroupCategoryNames(category.getName());
+			activity.setVipGroupCategoryNum(category.getStudentNum());
+		}
+		if(StringUtils.isNotEmpty(activity.getGiveCategoryId())){
+			VipGroupCategory category = vipGroupCategoryDao.get(Integer.parseInt(activity.getGiveCategoryId()));
+			activity.setGiveCategoryName(category.getName());
+			activity.setGiveCategoryNum(category.getStudentNum());
+		}
+		activityWaitCourseStudentNum.setVipGroupActivity(activity);
 		return activityWaitCourseStudentNum;
     }
 
 	@Override
-	public ActivityWaitCourseStudentNumDto getActivityStudentCanCourseNum(Integer userId, Integer activityId) {
+	public List<ActivityWaitCourseStudentNumDto> getActivityStudentCanCourseNum(Integer userId, Integer activityId) {
 		return vipGroupActivityDao.getActivityStudentCanCourseNum(userId,activityId);
 	}
 }

+ 18 - 1
mec-biz/src/main/resources/config/mybatis/VipGroupActivityMapper.xml

@@ -248,6 +248,22 @@
 			<if test="enable != null">
 				AND enable_ = #{enable}
 			</if>
+			<if test="giveFlag != null">
+				<if test="giveFlag == 'true'">
+					AND (give_course_num_ > 0 OR member_time_ > 0)
+				</if>
+				<if test="giveFlag == 'false'">
+					AND give_course_num_ = 0 AND member_time_ = 0
+				</if>
+			</if>
+			<if test="giveType != null">
+				<if test="giveType == 'VIP' or giveType == 'PRACTICE'">
+					AND give_course_type_ = #{giveType} AND give_course_num_ > 0
+				</if>
+				<if test="giveType == 'MEMBER'">
+					AND give_course_type_ = #{status} AND give_member_time_ > 0
+				</if>
+			</if>
 			<if test="status != null">
 				AND status_ = #{status}
 			</if>
@@ -378,6 +394,7 @@
 		<result property="givePracticeNum" column="give_practice_num_"/>
 		<result property="username" column="username_"/>
 		<result property="avatar" column="avatar_"/>
+		<result property="userId" column="user_id_"/>
 	</resultMap>
 	<select id="getActivityWaitCourseStudentNum" resultMap="ActivityWaitCourseStudentNumDto">
 		SELECT COUNT(CASE WHEN aum.vip_flag_ = 1 THEN 1 ELSE NULL END) vip_num_,
@@ -397,7 +414,7 @@
 		SELECT COUNT(CASE WHEN aum.vip_flag_ = 1 THEN 1 ELSE NULL END) vip_num_,
 			   COUNT(CASE WHEN aum.practice_flag_ = 1 THEN 1 ELSE NULL END) practice_num_,
 			   COUNT(CASE WHEN aum.give_vip_flag_ = 1 THEN 1 ELSE NULL END) give_vip_num_,
-			   COUNT(CASE WHEN aum.give_practice_flag_ = 1 THEN 1 ELSE NULL END) give_practice_num_,su.username_,su.avatar_
+			   COUNT(CASE WHEN aum.give_practice_flag_ = 1 THEN 1 ELSE NULL END) give_practice_num_,su.username_,su.avatar_,s.user_id_
 		FROM student s
 				 LEFT JOIN sys_user su ON su.id_ = s.user_id_
 				 LEFT JOIN activity_user_mapper aum ON s.user_id_ = aum.user_id_