zouxuan 5 лет назад
Родитель
Сommit
afe61bbb59

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -1105,4 +1105,11 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @date 2019/10/21
      */
     List<Map<Long, Integer>> countGroupOverCourse(@Param("groupIds") List<String> groupIds,@Param("groupType")String groupType);
+
+    /**
+     * 获取课程实际上课老师
+     * @param courseScheduleIds
+     * @return
+     */
+    List<Map<Long, String>> queryTeacherName(@Param("courseScheduleIds") List<Long> courseScheduleIds);
 }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java

@@ -13,6 +13,7 @@ import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseScheduleTeacherSalary> {
 
@@ -294,4 +295,6 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	 */
 	List<Map<Integer,Integer>> countTeacherCourses(@Param("teacherIds") List<Integer> teacherIds,
 												   @Param("groupType") GroupType groupType);
+
+    void batchUpdateTeacher(@Param("courseScheduleIds") Set<Long> courseScheduleIds, @Param("teacherId") Integer teacherId);
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java

@@ -93,6 +93,9 @@ public class CourseSchedule {
 	@ApiModelProperty(value = "上课教师", required = false)
 	private Integer teacherId;
 
+	@ApiModelProperty(value = "主教老师", required = false)
+	private String teacherName;
+
 	/** 实际上课教师 */
 	@ApiModelProperty(value = "实际上课教师", required = false)
 	private Integer actualTeacherId;
@@ -131,6 +134,14 @@ public class CourseSchedule {
 
 	private String classGroupType;
 
+	public String getTeacherName() {
+		return teacherName;
+	}
+
+	public void setTeacherName(String teacherName) {
+		this.teacherName = teacherName;
+	}
+
 	public String getClassGroupType() {
 		return classGroupType;
 	}

+ 10 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java

@@ -402,7 +402,15 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 
 	/**
 	 * 陪练课老师调整
-	 * @param courseSchedule
+	 * @param courseScheduleId
+	 * @param teacherId
 	 */
-    void practiceCourseTeacherAdjust(CourseSchedule courseSchedule);
+    void practiceCourseTeacherAdjust(Long courseScheduleId,Integer teacherId);
+
+	/**
+	 * 陪练课课程组老师调整
+	 * @param practiceGroupId
+	 * @param teacherId
+	 */
+	void practiceGroupTeacherAdjust(String practiceGroupId, Integer teacherId);
 }

+ 61 - 15
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -9,7 +9,10 @@ import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
-import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
+import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
+import com.ym.mec.biz.dal.page.StudentCourseScheduleRecordQueryInfo;
+import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
@@ -43,6 +46,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     @Autowired
     private CourseScheduleDao courseScheduleDao;
     @Autowired
+    private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
+    @Autowired
     private SysUserFeignService sysUserFeignService;
     @Autowired
     private CourseScheduleComplaintsDao courseScheduleComplaintsDao;
@@ -61,8 +66,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     @Autowired
     private TeacherDefaultVipGroupSalaryDao teacherDefaultVipGroupSalaryDao;
     @Autowired
-    private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
-    @Autowired
     private ClassGroupTeacherMapperService classGroupTeacherMapperService;
     @Autowired
     private CourseScheduleStudentPaymentService courseScheduleStudentPaymentService;
@@ -2347,6 +2350,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void practiceCourseAdjust(CourseSchedule courseSchedule) {
         if(Objects.isNull(courseSchedule.getId())){
             throw new BizException("请指定课程");
@@ -2376,31 +2380,73 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     }
 
     @Override
-    public void practiceCourseTeacherAdjust(CourseSchedule courseSchedule) {
-        if(Objects.isNull(courseSchedule.getId())){
+    @Transactional(rollbackFor = Exception.class)
+    public void practiceCourseTeacherAdjust(Long courseScheduleId,Integer teacherId) {
+        if(Objects.isNull(courseScheduleId)){
             throw new BizException("请指定课程");
         }
-        if(Objects.isNull(courseSchedule.getActualTeacherId())){
+        if(Objects.isNull(teacherId)){
             throw new BizException("请指定上课老师");
         }
-        CourseSchedule oldCourseSchedule = courseScheduleDao.get(courseSchedule.getId());
+        CourseSchedule oldCourseSchedule = courseScheduleDao.get(courseScheduleId);
         if(Objects.isNull(oldCourseSchedule)){
             throw new BizException("未找到对应课程");
         }
         if(!oldCourseSchedule.getGroupType().equals(GroupType.PRACTICE)){
             throw new BizException("请选择陪练课");
         }
-        Integer practiceCourseMinutes=25;
-        SysConfig practiceCourseMinutesConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_MINUTES);
-        if(Objects.nonNull(practiceCourseMinutesConfig)){
-            practiceCourseMinutes=practiceCourseMinutesConfig.getParanValue(Integer.class);
+        if(teacherId.equals(oldCourseSchedule.getActualTeacherId())){
+            throw new BizException("请选择不同的老师");
         }
-        oldCourseSchedule.setClassDate(courseSchedule.getStartClassTime());
-        oldCourseSchedule.setStartClassTime(courseSchedule.getStartClassTime());
-        oldCourseSchedule.setEndClassTime(DateUtil.addMinutes(courseSchedule.getStartClassTime(),practiceCourseMinutes));
-        List<CourseSchedule> courseSchedules=new ArrayList<>();
+        oldCourseSchedule.setActualTeacherId(teacherId);
+        List<CourseSchedule> courseSchedules = new ArrayList<>();
         courseSchedules.add(oldCourseSchedule);
         checkNewCourseSchedules(courseSchedules,false);
         courseScheduleDao.update(oldCourseSchedule);
+        Set<Long> courseScheduleIds = courseSchedules.stream().map(e -> e.getId()).collect(Collectors.toSet());
+        courseScheduleTeacherSalaryDao.batchUpdateTeacher(courseScheduleIds,teacherId);
+        Map<Integer, String> map = new HashMap<>(2);
+        map.put(teacherId,teacherId.toString());
+        map.put(oldCourseSchedule.getActualTeacherId(),oldCourseSchedule.getActualTeacherId().toString());
+        if (map != null && map.size() > 0) {
+            sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_COURSE_SCHEDULE_CHANGE_RESULT,
+                    map, null, 0, "7","TEACHER");
+        }
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void practiceGroupTeacherAdjust(String practiceGroupId, Integer teacherId) {
+        if(StringUtils.isEmpty(practiceGroupId)){
+            throw new BizException("请指定课程组");
+        }
+        if(Objects.isNull(teacherId)){
+            throw new BizException("请指定上课老师");
+        }
+        List<CourseSchedule> courseSchedules = courseScheduleDao.findSurplusCourseWithGroup(GroupType.PRACTICE,practiceGroupId);
+        if(courseSchedules != null && courseSchedules.size() > 0){
+            courseSchedules = courseSchedules.stream().filter(courseSchedule -> !courseSchedule.getActualTeacherId().equals(teacherId)).collect(Collectors.toList());
+        }
+        if(courseSchedules == null || courseSchedules.size() == 0){
+            throw new BizException("没有可调整课程");
+        }
+        Integer oldTeacherId = courseSchedules.stream().map(e -> e.getActualTeacherId()).findFirst().get();
+        if(teacherId.equals(oldTeacherId)){
+            throw new BizException("请选择不同的老师");
+        }
+        courseSchedules.forEach(e->{
+            e.setActualTeacherId(teacherId);
+        });
+        checkNewCourseSchedules(courseSchedules,false);
+        Set<Long> courseScheduleIds = courseSchedules.stream().map(e -> e.getId()).collect(Collectors.toSet());
+        courseScheduleDao.batchUpdate(courseSchedules);
+        courseScheduleTeacherSalaryDao.batchUpdateTeacher(courseScheduleIds,teacherId);
+        Map<Integer, String> map = new HashMap<>(2);
+        map.put(teacherId,teacherId.toString());
+        map.put(oldTeacherId,oldTeacherId.toString());
+        if (map != null && map.size() > 0) {
+            sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_COURSE_SCHEDULE_CHANGE_RESULT,
+                    map, null, 0, "7","TEACHER");
+        }
     }
 }

+ 7 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -1445,7 +1445,6 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         if (Objects.isNull(practiceGroup)) {
             throw new BizException("指定的陪练课不存在");
         }
-
         List<CourseSchedule> dataList = courseScheduleDao.findGroupCourseSchedules(practiceGroup.getId(),GroupType.PRACTICE.getCode());
         int count = dataList.size();
         if (count > 0) {
@@ -1455,12 +1454,15 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
                     .distinct().collect(Collectors.toList());
             List<Map<Long, Integer>> courseSettlementMaps = courseScheduleTeacherSalaryDao.checkCoursesIsSettlement(courseScheduleIds);
             Map<Long, Long> courseSettlementMap = MapUtil.convertIntegerMap(courseSettlementMaps);
-            dataList.forEach(courseSchedule -> {
-                Long isSettlement = courseSettlementMap.get(courseSchedule.getId().longValue());
+            //获取课程实际上课老师姓名
+            Map<Long, String> teacherNames = MapUtil.convertIntegerMap(courseScheduleDao.queryTeacherName(courseScheduleIds));
+            dataList.forEach(e -> {
+                Long isSettlement = courseSettlementMap.get(e.getId().longValue());
+                e.setTeacherName(teacherNames.get(e.getId()));
                 if (Objects.isNull(isSettlement) || isSettlement <= 0) {
-                    courseSchedule.setIsSettlement(0);
+                    e.setIsSettlement(0);
                 } else {
-                    courseSchedule.setIsSettlement(1);
+                    e.setIsSettlement(1);
                 }
             });
         }

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

@@ -956,6 +956,7 @@
             cs.start_class_time_ start_class_time_str_,
             cs.end_class_time_ end_class_time_str_,
             cs.teacher_id_,
+            cs.actual_teacher_id_,
             cs.create_time_,
             cs.update_time_,
             cs.teach_mode_,
@@ -2237,4 +2238,12 @@
         </foreach>
         GROUP BY cs.music_group_id_
     </select>
+    <select id="queryTeacherName" resultType="java.util.Map">
+        SELECT cs.id_ 'key',su.real_name_ 'value' FROM course_schedule cs
+        LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
+        WHERE cs.id_ IN
+        <foreach collection="courseScheduleIds" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+    </select>
 </mapper>

+ 9 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml

@@ -358,8 +358,16 @@
 			#{userId}
 		</foreach>
 	</update>
+    <update id="batchUpdateTeacher">
+		UPDATE course_schedule_teacher_salary csts SET csts.user_id_ = #{teacherId},csts.update_time_ = NOW()
+		WHERE csts.course_schedule_id_ IN
+		<foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
+			#{courseScheduleId}
+		</foreach>
+		AND csts.teacher_role_ = 'BISHOP'
+	</update>
 
-	<select id="findCourseScheduleTeacherSalaryByMusicGroupId" resultMap="CourseScheduleTeacherSalary">
+    <select id="findCourseScheduleTeacherSalaryByMusicGroupId" resultMap="CourseScheduleTeacherSalary">
 		SELECT * FROM course_schedule_teacher_salary WHERE music_group_id_=#{musicGroupId} AND group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 	</select>
 	<select id="countActualAmount" resultType="java.util.Map">

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

@@ -118,7 +118,6 @@ public class RoomServiceImpl implements RoomService {
                 log.error("joinRoom IM error: roomId={}, {}", roomId, resultInfo.getErrorMessage());
                 throw new ApiException(ErrorEnum.ERR_CREATE_ROOM_ERROR, resultInfo.getErrorMessage());
             } else {
-//                destroyRoom(roomId);
                 scheduleManager.addExpiredTask(this, roomId);
             }
         } else {
@@ -1008,7 +1007,6 @@ public class RoomServiceImpl implements RoomService {
         CheckUtils.checkArgument(roomDao.existsByRid(roomId), "room not exist");
         CheckUtils.checkArgument(RoleEnum.getEnumByValue(targetRole).equals(RoleEnum.RoleTeacher), "only set to teacher");
         CheckUtils.checkArgument(roomMemberDao.existsByRidAndUid(roomId, targetUserId), "room member not exist");
-        String token = SecurityUtils.getAuthenticationValue();
         SysUser authUser = sysUserFeignService.queryUserInfo();
         String userId = authUser.getId().toString();
 

+ 11 - 2
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -24,6 +24,7 @@ import com.ym.mec.common.exception.BizException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import io.swagger.models.auth.In;
 import org.apache.commons.lang.ArrayUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
@@ -308,8 +309,16 @@ public class CourseScheduleController extends BaseController {
     @ApiOperation(value = "陪练课老师调整")
     @PostMapping("/practiceCourseTeacherAdjust")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/practiceCourseTeacherAdjust')")
-    public Object practiceCourseTeacherAdjust(CourseSchedule courseSchedule){
-        scheduleService.practiceCourseTeacherAdjust(courseSchedule);
+    public Object practiceCourseTeacherAdjust(Long courseScheduleId,Integer teacherId){
+        scheduleService.practiceCourseTeacherAdjust(courseScheduleId,teacherId);
+        return succeed();
+    }
+
+    @ApiOperation(value = "陪练课课程组老师调整")
+    @PostMapping("/practiceGroupTeacherAdjust")
+    @PreAuthorize("@pcs.hasPermissions('courseSchedule/practiceGroupTeacherAdjust')")
+    public Object practiceGroupTeacherAdjust(String practiceGroupId, Integer teacherId){
+        scheduleService.practiceGroupTeacherAdjust(practiceGroupId,teacherId);
         return succeed();
     }
 }