瀏覽代碼

Merge remote-tracking branch 'origin/master'

周箭河 5 年之前
父節點
當前提交
25920b3cee

+ 5 - 26
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/GroupDao.java

@@ -1,6 +1,6 @@
 package com.ym.mec.biz.dal.dao;
 
-import com.ym.mec.biz.dal.dto.BaseMapDto;
+import com.ym.mec.biz.dal.dto.GroupBaseCourseInfoDto;
 import com.ym.mec.biz.dal.entity.Group;
 import com.ym.mec.biz.dal.enums.GroupType;
 import org.apache.ibatis.annotations.Param;
@@ -44,8 +44,8 @@ public interface GroupDao {
      * @param groupType:
      * @return java.util.List<com.ym.mec.biz.dal.dto.BaseMapDto>
      */
-    List<BaseMapDto<String, Long>> countGroupStudentNum(@Param("groupIds") List<String> groupIds,
-                                          @Param("groupType") GroupType groupType);
+    List<GroupBaseCourseInfoDto> countGroupStudentNum(@Param("groupIds") List<String> groupIds,
+                                                      @Param("groupType") GroupType groupType);
 
     /**
      * @describe 统计团体的总课次
@@ -55,7 +55,7 @@ public interface GroupDao {
      * @param groupType:
      * @return java.util.List<com.ym.mec.biz.dal.dto.BaseMapDto>
      */
-    List<BaseMapDto<String, Long>> countGroupTotalClassesTimes(@Param("groupIds") List<String> groupIds,
+    List<GroupBaseCourseInfoDto> countGroupTotalClassesTimes(@Param("groupIds") List<String> groupIds,
                                                  @Param("groupType") GroupType groupType);
 
     /**
@@ -66,29 +66,8 @@ public interface GroupDao {
      * @param groupType:
      * @return java.util.List<com.ym.mec.biz.dal.dto.BaseMapDto>
      */
-    List<BaseMapDto<String, Long>> countGroupFinishedClassesTimes(@Param("groupIds") List<String> groupIds,
+    List<GroupBaseCourseInfoDto> countGroupFinishedClassesTimes(@Param("groupIds") List<String> groupIds,
                                                   @Param("groupType") GroupType groupType);
 
-    /**
-     * @describe 获取团体第一节课的时间
-     * @author Joburgess
-     * @date 2020/4/6
-     * @param groupIds:
-     * @param groupType:
-     * @return java.util.List<com.ym.mec.biz.dal.dto.BaseMapDto>
-     */
-    List<BaseMapDto<String, String>> findGroupsFirstClassesTime(@Param("groupIds") List<String> groupIds,
-                                                              @Param("groupType") GroupType groupType);
-
-    /**
-     * @describe 获取团体最后一节课的时间
-     * @author Joburgess
-     * @date 2020/4/6
-     * @param groupIds:
-     * @param groupType:
-     * @return java.util.List<com.ym.mec.biz.dal.dto.BaseMapDto>
-     */
-    List<BaseMapDto<String, String>> findGroupsLastClassesTime(@Param("groupIds") List<String> groupIds,
-                                                @Param("groupType") GroupType groupType);
 
 }

+ 62 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/GroupBaseCourseInfoDto.java

@@ -0,0 +1,62 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.Group;
+
+import java.util.Date;
+
+/**
+ * @Author Joburgess
+ * @Date 2020/4/6
+ */
+public class GroupBaseCourseInfoDto extends Group {
+
+    private Integer studentNum;
+
+    private Integer totalClassTimes;
+
+    private Integer currentClassTimes;
+
+    private Date firstClassesStartTime;
+
+    private Date lastClassesEndTime;
+
+    public Integer getStudentNum() {
+        return studentNum;
+    }
+
+    public void setStudentNum(Integer studentNum) {
+        this.studentNum = studentNum;
+    }
+
+    public Integer getTotalClassTimes() {
+        return totalClassTimes;
+    }
+
+    public void setTotalClassTimes(Integer totalClassTimes) {
+        this.totalClassTimes = totalClassTimes;
+    }
+
+    public Integer getCurrentClassTimes() {
+        return currentClassTimes;
+    }
+
+    public void setCurrentClassTimes(Integer currentClassTimes) {
+        this.currentClassTimes = currentClassTimes;
+    }
+
+    public Date getFirstClassesStartTime() {
+        return firstClassesStartTime;
+    }
+
+    public void setFirstClassesStartTime(Date firstClassesStartTime) {
+        this.firstClassesStartTime = firstClassesStartTime;
+    }
+
+    public Date getLastClassesEndTime() {
+        return lastClassesEndTime;
+    }
+
+    public void setLastClassesEndTime(Date lastClassesEndTime) {
+        this.lastClassesEndTime = lastClassesEndTime;
+    }
+}

+ 14 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentManageCourseListDto.java

@@ -1,12 +1,12 @@
 package com.ym.mec.biz.dal.dto;
 
-import io.swagger.annotations.ApiModelProperty;
-
-import java.util.Date;
-
+import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.enums.CourseStatusEnum;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
 
 /**
  * @Author Joburgess
@@ -23,6 +23,8 @@ public class StudentManageCourseListDto {
     @ApiModelProperty(value = "班级类型(普通班级、合奏班级、提高课班级、VIP班级)",required = true)
     private ClassGroupTypeEnum classGroupType;
 
+    private CourseSchedule.CourseScheduleType courseScheduleType;
+
     @ApiModelProperty(value = "上课日期",required = false)
     private Date courseDate;
 
@@ -41,6 +43,14 @@ public class StudentManageCourseListDto {
     @ApiModelProperty(value = "总课时",required = false)
     private Integer totalClassTimes;
 
+    public CourseSchedule.CourseScheduleType getCourseScheduleType() {
+        return courseScheduleType;
+    }
+
+    public void setCourseScheduleType(CourseSchedule.CourseScheduleType courseScheduleType) {
+        this.courseScheduleType = courseScheduleType;
+    }
+
     public Integer getTotalClassTimes() {
         return totalClassTimes;
     }

+ 12 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysSuggestion.java

@@ -29,10 +29,21 @@ public class SysSuggestion {
 	
 	@ApiModelProperty(value = "客户端类型",required = false)
 	private String clientType;
+
+	@ApiModelProperty(value = "用户名",required = false)
+	private String username;
 	
 	/** 提交时间 */
 	private java.util.Date createTime;
-	
+
+	public String getUsername() {
+		return username;
+	}
+
+	public void setUsername(String username) {
+		this.username = username;
+	}
+
 	public void setId(Long id){
 		this.id = id;
 	}

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentManageAttendanceQueryInfo.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.page;
 
+import com.ym.mec.biz.dal.entity.CourseSchedule;
 import io.swagger.annotations.ApiModelProperty;
 
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
@@ -18,6 +19,8 @@ public class StudentManageAttendanceQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "班级类型(普通班级、合奏班级、提高课班级、VIP班级)",required = true)
     private ClassGroupTypeEnum classGroupType;
 
+    private CourseSchedule.CourseScheduleType courseScheduleType;
+
     @ApiModelProperty(value = "班级名称",required = false)
     private String classGroupName;
 
@@ -38,6 +41,14 @@ public class StudentManageAttendanceQueryInfo extends QueryInfo {
         this.courseStatus = courseStatus;
     }
 
+    public CourseSchedule.CourseScheduleType getCourseScheduleType() {
+        return courseScheduleType;
+    }
+
+    public void setCourseScheduleType(CourseSchedule.CourseScheduleType courseScheduleType) {
+        this.courseScheduleType = courseScheduleType;
+    }
+
     public Integer getStudentId() {
         return studentId;
     }

+ 27 - 36
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CoursesGroupServiceImpl.java

@@ -330,32 +330,28 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
             params.put("offset", pageInfo.getOffset());
             teacherCourseGroups = coursesGroupDao.findTeacherCourseGroupsWithWeb(params);
             List<String> groupIds = teacherCourseGroups.stream().map(e -> String.valueOf(e.getId())).collect(Collectors.toList());
-            List<BaseMapDto<String, Long>> groupStudentNums = groupDao.countGroupStudentNum(groupIds, GroupType.COMM);
-            Map<String, Long> groupStudentNumMap = groupStudentNums.stream().collect(Collectors.toMap(BaseMapDto::getKey, BaseMapDto::getValue));
-            List<BaseMapDto<String, Long>> groupTotalClassesTimes = groupDao.countGroupTotalClassesTimes(groupIds, GroupType.COMM);
-            Map<String, Long> groupTotalClassesTimesMap = groupTotalClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, e->e.getValue()));
-            List<BaseMapDto<String, Long>> groupFinishedClassesTimes = groupDao.countGroupFinishedClassesTimes(groupIds, GroupType.COMM);
-            Map<String, Long> groupFinishedClassesTimesMap = groupFinishedClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, e->e.getValue()));
-            List<BaseMapDto<String, String>> groupsFirstClassesTimes = groupDao.findGroupsFirstClassesTime(groupIds, GroupType.COMM);
-            Map<String, String> groupsFirstClassesTimeMap = groupsFirstClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, BaseMapDto::getValue));
-            List<BaseMapDto<String, String>> groupsLastClassesTimes = groupDao.findGroupsLastClassesTime(groupIds, GroupType.COMM);
-            Map<String, String> groupsLastClassesTimeMap = groupsLastClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, BaseMapDto::getValue));
+            List<GroupBaseCourseInfoDto> groupStudentNums = groupDao.countGroupStudentNum(groupIds, GroupType.COMM);
+            Map<String, Integer> groupStudentNumMap = groupStudentNums.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, GroupBaseCourseInfoDto::getStudentNum));
+
+            List<GroupBaseCourseInfoDto> groupTotalClassesTimes = groupDao.countGroupTotalClassesTimes(groupIds, GroupType.COMM);
+            Map<String, GroupBaseCourseInfoDto> groupBaseCourseInfoMap = groupTotalClassesTimes.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, e->e));
+
+            List<GroupBaseCourseInfoDto> groupFinishedClassesTimes = groupDao.countGroupFinishedClassesTimes(groupIds, GroupType.COMM);
+            Map<String, Integer> groupFinishedClassesTimesMap = groupFinishedClassesTimes.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, e->e.getCurrentClassTimes()));
+
             for (CourseGroupExtendDto teacherCourseGroup : teacherCourseGroups) {
                 if(Objects.nonNull(groupStudentNumMap.get(teacherCourseGroup.getId().toString()))) {
                     teacherCourseGroup.setStudentNum(groupStudentNumMap.get(teacherCourseGroup.getId().toString()).intValue());
                 }
-                if(Objects.nonNull(groupTotalClassesTimesMap.get(teacherCourseGroup.getId().toString()))) {
-                    teacherCourseGroup.setTotalClassTimes(groupTotalClassesTimesMap.get(teacherCourseGroup.getId().toString()).intValue());
+                GroupBaseCourseInfoDto groupBaseCourseInfo = groupBaseCourseInfoMap.get(teacherCourseGroup.getId().toString());
+                if(Objects.nonNull(groupBaseCourseInfo)){
+                    teacherCourseGroup.setTotalClassTimes(groupBaseCourseInfo.getTotalClassTimes());
+                    teacherCourseGroup.setFirstClassesStartTime(groupBaseCourseInfo.getFirstClassesStartTime());
+                    teacherCourseGroup.setLastClassesEndTime(groupBaseCourseInfo.getLastClassesEndTime());
                 }
                 if(Objects.nonNull(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()))) {
                     teacherCourseGroup.setCurrentClassTimes(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()).intValue());
                 }
