zouxuan 5 年 前
コミット
e9d87a2f14

+ 7 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleModifyLogDao.java

@@ -3,8 +3,14 @@ package com.ym.mec.biz.dal.dao;
 import com.ym.mec.biz.dal.entity.CourseScheduleModifyLog;
 import com.ym.mec.common.dal.BaseDAO;
 
+import java.util.List;
+
 
 public interface CourseScheduleModifyLogDao extends BaseDAO<Integer, CourseScheduleModifyLog> {
 
-	
+    /**
+     * 批量新增
+     * @param scheduleModifyLogs
+     */
+    void batchInsert(List<CourseScheduleModifyLog> scheduleModifyLogs);
 }

+ 0 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherFreeTimeDao.java

@@ -14,5 +14,4 @@ public interface TeacherFreeTimeDao extends BaseDAO<Integer, TeacherFreeTime> {
      * @return com.ym.mec.biz.dal.entity.TeacherFreeTime
      */
     TeacherFreeTime findTeacherFreeTime(@Param("userId") Integer userId);
-	
 }

+ 9 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherFreeTime.java

@@ -44,7 +44,15 @@ public class TeacherFreeTime {
 	
 	/**  */
 	private java.util.Date updateTime;
-	
+
+	public Integer getHoliday() {
+		return holiday;
+	}
+
+	public void setHoliday(Integer holiday) {
+		this.holiday = holiday;
+	}
+
 	public void setId(Integer id){
 		this.id = id;
 	}

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

@@ -5,5 +5,5 @@ import com.ym.mec.common.service.BaseService;
 
 public interface TeacherFreeTimeService extends BaseService<Integer, TeacherFreeTime> {
 
-    Object updateSet(TeacherFreeTime teacherFreeTime);
+    void updateSet(TeacherFreeTime teacherFreeTime);
 }

+ 79 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -50,6 +50,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     @Autowired
     private SysUserFeignService sysUserFeignService;
     @Autowired
+    private CourseScheduleModifyLogDao courseScheduleModifyLogDao;
+    @Autowired
     private CourseScheduleComplaintsDao courseScheduleComplaintsDao;
     @Autowired
     private SysConfigDao sysConfigDao;
@@ -1179,6 +1181,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     @Override
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
     public void vipCourseAdjust(VipGroupCourseAdjustInfoDto vipGroupCourseAdjustInfo) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (null == user) {
+            throw new BizException("获取用户信息失败");
+        }
         if (Objects.isNull(vipGroupCourseAdjustInfo.getVipGroupId())) {
             throw new BizException("请指定小课");
         }
@@ -1224,7 +1230,17 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                 .stream().map(Long::parseLong).collect(Collectors.toList());
         //所有的课程
         List<CourseSchedule> courseSchedules = courseScheduleDao.findByCourseScheduleIds(courseScheduleIds);
-
+        //保存修改记录
+        List<CourseScheduleModifyLog> scheduleModifyLogs = new ArrayList<>(courseSchedules.size());
+        Date date = new Date();
+        courseSchedules.forEach(e->{
+            CourseScheduleModifyLog scheduleModifyLog = new CourseScheduleModifyLog();
+            scheduleModifyLog.setCourseScheduleId(e.getId());
+            scheduleModifyLog.setPreviousCourseSchedule(JSONObject.toJSONString(e));
+            scheduleModifyLog.setCreateTime(date);
+            scheduleModifyLog.setOperatorId(user.getId());
+            scheduleModifyLogs.add(scheduleModifyLog);
+        });
         courseSchedules.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
 
         if (courseScheduleIds.size() != courseScheduleIds.size()) {
@@ -1329,6 +1345,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         classGroupService.updateClassGroupInfo(classGroup.getId());
 //        vipGroupService.checkVipCourseIsInScore(vipGroupCourseAdjustInfo.getVipGroupId().longValue());
 //        courseScheduleStudentPaymentService.updateVipGiveCourse(vipGroup.getId());
+        if(scheduleModifyLogs.size() == courseSchedules.size()){
+            for (int i = 0;i<courseSchedules.size();i++){
+                scheduleModifyLogs.get(i).setCurrentCourseSchedule(JSONObject.toJSONString(courseSchedules.get(i)));
+            }
+            courseScheduleModifyLogDao.batchInsert(scheduleModifyLogs);
+        }
     }
 
     @Override
@@ -2519,13 +2541,18 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void practiceCourseAdjust(CourseSchedule courseSchedule) {
-        if(Objects.isNull(courseSchedule.getId())){
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (null == user) {
+            throw new BizException("获取用户信息失败");
+        }
+        Long courseScheduleId = courseSchedule.getId();
+        if(Objects.isNull(courseScheduleId)){
             throw new BizException("请指定课程");
         }
         if(Objects.isNull(courseSchedule.getStartClassTime())){
             throw new BizException("请指定上课时间");
         }
-        CourseSchedule oldCourseSchedule = courseScheduleDao.get(courseSchedule.getId());
+        CourseSchedule oldCourseSchedule = courseScheduleDao.get(courseScheduleId);
         if(Objects.isNull(oldCourseSchedule)){
             throw new BizException("未找到对应课程");
         }
@@ -2545,7 +2572,14 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         if(DateUtil.minutesBetween(practiceGroup.getCoursesExpireDate(),endDateTime) > 0){
             throw new BizException("调整失败: 截止时间超过课程有效期");
         }
+        //保存修改记录
         Date date = new Date();
+        CourseScheduleModifyLog scheduleModifyLog = new CourseScheduleModifyLog();
+        scheduleModifyLog.setCourseScheduleId(courseScheduleId);
+        scheduleModifyLog.setPreviousCourseSchedule(JSONObject.toJSONString(oldCourseSchedule));
+        scheduleModifyLog.setCreateTime(date);
+        oldCourseSchedule.setUpdateTime(date);
+
         if(DateUtil.minutesBetween(endDateTime,date) > 0){
             oldCourseSchedule.setStatus(CourseStatusEnum.OVER);
         }else if(DateUtil.minutesBetween(date,startDateTime) > 0){
@@ -2561,20 +2595,29 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         oldCourseSchedule.setClassDate(courseSchedule.getStartClassTime());
         oldCourseSchedule.setStartClassTime(courseSchedule.getStartClassTime());
         oldCourseSchedule.setEndClassTime(DateUtil.addMinutes(courseSchedule.getStartClassTime(),practiceCourseMinutes));
+
+        scheduleModifyLog.setCurrentCourseSchedule(JSONObject.toJSONString(oldCourseSchedule));
+        scheduleModifyLog.setOperatorId(user.getId());
+
         List<CourseSchedule> courseSchedules=new ArrayList<>();
         courseSchedules.add(oldCourseSchedule);
         checkNewCourseSchedules(courseSchedules,false);
         if(oldCourseSchedule.getStatus() == CourseStatusEnum.NOT_START){
             teacherAttendanceDao.batchUpdateTeacher(courseSchedules.stream().map(e->e.getId()).collect(Collectors.toSet()),oldCourseSchedule.getActualTeacherId());
             //清空学生签到记录
-            studentAttendanceDao.deleteStudentAttendancesByCourse(courseSchedule.getId());
+            studentAttendanceDao.deleteStudentAttendancesByCourse(courseScheduleId);
         }
         courseScheduleDao.update(oldCourseSchedule);
+        courseScheduleModifyLogDao.insert(scheduleModifyLog);
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void practiceCourseTeacherAdjust(Long courseScheduleId,Integer teacherId) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (null == user) {
+            throw new BizException("获取用户信息失败");
+        }
         if(Objects.isNull(courseScheduleId)){
             throw new BizException("请指定课程");
         }
@@ -2591,14 +2634,28 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         if(teacherId.equals(oldCourseSchedule.getActualTeacherId())){
             throw new BizException("请选择不同的老师");
         }
+
+        //保存修改记录
+        Date date = new Date();
+        CourseScheduleModifyLog scheduleModifyLog = new CourseScheduleModifyLog();
+        scheduleModifyLog.setCourseScheduleId(courseScheduleId);
+        scheduleModifyLog.setPreviousCourseSchedule(JSONObject.toJSONString(oldCourseSchedule));
+        scheduleModifyLog.setCreateTime(date);
+        oldCourseSchedule.setUpdateTime(date);
         oldCourseSchedule.setActualTeacherId(teacherId);
+        scheduleModifyLog.setCurrentCourseSchedule(JSONObject.toJSONString(oldCourseSchedule));
+        scheduleModifyLog.setOperatorId(user.getId());
+
         List<CourseSchedule> courseSchedules = new ArrayList<>();
         courseSchedules.add(oldCourseSchedule);
         Set<Long> courseScheduleIds = courseSchedules.stream().map(e -> e.getId()).collect(Collectors.toSet());
         checkNewCourseSchedules(courseSchedules,false);
+
         courseScheduleDao.update(oldCourseSchedule);
         teacherAttendanceDao.batchUpdateTeacher(courseScheduleIds,teacherId);
         courseScheduleTeacherSalaryDao.batchUpdateTeacher(courseScheduleIds,teacherId);
+        courseScheduleModifyLogDao.insert(scheduleModifyLog);
+
         Map<Integer, String> map = new HashMap<>(2);
         map.put(teacherId,teacherId.toString());
         map.put(oldCourseSchedule.getActualTeacherId(),oldCourseSchedule.getActualTeacherId().toString());
@@ -2611,6 +2668,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void practiceGroupTeacherAdjust(String practiceGroupId, Integer teacherId) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (null == user) {
+            throw new BizException("获取用户信息失败");
+        }
         if(StringUtils.isEmpty(practiceGroupId)){
             throw new BizException("请指定课程组");
         }
@@ -2624,11 +2685,23 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         if(courseSchedules == null || courseSchedules.size() == 0){
             throw new BizException("没有可调整的课程");
         }
+
         Map<Integer, String> teacherIdMap = new HashMap<>(10);
         teacherIdMap.put(teacherId,teacherId.toString());
+        List<CourseScheduleModifyLog> scheduleModifyLogs = new ArrayList<>(courseSchedules.size());
+        Date date = new Date();
         courseSchedules.forEach(e->{
+            //保存修改记录
+            CourseScheduleModifyLog scheduleModifyLog = new CourseScheduleModifyLog();
+            scheduleModifyLog.setCourseScheduleId(e.getId());
+            scheduleModifyLog.setPreviousCourseSchedule(JSONObject.toJSONString(e));
+            scheduleModifyLog.setCreateTime(date);
             teacherIdMap.put(e.getActualTeacherId(),e.getActualTeacherId().toString());
+            e.setUpdateTime(date);
             e.setActualTeacherId(teacherId);
+            scheduleModifyLog.setCurrentCourseSchedule(JSONObject.toJSONString(e));
+            scheduleModifyLog.setOperatorId(user.getId());
+            scheduleModifyLogs.add(scheduleModifyLog);
         });
         checkNewCourseSchedules(courseSchedules,false);
         courseScheduleDao.batchUpdate(courseSchedules);
@@ -2639,6 +2712,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         classGroupTeacherSalaryDao.updateTeacher(classGroupIds,teacherId);
         practiceGroupDao.updateUserId(practiceGroupId,teacherId);
         teacherAttendanceDao.batchUpdateTeacher(courseScheduleIds,teacherId);
+        courseScheduleModifyLogDao.batchInsert(scheduleModifyLogs);
+
         if (teacherIdMap != null && teacherIdMap.size() > 0) {
             sysMessageService.batchSendMessage(MessageSender.JIGUANG, MessageTypeEnum.TEACHER_PUSH_COURSE_SCHEDULE_CHANGE_RESULT,
                     teacherIdMap, null, 0, "7","TEACHER");

+ 16 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherFreeTimeServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.common.exception.BizException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -8,6 +9,9 @@ import com.ym.mec.biz.dal.entity.TeacherFreeTime;
 import com.ym.mec.biz.service.TeacherFreeTimeService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
 
 @Service
 public class TeacherFreeTimeServiceImpl extends BaseServiceImpl<Integer, TeacherFreeTime> implements TeacherFreeTimeService {
@@ -21,8 +25,17 @@ public class TeacherFreeTimeServiceImpl extends BaseServiceImpl<Integer, Teacher
 	}
 
 	@Override
-	public Object updateSet(TeacherFreeTime teacherFreeTime) {
-
-		return null;
+	@Transactional(rollbackFor = Exception.class)
+	public void updateSet(TeacherFreeTime teacherFreeTime) {
+		if(teacherFreeTime == null || teacherFreeTime.getUserId() == null){
+			throw new BizException("参数校验失败");
+		}
+		TeacherFreeTime oldTeacherFreeTime = teacherFreeTimeDao.findTeacherFreeTime(teacherFreeTime.getUserId());
+		if(oldTeacherFreeTime == null){
+			teacherFreeTimeDao.insert(teacherFreeTime);
+		}else {
+			teacherFreeTime.setUpdateTime(new Date());
+			teacherFreeTimeDao.update(teacherFreeTime);
+		}
 	}
 }

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

@@ -29,10 +29,16 @@
 		(id_,course_schedule_id_,operator_id_,previous_course_schedule_,current_course_schedule_,create_time_)
 		VALUES(#{id},#{courseScheduleId},#{operatorId},#{previousCourseSchedule},#{currentCourseSchedule},#{createTime})
 	</insert>
+    <insert id="batchInsert">
+		INSERT INTO course_schedule_modify_log
+		(course_schedule_id_,operator_id_,previous_course_schedule_,current_course_schedule_,create_time_)
+		VALUES
+		<foreach collection="scheduleModifyLogs" item="item" separator=",">
+			(#{item.courseScheduleId},#{item.operatorId},#{item.previousCourseSchedule},#{item.currentCourseSchedule},#{item.createTime})
+		</foreach>
+	</insert>
 
-
-
-	<!-- 分页查询 -->
+    <!-- 分页查询 -->
 	<select id="queryPage" resultMap="CourseScheduleModifyLog"
 		parameterType="map">
 		SELECT * FROM course_schedule_modify_log

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

@@ -101,7 +101,6 @@
 		teacher_free_time
 	</select>
 	<select id="findTeacherFreeTime" resultMap="TeacherFreeTime">
-		SELECT * FROM
-		teacher_free_time WHERE user_id_ = #{userId}
+		SELECT * FROM teacher_free_time WHERE user_id_ = #{userId} FOR UPDATE
 	</select>
 </mapper>

+ 4 - 16
mec-web/src/main/java/com/ym/mec/web/controller/TeacherFreeTimeController.java

@@ -8,10 +8,7 @@ import java.util.Date;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import com.ym.mec.biz.dal.entity.TeacherFreeTime;
 import com.ym.mec.biz.service.TeacherFreeTimeService;
@@ -40,18 +37,9 @@ public class TeacherFreeTimeController extends BaseController {
 	}
 
 	@ApiOperation("新增")
-	@PostMapping(value = "/updateSet", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@PostMapping(value = "/updateSet")
 	public Object add(TeacherFreeTime teacherFreeTime) {
-		return succeed(teacherFreeTimeService.updateSet(teacherFreeTime));
+		teacherFreeTimeService.updateSet(teacherFreeTime);
+		return succeed();
 	}
-
-	@ApiOperation("更新")
-	@PostMapping(value = "/update", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
-	public Object update(TeacherFreeTime teacherFreeTime) {
-		Date date = new Date();
-		teacherFreeTime.setUpdateTime(date);
-
-		return succeed(teacherFreeTimeService.update(teacherFreeTime));
-	}
-
 }