浏览代码

Merge branch 'feature/0427-school' of http://git.dayaedu.com/yonge/mec into feature/0427-school

liujc 2 年之前
父节点
当前提交
73a16c5934

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/school/page/TeacherAttendanceQueryInfo.java

@@ -36,6 +36,9 @@ public class TeacherAttendanceQueryInfo{
         }
     }
 
+    @ApiModelProperty(value = "班级类型",required = false)
+    private String classType;
+
     @ApiModelProperty(value = "模糊查询",required = false)
     private String search;
 

+ 4 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/TeacherAttendanceWrapper.java

@@ -12,13 +12,13 @@ public class TeacherAttendanceWrapper {
     public static class CourseTeacherAttendance{
         private Long courseScheduleId;
 
-        private Long actualTeacherId;
+        private Integer actualTeacherId;
 
         private CourseStatusEnum courseStatus;
 
-        private Integer signInStatus;
+        private Integer signInStatus = 0;
 
-        private Integer signOutStatus;
+        private Integer signOutStatus = 0;
 
         private String signInLongitudeLatitude;
 
@@ -31,6 +31,7 @@ public class TeacherAttendanceWrapper {
 
     @Data
     public static class ClassTeacherAttendanceQuery{
+        @ApiModelProperty("课程类型")
         private String courseType;
 
         @ApiModelProperty("班级编号")

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

@@ -74,7 +74,7 @@ public class CourseScheduleModifyLogServiceImpl extends BaseServiceImpl<Integer,
 				records.stream().forEach(o -> usersMap.put(o.getUserId().intValue(), o.getUserId().toString()));
 
 				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.JIGUANG_SCHOOL_COURSE_CHANGE,
-						usersMap, null, 0, null,
+						usersMap, null, 0, "{\"pageTag\":\"courseTable\",\"action\":\"app\",\"url\":\"\"}",
 						"SCHOOL",musicGroup.getName(),courseSchedule.getType().getMsg());
 			}
 		}
@@ -114,7 +114,7 @@ public class CourseScheduleModifyLogServiceImpl extends BaseServiceImpl<Integer,
 				records.stream().forEach(o -> usersMap.put(o.getUserId().intValue(), o.getUserId().toString()));
 
 				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.JIGUANG_SCHOOL_COURSE_CREATE,
-						usersMap, null, 0, null,
+						usersMap, null, 0, "{\"pageTag\":\"courseTable\",\"action\":\"app\",\"url\":\"\"}",
 						"SCHOOL",musicGroup.getName(),courseSchedule.getType().getMsg());
 			}
 		}

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

@@ -5448,7 +5448,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			vo.setWeek(sb.toString());
 			vo.setWeekTime(sb1.toString());
 			vo.setDailySummaryOfClassesForTheCurrentSemesterDtos(currentWeekDates);
-			result.add(vo);
+			if(CollectionUtils.isNotEmpty(currentWeekDates)){
+				result.add(vo);
+			}
 		}
 		return result;
 	}

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

@@ -2,24 +2,23 @@ package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.SimpleUserDto;
+import com.ym.mec.biz.dal.entity.MusicGroupQuit;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.enums.school.EQuitGroupAuditStatusEnum;
 import com.ym.mec.biz.dal.school.dto.MusicGroupQuitDetailDto;
 import com.ym.mec.biz.dal.school.dto.MusicGroupQuitPageDto;
 import com.ym.mec.biz.dal.school.page.MusicGroupQuitQueryInfo;
+import com.ym.mec.biz.service.MusicGroupQuitService;
 import com.ym.mec.biz.service.SysUserService;
+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.service.impl.BaseServiceImpl;
 import com.ym.mec.util.collection.MapUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-