-                if(Objects.nonNull(groupsFirstClassesTimeMap.get(teacherCourseGroup.getId().toString()))){
-                    teacherCourseGroup.setFirstClassesStartTime(DateUtil.stringToDate(groupsFirstClassesTimeMap.get(teacherCourseGroup.getId().toString()), "yyyy-MM-dd HH:mm:ss"));
-                }
-                if(Objects.nonNull(groupsLastClassesTimeMap.get(teacherCourseGroup.getId().toString()))){
-                    teacherCourseGroup.setLastClassesEndTime(DateUtil.stringToDate(groupsLastClassesTimeMap.get(teacherCourseGroup.getId().toString()), "yyyy-MM-dd HH:mm:ss"));
-                }
                 if(Objects.nonNull(teacherCourseGroup.getTotalClassTimes())){
                     teacherCourseGroup.setGroupClassesTotalDuration(teacherCourseGroup.getSingleClassMinutes()*teacherCourseGroup.getTotalClassTimes());
                 }
@@ -382,16 +378,14 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
             teacherCourseGroups = coursesGroupDao.findStudentCourseGroupsWithWeb(params);
             List<Integer> teacherIds = teacherCourseGroups.stream().map(CourseGroupExtendDto::getTeacherId).collect(Collectors.toList());
             List<String> groupIds = teacherCourseGroups.stream().map(e -> String.valueOf(e.getId())).collect(Collectors.toList());
