Browse Source

1、课程调整时排除自动补签记录
2、删除请假时班级学生状态更新代码
3、小课过期课程调整生成后加入学生缴费信息

Joburgess 5 years ago
parent
commit
6bb59d90ee

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

@@ -1,11 +1,11 @@
 package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.dto.StudentAttendanceStatisticsResponse;
+import com.ym.mec.biz.dal.dto.VipGroupGiveCourseSortDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.common.dal.BaseDAO;
-
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
@@ -185,4 +185,13 @@ public interface CourseScheduleStudentPaymentDao extends BaseDAO<Long, CourseSch
      * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment>
      */
     List<CourseScheduleStudentPayment> findByCourseSchedule(@Param("courseScheduleId") Long courseScheduleId);
+
+    /**
+     * @describe 获取小课需要调整的缴费记录
+     * @author Joburgess
+     * @date 2020/1/10
+     * @param groupId:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.VipGroupGiveCourseSortDto>
+     */
+    List<VipGroupGiveCourseSortDto> findVipGroupSortCourseByGroup(@Param("groupId") String groupId);
 }

+ 32 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupGiveCourseSortDto.java

@@ -0,0 +1,32 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
+
+import java.util.Date;
+
+/**
+ * @Author Joburgess
+ * @Date 2020/1/10
+ */
+public class VipGroupGiveCourseSortDto extends CourseScheduleStudentPayment {
+
+    private Date courseStartTime;
+
+    private Date courseEndTime;
+
+    public Date getCourseStartTime() {
+        return courseStartTime;
+    }
+
+    public void setCourseStartTime(Date courseStartTime) {
+        this.courseStartTime = courseStartTime;
+    }
+
+    public Date getCourseEndTime() {
+        return courseEndTime;
+    }
+
+    public void setCourseEndTime(Date courseEndTime) {
+        this.courseEndTime = courseEndTime;
+    }
+}

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleStudentPaymentService.java

@@ -45,4 +45,13 @@ public interface CourseScheduleStudentPaymentService extends BaseService<Long, C
 	 */
 	int batchInsert(List<CourseScheduleStudentPayment> courseScheduleStudentPayments);
 
+	/**
+	 * @describe 更新VIP课赠送课顺序
+	 * @author Joburgess
+	 * @date 2020/1/10
+	 * @param vipGroupId: 小课编号
+	 * @return void
+	 */
+	void updateVipGiveCourse(Long vipGroupId);
+
 }

+ 18 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleStudentPaymentServiceImpl.java

@@ -1,12 +1,14 @@
 package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.VipGroupGiveCourseSortDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.TeachModeEnum;
 import com.ym.mec.biz.dal.enums.VipGroupActivityTypeEnum;
 import com.ym.mec.biz.dal.enums.VipGroupStatusEnum;
 import com.ym.mec.biz.service.CourseScheduleStudentPaymentService;
+import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.constant.CommonConstants;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
@@ -33,6 +35,8 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 	private CourseScheduleDao courseScheduleDao;
 	@Autowired
 	private ClassGroupStudentMapperDao classGroupStudentMapperDao;
+	@Autowired
+	private SysUserCashAccountService sysUserCashAccountService;
 
 	@Override
 	public BaseDAO<Long, CourseScheduleStudentPayment> getDAO() {
@@ -191,6 +195,7 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 						if(Objects.isNull(courseScheduleStudentPayment.getExpectPrice())){
 							courseScheduleStudentPayment.setExpectPrice(zeroPrice);
 						}
+						sysUserCashAccountService.appendCourseBalance(classGroupStudent.getUserId(), courseScheduleStudentPayment.getExpectPrice().negate());
 						courseScheduleStudentPayments.add(courseScheduleStudentPayment);
 					}else{
 						CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment(
@@ -214,4 +219,17 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 	public int batchInsert(List<CourseScheduleStudentPayment> courseScheduleStudentPayments) {
 		return courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
 	}
+
+	@Override
+	public void updateVipGiveCourse(Long vipGroupId) {
+		List<VipGroupGiveCourseSortDto> vipGroupSortCourseByGroup = courseScheduleStudentPaymentDao.findVipGroupSortCourseByGroup(vipGroupId.toString());
+		Map<BigDecimal, Long> expectPriceCountMap = vipGroupSortCourseByGroup.stream()
+				.collect(Collectors.groupingBy(VipGroupGiveCourseSortDto::getExpectPrice, Collectors.counting()));
+		BigDecimal zero = new BigDecimal(0);
+		int zeroPriceNum = expectPriceCountMap.get(zero).intValue();
+		if(zeroPriceNum<=0){
+			return;
+		}
+
+	}
 }

+ 15 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml

@@ -233,6 +233,21 @@
 		SELECT * FROM course_schedule_student_payment WHERE  course_schedule_id_ = #{courseScheduleId}
 	</select>
 
+	<resultMap id="VipGroupGiveCourseSortDto" type="com.ym.mec.biz.dal.dto.VipGroupGiveCourseSortDto" extends="CourseScheduleStudentPayment">
+		<result property="courseStartTime" column="course_start_time_"/>
+		<result property="courseEndTime" column="course_end_time_"/>
+	</resultMap>
+	<select id="findVipGroupSortCourseByGroup" resultMap="VipGroupGiveCourseSortDto">
+		SELECT
+			 cssp.*,
+			 CONCAT(cs.class_date_,' ',cs.start_class_time_) course_start_time_
+			 CONCAT(cs.class_date_,' ',cs.end_class_time_) course_end_time_
+		FROM course_schedule_student_payment cssp
+			LEFT JOIN course_schedule cs ON cssp.course_schedule_id_=cs.id_
+		WHERE cssp.music_group_id_=#{groupId} AND cssp.group_type_='VIP' AND course_start_time_ &gt; NOW()
+		ORDER BY course_start_time_
+	</select>
+
 	<delete id="deleteStudentCourseSchedule">
 		DELETE FROM course_schedule_student_payment WHERE user_id_ = #{userId} AND course_schedule_id_ IN
 		<foreach collection="courseScheduleList" item="courseSchedule" index="index" open="(" close=")" separator=",">

+ 3 - 2
mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml

@@ -360,7 +360,9 @@
         AND cssp.course_schedule_id_ = #{courseScheduleId}
     </select>
     <select id="countStudentAttendenceNum" resultType="int">
-        SELECT COUNT(*) FROM student_attendance sa WHERE course_schedule_id_ = #{courseScheduleId} AND status_='NORMAL'
+        SELECT COUNT(*) FROM student_attendance sa
+        WHERE course_schedule_id_ = #{courseScheduleId}
+        AND update_time_!='1970-01-01 00:00:00'
     </select>
     <select id="countStudentAttendancesByCourses" resultType="java.util.Map">
         SELECT
@@ -373,7 +375,6 @@
             <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
                 #{courseScheduleId}
             </foreach>
-            AND update_time_!='1970-01-01 00:00:00'
         GROUP BY
             course_schedule_id_
     </select>