-import com.ym.mec.biz.dal.entity.MusicGroupQuit;
-import com.ym.mec.biz.service.MusicGroupQuitService;
-import com.ym.mec.common.dal.BaseDAO;
-import com.ym.mec.common.service.impl.BaseServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
@@ -65,18 +64,10 @@ public class MusicGroupQuitServiceImpl extends BaseServiceImpl<Long, MusicGroupQ
 			params.put("offset", pageInfo.getOffset());
 			dataList = musicGroupQuitDao.queryPageBySchool(params);
 			if(CollectionUtils.isNotEmpty(dataList)){
-				List<Integer> studentIds = dataList.stream().map(e -> e.getStudentId()).collect(Collectors.toList());
-				List<SimpleUserDto> usersSimpleInfo = teacherDao.getUsersSimpleInfo(studentIds);
-				Map<Integer, SimpleUserDto> simpleUserDtoMap = usersSimpleInfo.stream().collect(Collectors.groupingBy(e -> e.getUserId(), Collectors.collectingAndThen(Collectors.toList(), v -> v.get(0))));
 				List<Integer> subjectIds = dataList.stream().map(e -> e.getSubjectId()).distinct().collect(Collectors.toList());
 				Map<Integer, String> subjectNameMap = subjectDao.findBySubjectIds(subjectIds).stream().collect(Collectors.groupingBy(e -> e.getId(), Collectors.collectingAndThen(Collectors.toList(), v -> v.get(0).getName())));
 				for (MusicGroupQuitPageDto dto : dataList) {
 					dto.setSubjectName(subjectNameMap.get(dto.getSubjectId()));
-					SimpleUserDto userDto = simpleUserDtoMap.get(dto.getStudentId());
-					if(Objects.nonNull(userDto)){
-						dto.setStudentAvatar(userDto.getAvatar());
-						dto.setStudentName(userDto.getNickName());
-					}
 				}
 			}
 		}

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

