浏览代码

Merge remote-tracking branch 'origin/master'

Joburgess 5 年之前
父节点
当前提交
30cf1a515f

+ 17 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.dao;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.Student4operating;
 import com.ym.mec.biz.dal.entity.Student;
+import com.ym.mec.biz.dal.enums.GroupType;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -39,8 +40,24 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
 
     /**
      * 批量获取老师体验学生数
+     *
      * @param teacherIds
      * @return
      */
     List<Student4operating> getTeacherOperatingStudentsNum(@Param("teacherIds") String teacherIds);
+
+    /**
+     * 根据类型批量获取老师转化
+     * @param teacherIds
+     * @param groupType
+     * @return
+     */
+    List<Student4operating> getBuyNums(@Param("teacherIds") String teacherIds, @Param("groupType") GroupType groupType);
+
+     /**
+     * 根据同事存在vip和网管的转化
+     * @param teacherIds
+     * @return
+     */
+    List<Student4operating> getPracticeAndVipNums(@Param("teacherIds") String teacherIds);
 }

+ 31 - 32
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -500,7 +500,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 			if(DateUtil.minutesBetween(classEndDateTime,date) >= 0){
 				String continueCourseTime = sysConfigDao.findConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME);
 				if(StringUtils.isEmpty(continueCourseTime)){
-					continueCourseTime = "10";
+					continueCourseTime = "5";
 				}
 				List<CourseSchedule> courseSchedules = new ArrayList<>();
 				CourseSchedule cs = courseSchedule;
