Bläddra i källkod

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

yonge 5 år sedan
förälder
incheckning
2bca4884b3

+ 1 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java

@@ -145,6 +145,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public SysUserInfo initUser(String phone, String clientId) {
 		if(autoRegister){
 			Date date = new Date();

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentManageVipGroupClassDto.java

@@ -16,10 +16,30 @@ public class StudentManageVipGroupClassDto {
 
     private Integer studentNum;
 
+    private Integer currentClassTimes;
+
+    private Integer totalClassTimes;
+
     private String activeName;
 
     private Date courseStartDate;
 
+    public Integer getCurrentClassTimes() {
+        return currentClassTimes;
+    }
+
+    public void setCurrentClassTimes(Integer currentClassTimes) {
+        this.currentClassTimes = currentClassTimes;
+    }
+
+    public Integer getTotalClassTimes() {
+        return totalClassTimes;
+    }
+
+    public void setTotalClassTimes(Integer totalClassTimes) {
+        this.totalClassTimes = totalClassTimes;
+    }
+
     public Long getVipGroupId() {
         return vipGroupId;
     }

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

@@ -256,7 +256,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		teacherAttendance.setTeacherId(userId);
 		teacherAttendance.setClassGroupId(classGroup.getId());
 		teacherAttendance.setMusicGroupId(classGroup.getMusicGroupId());
-		int advanceSignMinutes = Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.ADVANCE_SIGN_IN_MINUTES));
+//		int advanceSignMinutes = Integer.parseInt(sysConfigDao.findConfigValue(SysConfigService.ADVANCE_SIGN_IN_MINUTES));
 		Date date = new Date();
 		String classDate = DateUtil.format(courseSchedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
 		String startClassTime = DateUtil.format(courseSchedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
@@ -265,7 +265,8 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		Date classStartDateTime = DateUtil.stringToDate(classDate + " " + startClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
 		Date classEndDateTime = DateUtil.stringToDate(classDate + " " + endClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
 		Date classEndDateAdd60Minutes = DateUtil.addMinutes(classEndDateTime, 60);
-		Date add20Minutes = DateUtil.addMinutes(classStartDateTime, advanceSignMinutes * -1);
+		Date classEndDateCut10Minutes = DateUtil.addMinutes(classEndDateTime, -10);
+//		Date add20Minutes = DateUtil.addMinutes(classStartDateTime, advanceSignMinutes * -1);
 		Date add60Minutes = DateUtil.addMinutes(classStartDateTime, -60);
 		//签到
 		if(teacherAttendance.getSignInTime() == null && SignStatusEnum.SIGN_IN.equals(signStatus)){
@@ -280,11 +281,11 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			boolean isSign = false;
 			if(yesOrNoEnum == YesOrNoEnum.YES){
 				isSign = true;
-			}else if(DateUtil.minutesBetween(add60Minutes,date) > 0 && DateUtil.minutesBetween(date,add20Minutes) > 0){
-				//正常签到范围(开始前60分钟  ~  开始之前20分钟)
+			}else if(DateUtil.minutesBetween(add60Minutes,date) > 0 && DateUtil.minutesBetween(date,classStartDateTime) > 0){
+				//正常签到范围(开始前60分钟  ~  开始之前)
 				isSign = true;
-			}else if(DateUtil.minutesBetween(add20Minutes,date) > 0){
-				//异常签到范围(开始之前20分钟)
+			}else if(DateUtil.minutesBetween(classStartDateTime,date) > 0){
+				//异常签到范围(开始之)
 				isSign = true;
 				teacherAttendance.setSignInStatus(YesOrNoEnum.NO);
 			}
@@ -303,8 +304,8 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		}
 		//签退
 		if(teacherAttendance.getSignOutTime() == null && SignStatusEnum.SIGN_OUT.equals(signStatus)){
-			//正常签退范围(课程结束,1小时内)
-			if(DateUtil.minutesBetween(classEndDateTime,date) > 0 && DateUtil.minutesBetween(date,classEndDateAdd60Minutes) > 0){
+			//正常签退范围(课程结束前10分钟,1小时内)
+			if(DateUtil.minutesBetween(classEndDateCut10Minutes,date) > 0 && DateUtil.minutesBetween(date,classEndDateAdd60Minutes) > 0){
 				teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
 			}else if(DateUtil.minutesBetween(classEndDateAdd60Minutes,date) > 0){
 				teacherAttendance.setSignOutStatus(YesOrNoEnum.NO);

+ 6 - 3
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -478,15 +478,18 @@
         <result property="studentNum" column="student_num_"/>
         <result property="activeName" column="name_"/>
         <result property="courseStartDate" column="courses_start_date"/>
+        <result property="currentClassTimes" column="current_class_times_"/>
+        <result property="totalClassTimes" column="total_class_times_"/>
     </resultMap>
     <select id="findStudentVipGroupClass" resultMap="StudentManageVipGroupClassDto">
-        SELECT vg.id_,vg.name_ vip_group_name_,vg.status_,cgtm.user_id_,cg.student_num_,vgc.name_,vg.courses_start_date
+        SELECT vg.id_,vg.name_ vip_group_name_,vg.status_,cgtm.user_id_,cg.student_num_,
+        vgc.name_,vg.courses_start_date,cg.current_class_times_,cg.total_class_times_
         FROM class_group_student_mapper cgsm
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
         LEFT JOIN vip_group vg ON cg.music_group_id_ = vg.id_
         LEFT JOIN class_group_teacher_mapper cgtm ON cgtm.class_group_id_ = cg.id_
         LEFT JOIN vip_group_activity vgc ON vgc.id_ = vg.vip_group_activity_id_
-        WHERE cg.group_type_ = 'VIP' AND cgtm.teacher_role_ = 'BISHOP' AND cgsm.user_id_ = #{studentId}
+        WHERE cg.group_type_ = 'VIP' AND cgtm.teacher_role_ = 'BISHOP' AND cgsm.status != 'QUIT' AND cgsm.user_id_ = #{studentId}
         <if test="vipGroupName != null">
             AND vg.name_ LIKE CONCAT('%',#{vipGroupName},'%')
         </if>
@@ -500,7 +503,7 @@
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
         LEFT JOIN vip_group vg ON cg.music_group_id_ = vg.id_
         LEFT JOIN class_group_teacher_mapper cgtm ON cgtm.class_group_id_ = cg.id_
-        WHERE cg.group_type_ = 'VIP' AND cgtm.teacher_role_ = 'BISHOP' AND cgsm.user_id_ = #{studentId}
+        WHERE cg.group_type_ = 'VIP' AND cgtm.teacher_role_ = 'BISHOP' AND cgsm.status != 'QUIT' AND cgsm.user_id_ = #{studentId}
         <if test="vipGroupName != null">
             AND vg.name_ LIKE CONCAT('%',#{vipGroupName},'%')
         </if>

+ 18 - 30
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -110,41 +110,29 @@
 	</select>
 
     <select id="findStudentVipGroups" resultMap="studentManageVipGroup">
-        SELECT cs.teach_mode_,su.real_name_,cg.student_num_,cg.total_class_times_,cg.current_class_times_,
-        CONCAT(cs.class_date_," ",cs.start_class_time_) course_date_,cg.id_ class_group_id_,cg.name_ class_group_name_,cs.status_ course_status_
-        FROM vip_group vg
-        LEFT JOIN class_group cg ON cg.music_group_id_ = vg.id_
-        LEFT JOIN course_schedule cs ON cs.music_group_id_ = vg.id_
-        LEFT JOIN sys_user su ON su.id_ = cs.actual_teacher_id_
-        LEFT JOIN class_group_student_mapper cgsm ON cgsm.music_group_id_ = vg.id_
-        <where>
-            vg.audit_status_ = 'PASS' AND cs.id_ IS NOT NULL AND cgsm.status_ != 'QUIT' AND cg.group_type_ = 'VIP'
-            <if test="studentId != null">
-                AND cgsm.user_id_ = #{studentId}
-            </if>
-            <if test="classGroupName != null">
-                AND cg.name_ LIKE CONCAT('%',#{classGroupName},'%')
-            </if>
-        </where>
-        ORDER BY cs.class_date_,cs.start_class_time_
+        SELECT CONCAT(cs.class_date_," ",cs.start_class_time_) course_date_,cs.teach_mode_,cs.status_ course_status_,cs.name_ class_group_name_
+        FROM course_schedule cs
+        WHERE cs.group_type_ = 'VIP'
+        <if test="vipGroupId != null">
+            AND cs.music_group_id_ = #{vipGroupId}
+        </if>
+        <if test="classGroupName != null">
+            AND cs.name_ LIKE CONCAT('%',#{classGroupName},'%')
+        </if>
+        ORDER BY course_date_
         <include refid="global.limit"/>
     </select>
 
     <select id="countStudentVipGroups" resultType="java.lang.Integer">
         SELECT COUNT(cs.id_)
-        FROM vip_group vg
-        LEFT JOIN class_group cg ON cg.music_group_id_ = vg.id_
-        LEFT JOIN course_schedule cs ON cs.music_group_id_ = vg.id_
-        LEFT JOIN class_group_student_mapper cgsm ON cgsm.music_group_id_ = vg.id_
-        <where>
-            vg.audit_status_ = 'PASS' AND cs.id_ IS NOT NULL AND cgsm.status_ != 'QUIT' AND cg.group_type_ = 'VIP'
-            <if test="studentId != null">
-                AND cgsm.user_id_ = #{studentId}
-            </if>
-            <if test="classGroupName != null">
-                AND cg.name_ LIKE CONCAT('%',#{classGroupName},'%')
-            </if>
-        </where>
+        FROM course_schedule cs
+        WHERE cs.group_type_ = 'VIP'
+        <if test="vipGroupId != null">
+            AND cs.music_group_id_ = #{vipGroupId}
+        </if>
+        <if test="classGroupName != null">
+            AND cs.name_ LIKE CONCAT('%',#{classGroupName},'%')
+        </if>
     </select>
 
     <!-- 全查询 -->