Ver Fonte

Merge remote-tracking branch 'origin/master'

周箭河 há 5 anos atrás
pai
commit
dda72b5aec
21 ficheiros alterados com 162 adições e 111 exclusões
  1. 3 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  2. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
  3. 3 1
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentCourseHomeworkReplyService.java
  4. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java
  5. 12 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkReplyServiceImpl.java
  6. 14 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  7. 4 10
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  8. 8 7
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  9. 3 3
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  10. 3 1
      mec-biz/src/main/resources/config/mybatis/DemoGroupMapper.xml
  11. 6 6
      mec-biz/src/main/resources/config/mybatis/EmployeeMapper.xml
  12. 11 6
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  13. 6 5
      mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml
  14. 1 2
      mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml
  15. 3 1
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml
  16. 6 6
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  17. 3 3
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  18. 2 1
      mec-education/src/main/resources/mapper/ClassGroupStudentMapperMapper.xml
  19. 1 1
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseHomeworkReplyController.java
  20. 50 36
      mec-util/src/main/java/com/ym/mec/util/date/DateUtil.java
  21. 19 11
      mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -621,11 +621,12 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<StudentAttendance> queryUnsignedStudentList();
 
     /**
-     * @param classGroupId: 班级编号
+     * @param currentCourseDate: 班级编号
      * @return java.lang.Integer
      * @describe 统计已上的课时数
      * @author Joburgess
      * @date 2019/11/19
      */
-    Integer countCurrentTimes(Integer classGroupId);
+    Integer countCurrentTimes(@Param("classGroupId") Integer classGroupId,
+                              @Param("currentCourseDate") Date currentCourseDate);
 }

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java

@@ -73,7 +73,7 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @param musicGroupId
      * @return
      */
-    List<ImUserModel> findGroupUsers(String musicGroupId);
+//    List<ImUserModel> findGroupUsers(String musicGroupId);
 
     /**
      * 获取教师所在乐团列表
@@ -88,7 +88,7 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @param musicGroupId
      * @return
      */