@@ -528,37 +528,36 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 						String courseEndDateTime;
 						for (CourseSchedule e:courseSchedules) {
 							//获取当前课程的单节课时长
-							int signClassMinutes = courseScheduleDao.getSingleClassMinutes(e.getId());
-							totalMinutes -= signClassMinutes;
-							if(totalMinutes >= 0){
-								//补充签到签退时间
-								courseClassDate = DateUtil.format(e.getClassDate(), DateUtil.DEFAULT_PATTERN);
-								courseStartDateTime = DateUtil.format(e.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
-								courseEndDateTime = DateUtil.format(e.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
-								Date startDateTime = DateUtil.stringToDate(courseClassDate + " " + courseStartDateTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
-								Date endDateTime = DateUtil.stringToDate(courseClassDate + " " + courseEndDateTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
-								StudentAttendance byStatusAndCourseScheduleId = studentAttendanceDao.findByStatusAndCourseScheduleId(userId, e.getId().intValue());
-								if(byStatusAndCourseScheduleId != null){
-									byStatusAndCourseScheduleId.setSignOutTime(date);
-									byStatusAndCourseScheduleId.setStatus(statusEnum);
-									byStatusAndCourseScheduleId.setUpdateTime(date);
-									studentAttendanceDao.update(byStatusAndCourseScheduleId);
-								}else {
-									byStatusAndCourseScheduleId = new StudentAttendance();
-									byStatusAndCourseScheduleId.setSignOutTime(endDateTime);
-									byStatusAndCourseScheduleId.setStatus(statusEnum);
-									byStatusAndCourseScheduleId.setSignInTime(startDateTime);
-									byStatusAndCourseScheduleId.setUpdateTime(date);
-									byStatusAndCourseScheduleId.setUserId(userId);
-									byStatusAndCourseScheduleId.setTeacherId(courseSchedule.getActualTeacherId());
-									byStatusAndCourseScheduleId.setClassGroupId(e.getClassGroupId());
-									byStatusAndCourseScheduleId.setCourseScheduleId(e.getId());
-									byStatusAndCourseScheduleId.setMusicGroupId(e.getMusicGroupId());
-									byStatusAndCourseScheduleId.setGroupType(e.getGroupType());
-									byStatusAndCourseScheduleId.setCurrentClassTimes(classGroup.getCurrentClassTimes() + 1);
-									studentAttendanceDao.insert(byStatusAndCourseScheduleId);
-								}
+//							int signClassMinutes = courseScheduleDao.getSingleClassMinutes(e.getId());
+//							totalMinutes -= signClassMinutes;
+							//补充签到签退时间
+							courseClassDate = DateUtil.format(e.getClassDate(), DateUtil.DEFAULT_PATTERN);
+							courseStartDateTime = DateUtil.format(e.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
+							courseEndDateTime = DateUtil.format(e.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
+							Date startDateTime = DateUtil.stringToDate(courseClassDate + " " + courseStartDateTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
+							Date endDateTime = DateUtil.stringToDate(courseClassDate + " " + courseEndDateTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
+							StudentAttendance byStatusAndCourseScheduleId = studentAttendanceDao.findByStatusAndCourseScheduleId(userId, e.getId().intValue());
+							if(byStatusAndCourseScheduleId != null){
+								byStatusAndCourseScheduleId.setSignOutTime(date);
+								byStatusAndCourseScheduleId.setStatus(statusEnum);
+								byStatusAndCourseScheduleId.setUpdateTime(date);
+								studentAttendanceDao.update(byStatusAndCourseScheduleId);
 							}else {
+								byStatusAndCourseScheduleId = new StudentAttendance();
+								byStatusAndCourseScheduleId.setSignOutTime(endDateTime);
+								byStatusAndCourseScheduleId.setStatus(statusEnum);
+								byStatusAndCourseScheduleId.setSignInTime(startDateTime);
+								byStatusAndCourseScheduleId.setUpdateTime(date);
+								byStatusAndCourseScheduleId.setUserId(userId);
+								byStatusAndCourseScheduleId.setTeacherId(courseSchedule.getActualTeacherId());
+								byStatusAndCourseScheduleId.setClassGroupId(e.getClassGroupId());
+								byStatusAndCourseScheduleId.setCourseScheduleId(e.getId());
+								byStatusAndCourseScheduleId.setMusicGroupId(e.getMusicGroupId());
+								byStatusAndCourseScheduleId.setGroupType(e.getGroupType());
+								byStatusAndCourseScheduleId.setCurrentClassTimes(classGroup.getCurrentClassTimes() + 1);
+								studentAttendanceDao.insert(byStatusAndCourseScheduleId);
+							}
+							if(!date.before(endDateTime)){
 								break;
 							}
 						}
@@ -596,7 +595,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 		//是否是连堂课
 		String continueCourseTime = sysConfigDao.findConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME);
 		if(StringUtils.isEmpty(continueCourseTime)){
-			continueCourseTime = "10";
+			continueCourseTime = "5";
 		}
 		Date date = new Date();
 		for (CourseSchedule courseSchedule : courseScheduleList) {

+ 13 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -38,8 +38,6 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	@Autowired
 	private CourseHomeworkService courseHomeworkService;
 	@Autowired
-	private StudentAttendanceDao studentAttendanceDao;
-	@Autowired
 	private StudentCourseHomeworkDao studentCourseHomeworkDao;
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
@@ -274,7 +272,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		//签到
 		String continueCourseTime = sysConfigDao.findConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME);
 		if(StringUtils.isEmpty(continueCourseTime)){
-			continueCourseTime = "10";
+			continueCourseTime = "5";
 		}
 		if(teacherAttendance.getSignInTime() == null && SignStatusEnum.SIGN_IN.equals(signStatus)){
 			YesOrNoEnum yesOrNoEnum = courseScheduleService.enableOnlyNormalAttendance(courseSchedule.getStartClassTime(),
@@ -291,7 +289,6 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 				//正常签到范围(开始之前)
 				isSign = true;
 			}else {
-//			}else if(DateUtil.minutesBetween(add1Minutes,date) >= 0){
 				//异常签到范围(开始之后)
 				isSign = true;
 				teacherAttendance.setSignInStatus(YesOrNoEnum.NO);
@@ -340,17 +337,20 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 						String courseEndDateTime;
 						for (CourseSchedule e:courseSchedules) {
 							//获取当前课程的单节课时长
-							int signClassMinutes = courseScheduleDao.getSingleClassMinutes(e.getId());
-							totalMinutes -= signClassMinutes;
-							if(totalMinutes >= 0){
-								//补充签到签退时间
-								courseClassDate = DateUtil.format(e.getClassDate(), DateUtil.DEFAULT_PATTERN);
-								courseStartDateTime = DateUtil.format(e.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
-								courseEndDateTime = DateUtil.format(e.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
-								Date startDateTime = DateUtil.stringToDate(courseClassDate + " " + courseStartDateTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
-								Date endDateTime = DateUtil.stringToDate(courseClassDate + " " + courseEndDateTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
+//							int signClassMinutes = courseScheduleDao.getSingleClassMinutes(e.getId());
+							courseClassDate = DateUtil.format(e.getClassDate(), DateUtil.DEFAULT_PATTERN);
+							courseStartDateTime = DateUtil.format(e.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
+							courseEndDateTime = DateUtil.format(e.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
+							Date startDateTime = DateUtil.stringToDate(courseClassDate + " " + courseStartDateTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
+							Date endDateTime = DateUtil.stringToDate(courseClassDate + " " + courseEndDateTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
+							//如果签退时间大于课程结束时间
+							if(date.before(endDateTime)){
+								teacherAttendanceDao.cuntinueCourseSign(e.getId(),startDateTime,endDateTime,1);
+							}else if (date.equals(endDateTime)){
 								teacherAttendanceDao.cuntinueCourseSign(e.getId(),startDateTime,endDateTime,1);
+								break;
 							}else {
+								teacherAttendanceDao.cuntinueCourseSign(e.getId(),startDateTime,endDateTime,0);
 								break;
 							}
 						}

+ 35 - 1
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -216,7 +216,6 @@
         WHERE buy_months_ IS NULL
         GROUP BY student_id_
         ) p ON p.student_id_ = s.user_id_
-
         <include refid="student4OperatingQueryCondition"/>
     </select>
 
@@ -263,4 +262,39 @@
         WHERE FIND_IN_SET(teacher_id_, #{teacherIds})
         GROUP BY teacher_id_
     </select>
+
+    <select id="getBuyNums" resultMap="student4operating">
+        SELECT s.teacher_id_, COUNT(DISTINCT cssp.user_id_) student_num_
+        FROM course_schedule_student_payment cssp
+        LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_ AND cs.teach_mode_ = 'ONLINE'
+        LEFT JOIN student s ON s.user_id_ = cssp.user_id_
+        WHERE cs.status_ IN ('NOT_START', 'UNDERWAY')
+        AND (cs.is_lock_ IS NULL OR cs.is_lock_ = 0)
+        <if test="groupType != null">
+            AND cs.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        </if>
+        AND FIND_IN_SET(s.teacher_id_, #{teacherIds})
+        GROUP BY s.teacher_id_
+    </select>
+    <select id="getPracticeAndVipNums" resultMap="student4operating">
+        SELECT s.teacher_id_, COUNT(DISTINCT pg.student_id_) student_num_
+        FROM practice_group pg
+                 LEFT JOIN student s on s.user_id_ = pg.student_id_
+                 LEFT JOIN course_schedule_student_payment vcssp
+                           ON vcssp.user_id_ = pg.student_id_ AND vcssp.group_type_ = 'VIP'
+                 LEFT JOIN course_schedule_student_payment pcssp
+                           ON pcssp.user_id_ = pg.student_id_ AND pcssp.group_type_ = 'PRACTICE'
+                 LEFT JOIN course_schedule vcs ON vcs.id_ = vcssp.course_schedule_id_ AND vcs.teach_mode_ = 'ONLINE'
+                 LEFT JOIN course_schedule pcs ON pcs.id_ = pcssp.course_schedule_id_
+        WHERE pg.group_status_ IN ('NORMAL', 'FINISH')
+          AND vcs.id_ >= 1
+          AND pcs.id_ >= 1
+          AND (vcs.is_lock_ IS NULL OR vcs.is_lock_ = 0)
+          AND (pcs.is_lock_ IS NULL OR pcs.is_lock_ = 0)
+          AND vcs.status_ IN ('NOT_START', 'UNDERWAY')
+          AND pcs.status_ IN ('NOT_START', 'UNDERWAY')
+          AND pg.buy_months_ >= 1
+          AND FIND_IN_SET(s.teacher_id_, #{teacherIds})
+        GROUP BY s.teacher_id_
+    </select>
 </mapper>

+ 8 - 8
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -112,9 +112,9 @@ public class RoomServiceImpl implements RoomService {
         Teacher teacher = teacherDao.get(Integer.parseInt(userId));
         CourseSchedule courseSchedule = courseScheduleDao.get(Long.parseLong(roomId));
 
-        /*String continueCourseTime = sysConfigDao.findConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME);
+        String continueCourseTime = sysConfigDao.findConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME);
         if(StringUtils.isEmpty(continueCourseTime)){
-            continueCourseTime = "3";
+            continueCourseTime = "5";
         }
         CourseSchedule schedule = courseSchedule;
         //如果当前课程是连堂课,那么获取第一节课的课程编号
@@ -127,8 +127,8 @@ public class RoomServiceImpl implements RoomService {
             }else {
                 break;
             }
-        }*/
-        try {
+        }
+        /*try {
             if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
                 teacherAttendanceService.addTeacherAttendanceRecord(Integer.parseInt(roomId),courseSchedule.getActualTeacherId(), SignStatusEnum.SIGN_IN,true);
             }else {
@@ -136,7 +136,7 @@ public class RoomServiceImpl implements RoomService {
             }
         }catch (Exception e){
             e.printStackTrace();
-        }
+        }*/
         if(courseSchedule.getGroupType() == GroupType.COMM){
             roomId = "I" + roomId;
         }else {
@@ -246,9 +246,9 @@ public class RoomServiceImpl implements RoomService {
         Teacher teacher = teacherDao.get(Integer.parseInt(userId));
         CourseSchedule courseSchedule = courseScheduleDao.get(roomId);
 
-        /*String continueCourseTime = sysConfigDao.findConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME);
+        String continueCourseTime = sysConfigDao.findConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME);
         if(StringUtils.isEmpty(continueCourseTime)){
-            continueCourseTime = "3";
+            continueCourseTime = "5";
         }
         CourseSchedule schedule = courseSchedule;
         //如果当前课程是连堂课,那么获取第一节课的课程编号
@@ -261,7 +261,7 @@ public class RoomServiceImpl implements RoomService {
             }else {
                 break;
             }
-        }*/
+        }
         try {
             if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
                 teacherAttendanceService.addTeacherAttendanceRecord(roomId.intValue(),courseSchedule.getActualTeacherId(), SignStatusEnum.SIGN_IN,true);