-            List<BaseMapDto<String, Long>> groupStudentNums = groupDao.countGroupStudentNum(groupIds, GroupType.COMM);
-            Map<String, Long> groupStudentNumMap = groupStudentNums.stream().collect(Collectors.toMap(BaseMapDto::getKey, BaseMapDto::getValue));
-            List<BaseMapDto<String, Long>> groupTotalClassesTimes = groupDao.countGroupTotalClassesTimes(groupIds, GroupType.COMM);
-            Map<String, Long> groupTotalClassesTimesMap = groupTotalClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, e->e.getValue()));
-            List<BaseMapDto<String, Long>> groupFinishedClassesTimes = groupDao.countGroupFinishedClassesTimes(groupIds, GroupType.COMM);
-            Map<String, Long> groupFinishedClassesTimesMap = groupFinishedClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, e->e.getValue()));
-            List<BaseMapDto<String, String>> groupsFirstClassesTimes = groupDao.findGroupsFirstClassesTime(groupIds, GroupType.COMM);
-            Map<String, String> groupsFirstClassesTimeMap = groupsFirstClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, BaseMapDto::getValue));
-            List<BaseMapDto<String, String>> groupsLastClassesTimes = groupDao.findGroupsLastClassesTime(groupIds, GroupType.COMM);
-            Map<String, String> groupsLastClassesTimeMap = groupsLastClassesTimes.stream().collect(Collectors.toMap(BaseMapDto::getKey, BaseMapDto::getValue));
+            List<GroupBaseCourseInfoDto> groupStudentNums = groupDao.countGroupStudentNum(groupIds, GroupType.COMM);
+            Map<String, Integer> groupStudentNumMap = groupStudentNums.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, GroupBaseCourseInfoDto::getStudentNum));
+
+            List<GroupBaseCourseInfoDto> groupTotalClassesTimes = groupDao.countGroupTotalClassesTimes(groupIds, GroupType.COMM);
+            Map<String, GroupBaseCourseInfoDto> groupBaseCourseInfoMap = groupTotalClassesTimes.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, e->e));
+
+            List<GroupBaseCourseInfoDto> groupFinishedClassesTimes = groupDao.countGroupFinishedClassesTimes(groupIds, GroupType.COMM);
+            Map<String, Integer> groupFinishedClassesTimesMap = groupFinishedClassesTimes.stream().collect(Collectors.toMap(GroupBaseCourseInfoDto::getId, e->e.getCurrentClassTimes()));
 
             List<SimpleUserDto> teachers = teacherDao.findSimpleTeachers(teacherIds);
             Map<Integer, String> idNameMap = teachers.stream().collect(Collectors.toMap(SimpleUserDto::getUserId, SimpleUserDto::getUserName));