-    Set<Integer> queryTeacherIds(String musicGroupId);
+//    Set<Integer> queryTeacherIds(String musicGroupId);
 
     /**
      * 根据乐团编号列表获取乐团在读人数map

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

@@ -5,4 +5,6 @@ import com.ym.mec.common.service.BaseService;
 
 public interface StudentCourseHomeworkReplyService extends BaseService<Long, StudentCourseHomeworkReply> {
 
-}
+    void insertTeacherReply(StudentCourseHomeworkReply bean);
+
+}

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

@@ -62,14 +62,14 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 	public void add(Employee employee){
 		SysUser user = sysUserFeignService.queryUserByMobile(employee.getPhone());
 		if(user != null && user.getId() != null){
-			employee.setUserType(SysUserType.SYSTEM);
-			teacherDao.updateUser(employee);
 			Employee employee1 = employeeDao.get(user.getId());
 			if(employee1 == null){
 				employee.setUserId(user.getId());
 				employeeDao.insert(employee);
 				//新增用户角色
 				employeeDao.batchAddEmployeeRole(user.getId(),employee.getRoleIds());
+				employee.setUserType(SysUserType.SYSTEM);
+				teacherDao.updateUser(employee);
 			}else{
 				new BizException("员工已存在");
 			}

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

@@ -43,10 +43,20 @@ public class StudentCourseHomeworkReplyServiceImpl extends BaseServiceImpl<Long,
 		if(Objects.isNull(studentCourseHomework)){
 			throw new BizException("请指定需要回复的作业");
 		}
+		return super.insert(bean);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void insertTeacherReply(StudentCourseHomeworkReply bean) {
+		StudentCourseHomework studentCourseHomework = studentCourseHomeworkService.get(bean.getStudentCourseHomeworkId());
+		if(Objects.isNull(studentCourseHomework)){
+			throw new BizException("请指定需要回复的作业");
+		}
 		studentCourseHomeworkService.updateReplyStatus(bean.getUserId(),
 				studentCourseHomework.getCourseHomeworkId(),
 				studentCourseHomework.getUserId());
-		return super.insert(bean);
+		super.insert(bean);
 	}
 
 	@Override
@@ -92,4 +102,4 @@ public class StudentCourseHomeworkReplyServiceImpl extends BaseServiceImpl<Long,
 		return studentCourseHomeworkCommentDto;
 	}
 
-}
+}

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

@@ -12,10 +12,12 @@ import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.redis.service.RedisCache;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -52,6 +54,9 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	@Autowired
 	private SubjectDao subjectDao;
 
+	@Autowired
+	private RedisCache<String,Object> redisCache;
+
 	@Override
 	public BaseDAO<Long, TeacherAttendance> getDAO() {
 		return teacherAttendanceDao;
@@ -101,7 +106,6 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		if(courseSchedule == null){
 			throw new BizException("课程信息不存在");
 		}
-		teacherAttendance.setCurrentClassTimes(courseScheduleDao.countCurrentTimes(teacherAttendance.getClassGroupId()) + 1);
 		String classDate = DateUtil.format(courseSchedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
 		String startClassTime = DateUtil.format(courseSchedule.getStartClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
 		String endClassTime = DateUtil.format(courseSchedule.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
@@ -112,6 +116,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		Date add20Minutes = DateUtil.addMinutes(classStartDateTime, advanceSignMinutes * -1);
 		Date add60Minutes = DateUtil.addMinutes(classStartDateTime, -60);
 		if(teacherAttendance.getSignInTime() == null && teacherSignOutDto.getTeacherAttendanceInfo().getStatus().equals(SignStatusEnum.SIGN_IN.getCode())){
+			teacherAttendance.setCurrentClassTimes(courseScheduleDao.countCurrentTimes(teacherAttendance.getClassGroupId(),courseSchedule.getStartClassTime()) + 1);
 
 			if (currentCourseDetail.getEndClassTime().before(date)){
 				throw new BizException("该课程已结束,不能进行签到!");
@@ -149,7 +154,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		}else if(teacherAttendance.getSignOutTime() == null && teacherSignOutDto.getTeacherAttendanceInfo().getStatus().equals(SignStatusEnum.SIGN_OUT.getCode())){
 			//正常签退范围(结束后1小时内)
 			teacherAttendance.setSignOutTime(date);
-			if(DateUtil.minutesBetween(classEndDateTime,date) > 0 && DateUtil.minutesBetween(date,classEndDateAdd60Minutes) > 0){
+			if(DateUtil.minutesBetween(classEndDateTime,date) >= 0 && DateUtil.minutesBetween(date,classEndDateAdd60Minutes) >= 0){
 				teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
 				result.put("signInStatus",0);
 			}else if(DateUtil.minutesBetween(classEndDateAdd60Minutes,date) > 0){
@@ -321,8 +326,14 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			Map<Integer, String> receivers = new HashMap<Integer, String>();
 			Integer userId = (Integer) mapper.getKey();
 			receivers.put(userId, userId + "");
+			
+			String key = "SignOut_" + userId + "_" + mapper.getCourseScheduleId();
 
-			sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_SIGN_OUT_MESSAGE, receivers, null, 0,"5?courseScheduleId=" + mapper.getCourseScheduleId(), mapper.getValue());
+			if (!redisCache.exists(key)) {
+				sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_SIGN_OUT_MESSAGE, receivers, null, 0,
+						"5?courseScheduleId=" + mapper.getCourseScheduleId(), mapper.getValue());
+				redisCache.put(key, 1, (int) DateUtil.getTomorrowZeroSeconds());
+			}
 		}
 		return true;
 	}

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

@@ -909,19 +909,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("该课程已结束报名!");
 		}
 
-		StudentPaymentOrder successOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupBuyParams.getVipGroupId(),
+		StudentPaymentOrder oldOrder = studentPaymentOrderDao.findByStudentVipGroup(vipGroupBuyParams.getVipGroupId(),
 				user.getId(),
-				DealStatusEnum.SUCCESS.getMsg());
+				null);
 
-		if(Objects.nonNull(successOrder)){
+		if(Objects.nonNull(oldOrder)&&oldOrder.getStatus().equals(DealStatusEnum.SUCCESS)){
 			throw new BizException("您已购买过此课程");
-		}
-
-		StudentPaymentOrder byStudentVipGroup = studentPaymentOrderDao.findByStudentVipGroup(vipGroupBuyParams.getVipGroupId(),
-				user.getId(),
-				DealStatusEnum.ING.getCode());
-
-		if(Objects.nonNull(byStudentVipGroup)){
+		}else if(Objects.nonNull(oldOrder)&&oldOrder.getStatus().equals(DealStatusEnum.ING)){
 			throw new BizException("您有处理中的订单,请等待处理结果");
 		}else{
 			if(classGroup.getStudentNum()>=classGroup.getExpectStudentNum()){

+ 8 - 7
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -271,7 +271,7 @@
         FROM class_group cg
         LEFT JOIN class_group_student_mapper cgsm ON cg.id_ = cgsm.class_group_id_
         LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
-        WHERE FIND_IN_SET(cg.music_group_id_,#{vipIds}) AND cg.type_ = 'VIP' AND cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT'
+        WHERE FIND_IN_SET(cg.music_group_id_,#{vipIds}) AND cg.group_type_ = 'VIP' AND cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT'
         GROUP BY cg.music_group_id_
     </select>
     <select id="findGroupUsers" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.ImUserModel">
@@ -501,14 +501,14 @@
         SELECT cg.name_ class_group_name_,cg.type_ class_group_type_,
         cg.current_class_times_,cg.id_ class_group_id_,cg.total_class_times_
         FROM class_group cg
-        WHERE cg.music_group_id_ = #{search} AND cg.del_flag_ = 0
+        WHERE cg.music_group_id_ = #{search} AND cg.del_flag_ = 0 AND cg.group_type_ = 'MUSIC'
         <include refid="global.limit"/>
     </select>
 
     <select id="countMusicGroupClassGroup" resultType="java.lang.Integer">
         SELECT COUNT(cg.id_)
         FROM class_group cg
-        WHERE cg.music_group_id_ = #{search} AND cg.del_flag_ = 0
+        WHERE cg.music_group_id_ = #{search} AND cg.del_flag_ = 0 AND cg.group_type_ = 'MUSIC'
     </select>
 
     <select id="countStudentNum" resultType="java.util.Map">
@@ -532,7 +532,7 @@
 
     <sql id="queryMusicGroupCourseScheduleSql">
         <where>
-            cg.del_flag_ = 0 AND cgtm.teacher_role_ = 'BISHOP'
+            cg.del_flag_ = 0 AND cgtm.teacher_role_ = 'BISHOP' AND cg.group_type_ = 'MUSIC'
             <if test="classScheduleType != null">
                 AND cs.type_ = #{classScheduleType}
             </if>
@@ -602,7 +602,8 @@
     <select id="queryStudentClassGroup" resultMap="ConditionDto">
         SELECT cg.id_,cg.name_,cg.student_num_ FROM class_group_student_mapper cgsm
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
-        where cg.music_group_id_ = #{musicGroupId} AND cgsm.user_id_ = #{teacherId} AND cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT'
+        where cg.music_group_id_ = #{musicGroupId} AND cgsm.user_id_ = #{teacherId}
+        AND cg.del_flag_ = 0 AND cgsm.status_ != 'QUIT' AND cg.group_type_ = 'MUSIC'
     </select>
 
     <resultMap type="com.ym.mec.biz.dal.dto.CourseListDto" id="CourseListDto">
@@ -631,7 +632,7 @@
         FROM vip_group vg
         LEFT JOIN class_group cg ON cg.music_group_id_ = vg.id_
         LEFT JOIN sys_user su ON vg.user_id_ = su.id_
-        WHERE cg.type_ = 'VIP' AND FIND_IN_SET(vg.id_,#{musicGroupIds}) AND vg.status_!=3
+        WHERE cg.group_type_ = 'VIP' AND FIND_IN_SET(vg.id_,#{musicGroupIds}) AND vg.status_!=3
     </select>
     <select id="queryStudentMusicGroupCourses" resultMap="CourseListDto">
         SELECT mg.id_ music_group_id_,mg.name_ music_group_name_,mgsf.payment_status_,
@@ -641,7 +642,7 @@
         LEFT JOIN class_group cg ON cg.music_group_id_ = mg.id_
         LEFT JOIN music_group_student_fee_ mgsf ON mgsf.music_group_id_ = mg.id_
         LEFT JOIN class_group_student_mapper cgsm ON cgsm.class_group_id_ = cg.id_
-        WHERE FIND_IN_SET(mg.id_,#{musicGroupIds}) AND cg.type_ != 'VIP' AND cg.del_flag_ = 0 AND mgsf.user_id_ =
+        WHERE FIND_IN_SET(mg.id_,#{musicGroupIds}) AND cg.group_type_ = 'MUSIC' AND cg.del_flag_ = 0 AND mgsf.user_id_ =
         #{userId} AND cgsm.user_id_ = #{userId}
         GROUP BY mg.id_,mgsf.payment_status_
     </select>

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

@@ -188,7 +188,7 @@
         FROM
         course_schedule cs
         INNER JOIN class_group cg ON cs.class_group_id_=cg.id_
-        WHERE cg.music_group_id_=#{musicGroupID}
+        WHERE cg.music_group_id_=#{musicGroupID} AND cg.group_type_='MUSIC'
     </delete>
 
     <delete id="batchDeleteCourseSchedules">
@@ -907,7 +907,7 @@
     </update>
     <update id="updateByMusicGroupId">
         UPDATE course_schedule cs SET cs.schoole_id_ = #{schoolId}
-        WHERE cs.class_group_id_ IN (SELECT cg.id_ FROM class_group cg WHERE cg.music_group_id_ = #{musicGroupId})
+        WHERE cs.class_group_id_ IN (SELECT cg.id_ FROM class_group cg WHERE cg.music_group_id_ = #{musicGroupId} AND cg.group_type_ = 'MUSIC' )
     </update>
 
     <update id="updateCourscheduleStatus">
@@ -1418,6 +1418,6 @@
         LIMIT 1
     </select>
     <select id="countCurrentTimes" resultType="int">
-        SELECT COUNT(*) FROM course_schedule WHERE class_group_id_=#{classGroupId} AND CONCAT(class_date_,' ',end_class_time_)&lt;NOW()
+        SELECT COUNT(*) FROM course_schedule WHERE class_group_id_=#{classGroupId} AND CONCAT(class_date_,' ',end_class_time_)&lt;#{currentCourseDate}
     </select>
 </mapper>

+ 3 - 1
mec-biz/src/main/resources/config/mybatis/DemoGroupMapper.xml

@@ -311,7 +311,9 @@
 	</select>
     
     <select id="queryCurrentMonthCoursesNum" resultType="int">
-    	select count(cs.id_) from course_schedule cs left join demo_group vg on cs.music_group_id_ = vg.id_ AND cs.group_type_='DEMO' where cs.type_ in ('DEMO')
+    	select count(cs.id_) from course_schedule cs
+        left join demo_group vg on cs.music_group_id_ = vg.id_
+        where cs.type_ = 'DEMO'
   		and DATE_FORMAT(cs.class_date_, '%Y%m' ) = DATE_FORMAT(CURDATE() , '%Y%m')
    		<if test="organId != null">
    			and find_in_set(#{organId},vg.organ_id_list_)

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

@@ -183,18 +183,18 @@
         e.entry_date_,e.demission_date_,e.organ_id_list_ organ_id_,e.create_time_
         FROM employee e LEFT JOIN sys_user su ON e.user_id_ = su.id_
         <where>
+            su.user_type_ = 'SYSTEM'
             <if test="organId != null">
-                FIND_IN_SET(su.organ_id_,#{organId})
+                AND FIND_IN_SET(su.organ_id_,#{organId})
+            </if>
+            <if test="search != null">
+                AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
             </if>
         </where>
-        ORDER BY su.create_time_ DESC <include refid="global.limit"/>) ue
+        ORDER BY e.create_time_ DESC <include refid="global.limit"/>) ue
         LEFT JOIN sys_user_role sur ON sur.user_id_ = ue.user_id_
         LEFT JOIN sys_role sr ON sr.id_ = sur.role_id_
         LEFT JOIN organization o ON FIND_IN_SET(o.id_,ue.organ_id_)
-        WHERE ue.user_type_ = 'SYSTEM'
-        <if test="search != null">
-            AND (ue.real_name_ LIKE CONCAT('%',#{search},'%') OR ue.phone_ LIKE CONCAT('%',#{search},'%'))
-        </if>
     </select>
 
     <select id="queryEmployByOrganIdCount" resultType="int">

+ 11 - 6
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -284,12 +284,12 @@
 		<result property="name" column="username_"/>
 		<result property="portrait" column="avatar_"/>
 	</resultMap>
-	<select id="findGroupUsers" resultMap="ImUserModel">
+	<!--<select id="findGroupUsers" resultMap="ImUserModel">
 		SELECT su.id_,su.avatar_,su.username_ FROM class_group cg
 		LEFT JOIN class_group_student_mapper cgsm ON cg.id_ = cgsm.class_group_id_
 		LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
 		WHERE cg.music_group_id_ = #{musicGroupId}  AND cgsm.status_ != 'QUIT' GROUP BY su.id_
-	</select>
+	</select>-->
 	<select id="queryTeacherGroups" resultMap="com.ym.mec.biz.dal.dao.ClassGroupDao.imGroupModel">
 		SELECT mg.id_,mg.name_,mg.img_,GROUP_CONCAT(DISTINCT cgtm.user_id_) teacher_ids_
 		FROM music_group mg
@@ -303,16 +303,18 @@
 		GROUP BY mg.id_
 	</select>
 
-	<select id="queryTeacherIds" resultType="java.lang.Integer">
+	<!--<select id="queryTeacherIds" resultType="java.lang.Integer">
 		SELECT DISTINCT cgtm.user_id_ FROM class_group cg
 		LEFT JOIN class_group_teacher_mapper cgtm ON cg.id_ = cgtm.class_group_id_
 		WHERE cg.music_group_id_ = #{musicGroupId}
-	</select>
+	</select>-->
+
     <select id="countPayNum" resultType="java.util.Map" parameterType="list">
 		SELECT cg.music_group_id_ `key`,COUNT(cgsm.id_) `value` FROM class_group cg
 		LEFT JOIN class_group_student_mapper cgsm ON cg.id_ = cgsm.class_group_id_
 		WHERE FIND_IN_SET(cg.music_group_id_,#{musicGroupIds})
-		AND cgsm.status_ != 'QUIT' AND cg.type_ != 'MIX' GROUP BY cg.music_group_id_
+		AND cgsm.status_ != 'QUIT' AND cg.type_ != 'MIX' AND cg.group_type_ = 'MUSIC'
+		GROUP BY cg.music_group_id_
 	</select>
 
     <select id="queryListByIds" resultMap="MusicGroup" parameterType="list">
@@ -341,7 +343,10 @@
   	</select>
   	
   	<select id="queryCurrentMonthCoursesNum" resultType="int">
-  		select count(cs.id_) from course_schedule cs left join class_group cg on cs.class_group_id_ = cg.id_ left join music_group mg on cg.music_group_id_ = mg.id_ where cs.type_ not in ('VIP','DEMO')
+  		SELECT count(cs.id_) from course_schedule cs
+		left join class_group cg on cs.class_group_id_ = cg.id_
+		left join music_group mg on cg.music_group_id_ = mg.id_
+		where cs.group_type_ = 'MUSIC' AND cg.group_type_ = 'MUSIC'
   		and DATE_FORMAT(cs.class_date_, '%Y%m' ) = DATE_FORMAT(CURDATE() , '%Y%m')
    		<if test="organId != null">
    			and mg.organ_id_ = #{organId}

+ 6 - 5
mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml

@@ -143,17 +143,18 @@
 
     <sql id="queryCondition">
         <where>
+                cg.group_type_ = 'MUSIC'
             <if test="createTime != null">
-                DATE_FORMAT(ch.create_time_,"%Y%m%d") = DATE_FORMAT(#{createTime},"%Y%m%d")
+                AND DATE_FORMAT(ch.create_time_,"%Y%m%d") = DATE_FORMAT(#{createTime},"%Y%m%d")
             </if>
             <if test="musicGroupId != null">
-                and cg.music_group_id_ = #{musicGroupId}
+                AND cg.music_group_id_ = #{musicGroupId}
             </if>
             <if test="classGroupId != null">
-                and ch.class_group_id_ = #{classGroupId}
+                AND ch.class_group_id_ = #{classGroupId}
             </if>
             <if test="userId != null">
-                and sch.user_id_ = #{userId}
+                AND sch.user_id_ = #{userId}
             </if>
         </where>
     </sql>
@@ -249,7 +250,7 @@
 			student_course_homework sch
 			LEFT JOIN sys_user su ON sch.user_id_=su.id_
 			<where>
-				sch.course_homework_id_=#{courseScheduleId}
+				sch.course_schedule_id_=#{courseScheduleId}
 				<if test="userName!=null and userName!=''">
 					AND su.username_ LIKE CONCAT('%',#{userName},'%')
 				</if>

+ 1 - 2
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -153,7 +153,7 @@
         sr.parents_phone_,sr.current_class_,sr.current_grade_
         FROM sys_user su
         LEFT JOIN student_registration sr ON su.id_ = sr.user_id_
-        WHERE su.id_ =#{userId} AND su.user_type_ LIKE CONCAT('%',"STUDENT",'%') AND sr.music_group_status_ != 'QUIT' LIMIT 1
+        WHERE su.id_ =#{userId} AND su.user_type_ = 'STUDENT' LIMIT 1
     </select>
 
     <select id="findGoodsNamesByIds" resultType="string">
@@ -353,7 +353,6 @@
 
     <sql id="queryMusicGroupStudentSql">
         <where>
-                sr.music_group_status_ != 'QUIT'
             <if test="search != null and search != ''">
                 AND (su.real_name_ like CONCAT("%",#{search},"%") OR sr.parents_phone_ like CONCAT("%",#{search},"%"))
             </if>

+ 3 - 1
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -200,7 +200,9 @@
           student_payment_order spo
         WHERE spo.user_id_=#{userId}
             AND spo.music_group_id_=#{vipGroupId}
-            AND spo.status_=#{status}
+            <if test="status!=null and status!=''">
+                AND spo.status_=#{status}
+            </if>
             AND spo.type_ = 'SMALL_CLASS_TO_BUY'
     </select>
     <!-- 查询报名订单 -->

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

@@ -318,13 +318,13 @@
 
     <select id="findTeacherByMusicGroup" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
         SELECT
-        su.id_ user_id_,
-        su.username_
+            su.id_ user_id_,
+            su.username_
         FROM
-        class_group_teacher_mapper cgtm
-        LEFT JOIN class_group cg ON cg.id_=cgtm.class_group_id_
-        LEFT JOIN sys_user su ON cgtm.user_id_=su.id_
-        WHERE cg.music_group_id_=#{musicGroupId}
+          class_group_teacher_mapper cgtm
+            LEFT JOIN class_group cg ON cg.id_=cgtm.class_group_id_
+            LEFT JOIN sys_user su ON cgtm.user_id_=su.id_
+        WHERE cg.music_group_id_=#{musicGroupId} AND cg.group_type_='MUSIC'
         GROUP BY su.id_
     </select>
     <resultMap id="MusicGroupTeachersDto" type="com.ym.mec.biz.dal.dto.MusicGroupTeachersDto">

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

@@ -118,7 +118,7 @@
         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'
+            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>
@@ -137,7 +137,7 @@
         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'
+            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>
@@ -463,7 +463,7 @@
             COUNT(cs.id_) as 'value'
         FROM
             course_schedule cs
-            WHERE cs.status_="NOT_START" AND cs.type_="VIP" AND cs.music_group_id_=#{vipGroupId} AND cs.group_type_='VIP'
+            WHERE cs.status_="NOT_START" AND cs.type_ = 'VIP' AND cs.music_group_id_=#{vipGroupId} AND cs.group_type_='VIP'
             GROUP BY cs.teach_mode_
     </select>
 

+ 2 - 1
mec-education/src/main/resources/mapper/ClassGroupStudentMapperMapper.xml

@@ -22,7 +22,8 @@
     <select id="selectStudentPage" parameterType="com.ym.mec.education.req.ClassGroupReq"
             resultType="com.ym.mec.education.resp.ClassStudentResp">
 
-        SELECT s.real_name_ as name,s.avatar_ as avatar,m.class_group_id_ as classGroupId,s.id_ as userId,c.music_group_id_ as musicGroupId  from class_group_student_mapper m
+        SELECT s.real_name_ as name,s.avatar_ as avatar,m.class_group_id_ as classGroupId,s.id_ as userId,c.music_group_id_ as musicGroupId
+        from class_group_student_mapper m
 
         LEFT JOIN class_group c on m.class_group_id_ = c.id_
 

+ 1 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseHomeworkReplyController.java

@@ -37,7 +37,7 @@ public class TeacherCourseHomeworkReplyController extends BaseController {
             return failed(HttpStatus.FORBIDDEN,"请登录");
         }
         studentCourseHomeworkReply.setUserId(user.getId());
-        studentCourseHomeworkReplyService.insert(studentCourseHomeworkReply);
+        studentCourseHomeworkReplyService.insertTeacherReply(studentCourseHomeworkReply);
         return succeed();
     }
 

+ 50 - 36
mec-util/src/main/java/com/ym/mec/util/date/DateUtil.java

@@ -14,7 +14,6 @@ import java.util.*;
  */
 public class DateUtil {
 
-
 	private static final String CHINESE_DATA_FORMAT = "yyyy年MM月dd日 HH:mm:ss";
 
 	public static final String DEFAULT_PATTERN = "yyyy-MM-dd";
@@ -885,14 +884,14 @@ public class DateUtil {
 	 * @param weekNum 周几
 	 * @return java.util.List<java.util.Date>
 	 */
-	public static List<Date> getWeekDays(Date startTime, Date endTime, int weekNum){
+	public static List<Date> getWeekDays(Date startTime, Date endTime, int weekNum) {
 		Calendar calendar = Calendar.getInstance();
-		List<Date> dates=new ArrayList<>();
-		for(Date x = startTime; x.compareTo(endTime) <= 0;){
+		List<Date> dates = new ArrayList<>();
+		for (Date x = startTime; x.compareTo(endTime) <= 0;) {
 			calendar.setTime(x);
 			calendar.add(Calendar.DATE, 1);
 			x = calendar.getTime();
-			if(calendar.get(Calendar.DAY_OF_WEEK) == weekNum){
+			if (calendar.get(Calendar.DAY_OF_WEEK) == weekNum) {
 				dates.add(x);
 			}
 		}
@@ -909,7 +908,7 @@ public class DateUtil {
 	public static Date getWeekMondayWithDate(Date date) {
 		Calendar cal = Calendar.getInstance();
 		try {
-			date=new SimpleDateFormat(DEFAULT_PATTERN).parse(new SimpleDateFormat(DEFAULT_PATTERN).format(date));
+			date = new SimpleDateFormat(DEFAULT_PATTERN).parse(new SimpleDateFormat(DEFAULT_PATTERN).format(date));
 		} catch (ParseException e) {
 			e.printStackTrace();
 		}
@@ -960,14 +959,12 @@ public class DateUtil {
 	 * @param days: 天数
 	 * @return java.util.Date
 	 */
-	public static Date addDays1(Date date,int days) {
+	public static Date addDays1(Date date, int days) {
 		Calendar cal = Calendar.getInstance();
 		cal.setTime(date);
 		cal.add(Calendar.DATE, days);
 		try {
-			return new SimpleDateFormat(DateUtil.DEFAULT_PATTERN)
-					.parse(new SimpleDateFormat(DateUtil.DEFAULT_PATTERN)
-							.format(cal.getTime()));
+			return new SimpleDateFormat(DateUtil.DEFAULT_PATTERN).parse(new SimpleDateFormat(DateUtil.DEFAULT_PATTERN).format(cal.getTime()));
 		} catch (ParseException e) {
 			return cal.getTime();
 		}
@@ -978,7 +975,7 @@ public class DateUtil {
 	 * @param date
 	 * @return
 	 */
-	public static String date2ChineseDate(Date date){
+	public static String date2ChineseDate(Date date) {
 		return new SimpleDateFormat(CHINESE_DATA_FORMAT).format(date);
 	}
 
@@ -989,13 +986,13 @@ public class DateUtil {
 	 * @param dateZones:
 	 * @return boolean
 	 */
-	public static boolean checkDateZoneOverlap(List<DateZone> dateZones){
+	public static boolean checkDateZoneOverlap(List<DateZone> dateZones) {
 		dateZones.sort(Comparator.comparing(DateZone::getStartTime));
-		if(dateZones.size()<=1){
+		if (dateZones.size() <= 1) {
 			return false;
-		}else{
-			for (int i=0;i<dateZones.size()-1;i++){
-				if(dateZones.get(i+1).getStartTime().before(dateZones.get(i).getEndTime())){
+		} else {
+			for (int i = 0; i < dateZones.size() - 1; i++) {
+				if (dateZones.get(i + 1).getStartTime().before(dateZones.get(i).getEndTime())) {
 					return true;
 				}
 			}
@@ -1009,7 +1006,7 @@ public class DateUtil {
 	 * @date 2019/10/27
 	 * @return
 	 */
-	public static class DateZone{
+	public static class DateZone {
 		private Date startTime;
 		private Date endTime;
 
@@ -1050,32 +1047,49 @@ public class DateUtil {
 		calendar.setTime(date);
 		int i = calendar.get(Calendar.DAY_OF_WEEK);
 		switch (i) {
-			case 1:
-				return "星期日";
-			case 2:
-				return "星期一";
-			case 3:
-				return "星期二";
-			case 4:
-				return "星期三";
-			case 5:
-				return "星期四";
-			case 6:
-				return "星期五";
-			case 7:
-				return "星期六";
-			default:
-				return "";
+		case 1:
+			return "星期日";
+		case 2:
+			return "星期一";
+		case 3:
+			return "星期二";
+		case 4:
+			return "星期三";
+		case 5:
+			return "星期四";
+		case 6:
+			return "星期五";
+		case 7:
+			return "星期六";
+		default:
+			return "";
 		}
 	}
 
+	/**
+	 * 获取当前时间到0点的毫秒数
+	 * @return
+	 */
+	public static long getTomorrowZeroSeconds() {
+		long current = System.currentTimeMillis();// 当前时间毫秒数
+		Calendar calendar = Calendar.getInstance();
+		calendar.add(Calendar.DAY_OF_MONTH, 1);
+		calendar.set(Calendar.HOUR_OF_DAY, 0);
+		calendar.set(Calendar.MINUTE, 0);
+		calendar.set(Calendar.SECOND, 0);
+		calendar.set(Calendar.MILLISECOND, 0);
+		long tomorrowzero = calendar.getTimeInMillis();
+		long tomorrowzeroSeconds = (tomorrowzero - current) / 1000;
+		return tomorrowzeroSeconds;
+	}
+
 	public static void main(String[] args) throws ParseException {
-//		DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
+		// DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
 		// DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-//		System.out.println(daysBetween(df.parse("2017-07-20 10:07:42"), df.parse(df.format(new Date()))));
+		// System.out.println(daysBetween(df.parse("2017-07-20 10:07:42"), df.parse(df.format(new Date()))));
 		System.out.println(getWeekMondayWithDate(new Date()));
 		System.out.println(getNextWeekMonday(new Date()));
 		System.out.println(getNextWeekSunday(new Date()));
-        System.out.println(dayEnd(new Date()));
+		System.out.println(dayEnd(new Date()));
 	}
 }

+ 19 - 11
mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

@@ -1,23 +1,31 @@
 package com.ym.mec.web.controller;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.entity.Employee;
-import com.ym.mec.biz.dal.entity.StudentAttendance;
-import com.ym.mec.biz.dal.entity.StudentRegistration;
-import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.biz.dal.page.MusicGroupStudentQueryInfo;
+import com.ym.mec.biz.dal.page.StudentManageAttendanceQueryInfo;
+import com.ym.mec.biz.dal.page.StudentManageCourseQueryInfo;
+import com.ym.mec.biz.dal.page.StudentManageQueryInfo;
+import com.ym.mec.biz.dal.page.StudentSignQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherPaymentRecordInfo;
 import com.ym.mec.biz.service.StudentManageService;
 import com.ym.mec.biz.service.StudentRegistrationService;
 import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.page.QueryInfo;
-import io.swagger.annotations.*;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
 
 @Api(tags = "学生管理")
 @RequestMapping("studentManage")