@@ -1188,9 +1188,6 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		queryInfo.setClassGroupId(queryInfo.getClassGroupId());
 		List<TeacherAttendanceSumDto> dtoList = teacherAttendanceDao.queryTeacherAttendance(queryInfo);
 		if(CollectionUtils.isNotEmpty(dtoList)){
-			List<Integer> teacherIds = dtoList.stream().map(e -> e.getTeacherId()).collect(Collectors.toList());
-			List<SimpleUserDto> usersSimpleInfo = teacherDao.getUsersSimpleInfo(teacherIds);
-			Map<Integer, SimpleUserDto> simpleUserDtoMap = usersSimpleInfo.stream().collect(Collectors.groupingBy(e -> e.getUserId(), Collectors.collectingAndThen(Collectors.toList(), v -> v.get(0))));
 			//获取本周老师考勤状态
 			Date now = new Date();
 			String monday = DateUtil.dateToString(DateUtil.getWeekDayWithDate(now, Calendar.MONDAY), DateUtil.ISO_EXPANDED_DATE_FORMAT);
@@ -1200,7 +1197,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			info.setEndTerm(sunday);
 			info.setMusicGroupIds(queryInfo.getMusicGroupIds());
 			List<TeacherAttendanceWrapper.CourseTeacherAttendance> courseTeacherAttendances = teacherAttendanceDao.queryTeacherAttendanceForWeek(info);
-			Map<Long, List<TeacherAttendanceWrapper.CourseTeacherAttendance>> attendanceMap = new HashMap<>(dtoList.size());
+			Map<Integer, List<TeacherAttendanceWrapper.CourseTeacherAttendance>> attendanceMap = new HashMap<>(dtoList.size());
 			Map<Integer, School> idSchoolMap = new HashMap<>();
 			if(CollectionUtils.isNotEmpty(courseTeacherAttendances)){
 				attendanceMap = courseTeacherAttendances.stream().collect(Collectors.groupingBy(e -> e.getActualTeacherId()));
@@ -1216,11 +1213,6 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			String attendanceRange = sysTenantConfigService.getTenantConfigValue(SysConfigService.ATTENDANCE_RANGE,queryInfo.getTenantId());
 
 			for (TeacherAttendanceSumDto dto : dtoList) {
-				SimpleUserDto userDto = simpleUserDtoMap.get(dto.getTeacherId());
-				if(Objects.nonNull(userDto)){
-					dto.setTeacherName(userDto.getUserName());
-					dto.setTeacherAvatar(userDto.getAvatar());
-				}
 				List<TeacherAttendanceWrapper.CourseTeacherAttendance> attendances = attendanceMap.get(dto.getTeacherId());
 				if(CollectionUtils.isNotEmpty(attendances)){
 					dto.setTeacherAttendanceStatus(TeacherAttendanceQueryInfo.TeacherAttendanceEnum.NORMAL);

+ 14 - 19
mec-biz/src/main/resources/config/mybatis/MusicGroupQuitMapper.xml

@@ -211,11 +211,7 @@
         AND music_group_id_ = #{musicGroupId} AND status_ = 'PROCESSING'
         GROUP BY user_id_
     </select>
-    <select id="queryPageBySchool" resultType="com.ym.mec.biz.dal.school.dto.MusicGroupQuitPageDto">
-        select mgq.user_id_ studentId,mgq.create_time_ createTime,mgq.school_staff_audit_status_ status,
-               sr.actual_subject_id_ subjectId,mgq.id_ musicGroupQuitId
-        from music_group_quit mgq
-        left join student_registration sr ON sr.music_group_id_ = mgq.music_group_id_ AND sr.user_id_ = mgq.user_id_
+    <sql id="queryPageBySchoolSql">
         <where>
             <if test="musicGroupIds != null">
                 AND mgq.music_group_id_ IN
@@ -229,27 +225,26 @@
             <if test="status == null">
                 AND mgq.school_staff_audit_status_ IN ('PASS','REJECT')
             </if>
+            <if test="search != null and search != ''">
+                AND (su.username_ LIKE CONCAT('%',#{search},'%') OR su.id_ = #{search})
+            </if>
         </where>
+    </sql>
+    <select id="queryPageBySchool" resultType="com.ym.mec.biz.dal.school.dto.MusicGroupQuitPageDto">
+        select mgq.user_id_ studentId,mgq.create_time_ createTime,mgq.school_staff_audit_status_ status,
+               sr.actual_subject_id_ subjectId,mgq.id_ musicGroupQuitId,su.username_ studentName,su.avatar_ studentAvatar
+        from music_group_quit mgq
+        left join student_registration sr ON sr.music_group_id_ = mgq.music_group_id_ AND sr.user_id_ = mgq.user_id_
+        left join sys_user su ON su.id_ = mgq.user_id_
+        <include refid="queryPageBySchoolSql"/>
         ORDER BY mgq.id_ DESC
         <include refid="global.limit"/>
     </select>
     <select id="countBySchool" resultType="java.lang.Integer">
         select COUNT(mgq.id_)
         from music_group_quit mgq
-        <where>
-            <if test="musicGroupIds != null">
-                AND mgq.music_group_id_ IN
-                <foreach collection="musicGroupIds" item="groupId" open="(" close=")" separator=",">
-                    #{groupId}
-                </foreach>
-            </if>
-            <if test="status != null">
-                AND mgq.school_staff_audit_status_ = #{status}
-            </if>
-            <if test="status == null">
-                AND mgq.school_staff_audit_status_ IN ('PASS','REJECT')
-            </if>
-        </where>
+        left join sys_user su ON su.id_ = mgq.user_id_
+        <include refid="queryPageBySchoolSql"/>
     </select>
     <select id="countRedPointBySchool" resultType="java.lang.Boolean">
         select COUNT(0) from music_group_quit mgq WHERE mgq.school_staff_audit_status_ = 'ING'

+ 11 - 4
mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml

@@ -629,10 +629,11 @@
     <select id="queryTeacherAttendance" resultType="com.ym.mec.biz.dal.school.dto.TeacherAttendanceSumDto">
         select cg.type_ classGroupType,cs.actual_teacher_id_ teacherId,COUNT(distinct cs.id_) totalCourseNum,
                COUNT(CASE WHEN ta.sign_in_status_ = 1 and ta.sign_in_status_ = 1 THEN NULL ELSE 1 END) errCourseNum,
-               cs.class_group_id_ classGroupId
+               cs.class_group_id_ classGroupId,su.avatar_ teacherAvatar,su.real_name_ teacherName
         from course_schedule cs
         left join class_group cg ON cg.id_ = cs.class_group_id_
         left join teacher_attendance ta ON ta.course_schedule_id_ = cs.id_ AND ta.teacher_id_ = cs.actual_teacher_id_
+        left join sys_user su ON su.id_ = cs.actual_teacher_id_
         <include refid="queryTeacherAttendanceSql"/>
         group by cs.actual_teacher_id_
     </select>
@@ -649,6 +650,12 @@
             <if test="queryInfo.teacherId != null">
                 AND cs.actual_teacher_id_ = #{queryInfo.teacherId}
             </if>
+            <if test="queryInfo.classType != null and queryInfo.classType != ''">
+                AND cg.type_ = #{queryInfo.classType}
+            </if>
+            <if test="queryInfo.search != null and queryInfo.search != ''">
+                AND (su.real_name_ LIKE CONCAT('%',#{queryInfo.search},'%') OR cs.actual_teacher_id_ = #{queryInfo.search})
+            </if>
             <if test="queryInfo.musicGroupIds != null and queryInfo.musicGroupIds.size > 0">
                 AND cs.music_group_id_ IN
                 <foreach collection="queryInfo.musicGroupIds" item="musicGroupId" open="(" separator="," close=")">
@@ -658,7 +665,7 @@
         </where>
     </sql>
     <select id="queryTeacherAttendanceForWeek" resultType="com.ym.mec.biz.dal.wrapper.TeacherAttendanceWrapper$CourseTeacherAttendance">
-        select cs.actual_teacher_id_ actualTeacherId,cs.id_ course_schedule_id_ courseScheduleId,
+        select cs.actual_teacher_id_ actualTeacherId,cs.id_ courseScheduleId,
         cs.status_ courseStatus,ta.sign_in_status_ signInStatus,ta.sign_out_status_ signOutStatus,cs.teach_mode_ teachMode,
                ta.sign_in_longitude_latitude_ signInLongitudeLatitude,ta.sign_out_longitude_latitude_ signOutLongitudeLatitude,cs.schoole_id_ schoolId
         from course_schedule cs
@@ -683,7 +690,7 @@
         select cs.type_ courseScheduleType,CONCAT(cs.class_date_,' ',cs.start_class_time_,'~',cs.end_class_time_) classDate,
         ta.sign_in_time_ signInTime,ta.sign_in_status_ signInStatus,ta.sign_in_longitude_latitude_ signInLongitudeLatitude,
         ta.sign_out_time_ signOutTime,ta.sign_out_status_ signOutStatus,ta.sign_out_longitude_latitude_ signOutLongitudeLatitude,
-        s.longitude_latitude_ schoolLongitudeLatitude,cs.teach_mode_ teachMode
+        s.longitude_latitude_ schoolLongitudeLatitude,cs.teach_mode_ teachMode,cs.status_ courseStatus
         from course_schedule cs
         left join teacher_attendance ta ON cs.id_ = ta.course_schedule_id_ AND ta.teacher_id_ = cs.actual_teacher_id_
         left join school s ON s.id_ = cs.schoole_id_
@@ -692,7 +699,7 @@
         <if test="query.courseType != null and query.courseType != ''">
             AND cs.type_ = #{query.courseType}
         </if>
-        AND cs.is_lock_ = 0 AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.new_course_id_ IS NULL
+        AND cs.is_lock_ = 0 AND cs.del_flag_ = 0 AND cs.pre_course_flag_ = 0 AND cs.new_course_id_ IS NULL AND cs.status_ != 'NOT_START'
     </select>
     <update id="cleanCourseTeacherSignInfo">
         UPDATE teacher_attendance

+ 0 - 3
mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

@@ -501,9 +501,6 @@ public class StudentManageController extends BaseController {
             musicGroupQuit.setReasonEnum(reasonEnum);
             musicGroupQuit.setStatus(ApprovalStatus.PROCESSING);
             musicGroupQuit.setOperatorId(operatorId);
-            musicGroupQuit.setSchoolStaffAuditStatus(EQuitGroupAuditStatusEnum.PASS);
-            musicGroupQuit.setSchoolStaffAuditReason(reason);
-            musicGroupQuit.setAuditSchoolStaff(operatorId);
             musicGroupQuits.add(musicGroupQuit);
         }
         musicGroupService.batchQuitMusicGroup(musicGroupQuits);

+ 34 - 0
mec-web/src/main/java/com/ym/mec/web/controller/school/SchoolMusicGroupQuitController.java

@@ -1,19 +1,27 @@
 package com.ym.mec.web.controller.school;
 
+import com.ym.mec.biz.dal.entity.ApprovalStatus;
+import com.ym.mec.biz.dal.entity.MusicGroupQuit;
+import com.ym.mec.biz.dal.enums.school.EQuitGroupAuditStatusEnum;
 import com.ym.mec.biz.dal.school.dto.MusicGroupQuitDetailDto;
 import com.ym.mec.biz.dal.school.dto.MusicGroupQuitPageDto;
 import com.ym.mec.biz.dal.school.page.MusicGroupQuitQueryInfo;
 import com.ym.mec.biz.service.MusicGroupQuitService;
+import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.page.PageInfo;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.List;
 
 @Slf4j
@@ -25,6 +33,10 @@ public class SchoolMusicGroupQuitController extends BaseController {
 
     @Autowired
     private MusicGroupQuitService musicGroupQuitService;
+    @Autowired
+    private SysUserService sysUserService;
+    @Autowired
+    private MusicGroupService musicGroupService;
 
 	@ApiOperation(value = "分页查询")
     @PostMapping("/queryPage")
@@ -33,6 +45,28 @@ public class SchoolMusicGroupQuitController extends BaseController {
         return succeed(musicGroupQuitService.queryPageBySchool(queryInfo));
 	}
 
+    @ApiOperation(value = "申请退团")
+    @PostMapping("/quitMusicGroup")
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "reason", value = "原因", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "reasonEnum", value = "原因", required = true, dataType = "String")})
+    public HttpResponseResult quitMusicGroup(String musicGroupId,Integer userId, String reason, MusicGroupQuit.ReasonEnum reasonEnum) throws Exception {
+        Integer operatorId = sysUserService.getUserId();
+        List<MusicGroupQuit> musicGroupQuits = new ArrayList<>();
+        for (String groupId : musicGroupId.split(",")) {
+            MusicGroupQuit musicGroupQuit = new MusicGroupQuit();
+            musicGroupQuit.setUserId(userId);
+            musicGroupQuit.setMusicGroupId(groupId);
+            musicGroupQuit.setUserComment(reason);
+            musicGroupQuit.setReasonEnum(reasonEnum);
+            musicGroupQuit.setStatus(ApprovalStatus.PROCESSING);
+            musicGroupQuit.setOperatorId(operatorId);
+            musicGroupQuits.add(musicGroupQuit);
+        }
+        musicGroupService.batchQuitMusicGroup(musicGroupQuits);
+        return succeed();
+    }
+
 	@ApiOperation(value = "获取退团详情")
     @GetMapping("/getDetail")
     public HttpResponseResult<MusicGroupQuitDetailDto> getDetail(Long musicGroupQuitId) {