@@ -400,18 +394,15 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
                 if(Objects.nonNull(groupStudentNumMap.get(teacherCourseGroup.getId().toString()))) {
                     teacherCourseGroup.setStudentNum(groupStudentNumMap.get(teacherCourseGroup.getId().toString()).intValue());
                 }
-                if(Objects.nonNull(groupTotalClassesTimesMap.get(teacherCourseGroup.getId().toString()))) {
-                    teacherCourseGroup.setTotalClassTimes(groupTotalClassesTimesMap.get(teacherCourseGroup.getId().toString()).intValue());
+                GroupBaseCourseInfoDto groupBaseCourseInfo = groupBaseCourseInfoMap.get(teacherCourseGroup.getId().toString());
+                if(Objects.nonNull(groupBaseCourseInfo)){
+                    teacherCourseGroup.setTotalClassTimes(groupBaseCourseInfo.getTotalClassTimes());
+                    teacherCourseGroup.setFirstClassesStartTime(groupBaseCourseInfo.getFirstClassesStartTime());
+                    teacherCourseGroup.setLastClassesEndTime(groupBaseCourseInfo.getLastClassesEndTime());
                 }
                 if(Objects.nonNull(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()))) {
                     teacherCourseGroup.setCurrentClassTimes(groupFinishedClassesTimesMap.get(teacherCourseGroup.getId().toString()).intValue());
                 }
-                if(Objects.nonNull(groupsFirstClassesTimeMap.get(teacherCourseGroup.getId().toString()))){
-                    teacherCourseGroup.setFirstClassesStartTime(DateUtil.stringToDate(groupsFirstClassesTimeMap.get(teacherCourseGroup.getId().toString()), "yyyy-MM-dd HH:mm:ss"));
-                }
-                if(Objects.nonNull(groupsLastClassesTimeMap.get(teacherCourseGroup.getId().toString()))){
-                    teacherCourseGroup.setLastClassesEndTime(DateUtil.stringToDate(groupsLastClassesTimeMap.get(teacherCourseGroup.getId().toString()), "yyyy-MM-dd HH:mm:ss"));
-                }
                 if(Objects.nonNull(teacherCourseGroup.getTotalClassTimes())){
                     teacherCourseGroup.setGroupClassesTotalDuration(teacherCourseGroup.getSingleClassMinutes()*teacherCourseGroup.getTotalClassTimes());
                 }

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

@@ -248,22 +248,23 @@
 		SELECT csg.* FROM class_group_student_mapper cgsm LEFT JOIN courses_group csg ON csg.id_=cgsm.music_group_id_
 		WHERE cgsm.user_id_=#{studentId} AND cgsm.group_type_='COMM'
 		<if test="search!=null">
-			AND (name_ LIKE CONCAT('%', #{search}, '%') OR id_ LIKE CONCAT('%', #{search}, '%'))
+			AND (csg.name_ LIKE CONCAT('%', #{search}, '%') OR csg.id_ LIKE CONCAT('%', #{search}, '%'))
 		</if>
 		<if test="groupStatus!=null">
-			AND status_ = #{groupStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+			AND csg.status_ = #{groupStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 		</if>
 		ORDER BY id_ DESC
 		<include refid="global.limit"/>
 	</select>
 	<select id="countStudentGroupsWithWeb" resultType="int">
 		SELECT COUNT(csg.id_) FROM class_group_student_mapper cgsm LEFT JOIN courses_group csg ON csg.id_=cgsm.music_group_id_
-		WHERE cgsm.user_id_=#{studentId} AND cgsm.group_type_='COMM'
+		WHERE
+		cgsm.user_id_=#{studentId} AND cgsm.group_type_='COMM'
 		<if test="search!=null">
-			AND (name_ LIKE CONCAT('%', #{search}, '%') OR id_ LIKE CONCAT('%', #{search}, '%'))
+			AND (csg.name_ LIKE CONCAT('%', #{search}, '%') OR csg.id_ LIKE CONCAT('%', #{search}, '%'))
 		</if>
 		<if test="groupStatus!=null">
-			AND status_ = #{groupStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+			AND csg.status_ = #{groupStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 		</if>
 	</select>
 </mapper>

+ 19 - 26
mec-biz/src/main/resources/config/mybatis/GroupMapper.xml

@@ -16,6 +16,14 @@
         <result column="class_group_name_" property="classGroupName"/>
     </resultMap>
 
+    <resultMap id="GroupBaseCourseInfoDto" type="com.ym.mec.biz.dal.dto.GroupBaseCourseInfoDto" extends="Group">
+        <result column="student_num_" property="studentNum" javaType="java.lang.Integer"/>
+        <result column="total_class_times_" property="totalClassTimes" javaType="java.lang.Integer"/>
+        <result column="current_class_times_" property="currentClassTimes" javaType="java.lang.Integer"/>
+        <result column="first_classes_start_time_" property="firstClassesStartTime"/>
+        <result column="last_classes_end_time_" property="lastClassesEndTime"/>
+    </resultMap>
+
     <sql id="searchMusicGroupsCondition">
         <where>
             <if test="search!=null">
@@ -160,8 +168,13 @@
         </foreach>
     </select>
 
-    <select id="countGroupTotalClassesTimes" resultType="com.ym.mec.biz.dal.dto.BaseMapDto">
-        SELECT music_group_id_ 'key',COUNT(id_) 'value' FROM course_schedule
+    <select id="countGroupTotalClassesTimes" resultMap="GroupBaseCourseInfoDto">
+        SELECT
+            music_group_id_ group_id_,
+            COUNT(id_) total_class_times_,
+            MIN( CONCAT( class_date_, ' ', start_class_time_ ) ) first_classes_start_time_,
+            MAX(CONCAT(class_date_, ' ', end_class_time_)) last_classes_end_time_
+        FROM course_schedule
         WHERE group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         AND music_group_id_ IN
         <foreach collection="groupIds" item="groupId" open="(" close=")" separator=",">
@@ -170,8 +183,8 @@
         GROUP BY music_group_id_;
     </select>
 
-    <select id="countGroupFinishedClassesTimes" resultType="com.ym.mec.biz.dal.dto.BaseMapDto">
-        SELECT music_group_id_ 'key',COUNT(id_) 'value' FROM course_schedule
+    <select id="countGroupFinishedClassesTimes" resultMap="GroupBaseCourseInfoDto">
+        SELECT music_group_id_ group_id_,COUNT(id_) current_class_times_ FROM course_schedule
         WHERE group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         AND music_group_id_ IN
         <foreach collection="groupIds" item="groupId" open="(" close=")" separator=",">
@@ -181,28 +194,8 @@
         GROUP BY music_group_id_;
     </select>
 
-    <select id="findGroupsFirstClassesTime" resultType="com.ym.mec.biz.dal.dto.BaseMapDto">
-        SELECT music_group_id_ 'key',MIN(CONCAT(class_date_, ' ', start_class_time_)) 'value' FROM course_schedule
-        WHERE group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
-        AND music_group_id_ IN
-        <foreach collection="groupIds" item="groupId" open="(" close=")" separator=",">
-            #{groupId}
-        </foreach>
-        GROUP BY music_group_id_;
-    </select>
-
-    <select id="findGroupsLastClassesTime" resultType="com.ym.mec.biz.dal.dto.BaseMapDto">
-        SELECT music_group_id_ 'key',MAX(CONCAT(class_date_, ' ', end_class_time_)) 'value' FROM course_schedule
-        WHERE group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
-        AND music_group_id_ IN
-        <foreach collection="groupIds" item="groupId" open="(" close=")" separator=",">
-            #{groupId}
-        </foreach>
-        GROUP BY music_group_id_;
-    </select>
-
-    <select id="countGroupStudentNum" resultType="com.ym.mec.biz.dal.dto.BaseMapDto">
-        SELECT  music_group_id_ 'key',COUNT(id_) 'value'
+    <select id="countGroupStudentNum" resultMap="GroupBaseCourseInfoDto">
+        SELECT  music_group_id_ group_id_,COUNT(id_) student_num_
         FROM class_group_student_mapper
         WHERE group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         AND status_='NORMAL'

+ 7 - 5
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -7,6 +7,7 @@
         <result property="classGroupId" column="class_group_id_" />
         <result property="classGroupName" column="class_group_name_" />
         <result property="classGroupType" column="class_group_type_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result property="courseScheduleType" column="course_schedule_type_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result property="courseDate" column="course_date_" />
         <result property="courseStatus" column="course_status_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result property="teacherName" column="teacher_name_" />
@@ -256,13 +257,13 @@
             <if test="courseStatus != null and courseStatus != ''">
                 AND cs.status_ = #{courseStatus}
             </if>
-            <if test="classGroupType!=null">
-                AND cg.type_ = #{classGroupType}
+            <if test="courseScheduleType!=null">
+                AND cs.type_ = #{courseScheduleType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
             </if>
-            <if test="attendanceStatus != null and attendanceStatus != 'TRUANT'">
+            <if test="attendanceStatus != null and attendanceStatus != @com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum@TRUANT">
                 AND sa.status_ = #{attendanceStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
             </if>
-            <if test="attendanceStatus != null and attendanceStatus == 'TRUANT'">
+            <if test="attendanceStatus != null and attendanceStatus == @com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum@TRUANT">
                 AND (sa.status_ = #{attendanceStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} OR sa.status_ IS NULL)
             </if>
             <if test="classGroupName!=null">
@@ -279,6 +280,7 @@
             cg.id_ class_group_id_,
             cg.name_ class_group_name_,
             cg.type_ class_group_type_,
+            cs.type_ course_schedule_type_,
             CONCAT(cs.class_date_," ",cs.start_class_time_) course_date_,
             su.real_name_ teacher_name_,
             IF(sa.status_ IS NULL,'TRUANT',sa.status_) status_,
@@ -302,7 +304,7 @@
         LEFT JOIN student_attendance sa ON cssp.course_schedule_id_ = sa.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
         LEFT JOIN class_group cg ON cssp.class_group_id_ = cg.id_
         LEFT JOIN course_schedule cs ON cssp.course_schedule_id_ = cs.id_
-        LEFT JOIN sys_user su ON sa.teacher_id_ = su.id_
+        LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
         <include refid="studentManageAttendanceQueryCondition"/>
     </select>
 

+ 10 - 8
mec-biz/src/main/resources/config/mybatis/SysSuggestionMapper.xml

@@ -12,7 +12,9 @@
         <result column="title_" property="title"/>
         <result column="content_" property="content"/>
         <result column="user_id_" property="userId"/>
+        <result column="username_" property="username"/>
         <result column="create_time_" property="createTime"/>
+        <result column="client_type_" property="clientType"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -28,19 +30,17 @@
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.SysSuggestion" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
-        <!--
-        <selectKey resultClass="int" keyProperty="id" >
-        SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
-        </selectKey>
-        -->
-        INSERT INTO sys_suggestion (id_,mobile_no_,title_,content_,user_id_,create_time_)
-        VALUES(#{id},#{mobileNo},#{title},#{content},#{userId},now())
+        INSERT INTO sys_suggestion (id_,mobile_no_,title_,content_,user_id_,create_time_,client_type_)
+        VALUES(#{id},#{mobileNo},#{title},#{content},#{userId},now(),#{clientType})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.SysSuggestion">
         UPDATE sys_suggestion
         <set>
+            <if test="clientType != null">
+                client_type_ = #{clientType},
+            </if>
             <if test="userId != null">
                 user_id_ = #{userId},
             </if>
@@ -64,7 +64,9 @@
 
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="SysSuggestion" parameterType="map">
-        SELECT * FROM sys_suggestion ORDER BY id_
+        SELECT ss.*,CASE WHEN su.real_name_ IS NULL THEN su.username_ ELSE su.real_name_ END username_ FROM sys_suggestion ss
+        LEFT JOIN sys_user su ON su.id_ = ss.user_id_
+        ORDER BY ss.id_
         <include refid="global.limit"/>
     </select>
 

+ 5 - 0
mec-student/src/main/java/com/ym/mec/student/controller/StudentManageController.java

@@ -71,7 +71,12 @@ public class StudentManageController extends BaseController {
     @ApiOperation(value = "新增建议")
     @PostMapping("suggestion/add")
     public Object add(SysSuggestion sysSuggestion) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            return failed("请重新登录");
+        }
     	sysSuggestion.setClientType("STUDENT");
+        sysSuggestion.setUserId(sysUser.getId().longValue());
         suggestionService.insert(sysSuggestion);
         return succeed();
     }

+ 5 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherManageController.java

@@ -73,6 +73,11 @@ public class TeacherManageController extends BaseController {
     @ApiOperation(value = "新增建议")
     @PostMapping("suggestion/add")
     public Object add(SysSuggestion sysSuggestion) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            return failed("请重新登录");
+        }
+        sysSuggestion.setUserId(sysUser.getId().longValue());
     	sysSuggestion.setClientType("TEACHER");
         suggestionService.insert(sysSuggestion);
         return succeed();