Bläddra i källkod

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 år sedan
förälder
incheckning
050d270ec6

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

@@ -71,4 +71,27 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      */
     List<CourseSchedule> findTeacherCoursesInDates(@Param("dates") List<Date> dates,
                                                    @Param("teacherId") Long teacherId);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/24
+     * 根据日期获取课程
+     */
+    List<CourseSchedule> findCoursesByDates(@Param("dates") List<Date> dates);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/24
+     * 获取在指定时间段内存在重复的课程
+     */
+    List<CourseSchedule> findOverLapCoursesInDay(@Param("dates") List<Date> dates,
+                                                 @Param("startClassTime") Date startClassTime,
+                                                 @Param("endClassTime") Date endClassTime);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/24
+     * 根据id批量获取课程
+     */
+    List<CourseSchedule> findCourseSchedulesByIds(@Param("ids") Long[] ids);
 }

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

@@ -22,5 +22,12 @@ public interface TeacherAttendanceDao extends BaseDAO<Long, TeacherAttendance> {
      * @return
      */
     int getTeacherPersonalAttendancesCount(Map<String,Object> params);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/24
+     * 统计课次
+     */
+    int countClassTime(Long classGroupId);
 	
 }

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

@@ -57,17 +57,6 @@ public class CourseSchedule {
 
 	private boolean complaintStatus;
 
-	@ApiModelProperty(value = "当前课次",required = false)
-	private Integer currentClassTimes;
-
-	public Integer getCurrentClassTimes() {
-		return currentClassTimes;
-	}
-
-	public void setCurrentClassTimes(Integer currentClassTimes) {
-		this.currentClassTimes = currentClassTimes;
-	}
-
 	public void setId(Long id) {
 		this.id = id;
 	}

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Employee.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.enums.JobNatureEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 
@@ -10,7 +11,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 /**
  * 对应数据库表(employee):
  */
-public class Employee {
+public class Employee extends SysUser {
 
 	/**  */
 	private Integer userId;

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

@@ -51,5 +51,12 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
      * @Date: 2019/9/23
      * 课时调整
      */
-    int classStartDateAdjust(ClassDateAdjustDto classDateAdjustDto);
+    void classStartDateAdjust(ClassDateAdjustDto classDateAdjustDto);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/24
+     * 课程交换
+     */
+    void courseSwap(Long courseScheduleId1,Long courseScheduleId2);
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/EmployeeService.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.enums.EmployeeOperateEnum;
 import com.ym.mec.biz.dal.page.EmployeeQueryInfo;
 import com.ym.mec.common.page.PageInfo;
@@ -24,4 +25,10 @@ public interface EmployeeService extends BaseService<Integer, Employee> {
      */
     void employeeOperate(Long employeeId, EmployeeOperateEnum operate);
 
+    /**
+     * 新增员工
+     * @param employee
+     */
+    void add(Employee employee) throws Exception;
+
 }

+ 105 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -13,9 +13,12 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 
 import com.ym.mec.common.utils.DateUtils;
 import io.swagger.models.auth.In;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -117,7 +120,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		for (Integer key:classGroupByID.keySet()){
 			Integer maxClassTime = null == maxClassTimes.get(key) ? 0 : maxClassTimes.get(key);
 			for(CourseSchedule courseSchedule:classGroupByID.get(key)){
-				courseSchedule.setCurrentClassTimes(++maxClassTime);
 				courseSchedules.add(courseSchedule);
 			}
 		}
@@ -132,26 +134,118 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		return map;
 	}
 
+	@Transactional(rollbackFor = Exception.class)
 	@Override
-	public int classStartDateAdjust(ClassDateAdjustDto classDateAdjustDto) {
+	public void classStartDateAdjust(ClassDateAdjustDto classDateAdjustDto) {
 		//单次调整课时
 		if(null==classDateAdjustDto.getAdjustStartTime()&&null==classDateAdjustDto.getAdjustEndTime()){
-			if(courseScheduleDao.countTeacherCourseInOnDayRepeats(classDateAdjustDto)<=0){
+			ArrayList<Date> dates = new ArrayList<>();
+			dates.add(classDateAdjustDto.getClassDate());
+			List<CourseSchedule> coursesByDates = courseScheduleDao.findOverLapCoursesInDay(dates,classDateAdjustDto.getStartClassTime(),classDateAdjustDto.getEndClassTime());
+			//判断是否存在同时间上课的班级
+			if(null==coursesByDates||coursesByDates.size()<=0){
 				courseScheduleDao.update(classDateAdjustDto);
 			}else{
-				//存在时间重叠,需要前端重新调整
-				throw new BizException("所选教师在当天课程安排上存在重叠!");
+				coursesByDates.forEach(courseSchedule -> {
+					if(courseSchedule.getTeacherId().equals(classDateAdjustDto.getTeacherId())){
+						//存在时间重叠,需要前端重新调整
+						throw new BizException("所选教师在当天课程安排上存在重叠!");
+					}
+				});
+				List<Integer> repeatClassGroupIds = coursesByDates.stream().map(CourseSchedule::getClassGroupId).collect(Collectors.toList());
+				checkStudentIsRepeat(repeatClassGroupIds);
+				courseScheduleDao.update(classDateAdjustDto);
 			}
 		}else{
 			//根据时间段调整课时
 			List<Date> dates= DateUtils.getWeekDays(classDateAdjustDto.getAdjustStartTime(),classDateAdjustDto.getAdjustEndTime(),classDateAdjustDto.getWeekNum());
-			List<CourseSchedule> teacherCoursesInDates = courseScheduleDao.findTeacherCoursesInDates(dates, classDateAdjustDto.getTeacherId());
-			teacherCoursesInDates.forEach(courseSchedule -> {
-//				if(courseSchedule.getStartClassTime()>classDateAdjustDto.getEndClassTime()
-//						||)
-			});
+			List<CourseSchedule> coursesByDates = courseScheduleDao.findOverLapCoursesInDay(dates,classDateAdjustDto.getStartClassTime(),classDateAdjustDto.getEndClassTime());
+			//判断是否存在同时间上课的班级
+			if(null==coursesByDates||coursesByDates.size()<=0){
+				createNewCourseByAdjust(dates,classDateAdjustDto);
+			}else{
+				//判断教师是否在时间安排上存在冲突
+				SimpleDateFormat s1=new SimpleDateFormat("yyyy-MM-dd"),
+						s2=new SimpleDateFormat("HH:mm:ss"),
+						s3=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+				List<CourseSchedule> teacherCoursesInDates = courseScheduleDao.findTeacherCoursesInDates(dates, classDateAdjustDto.getTeacherId());
+				teacherCoursesInDates.forEach(courseSchedule -> {
+					Date updateStartClassTime = null,updateEndClassTime=null;
+					try {
+						updateStartClassTime=s3.parse(s1.format(courseSchedule.getClassDate())+" "+s2.format(classDateAdjustDto.getStartClassTime()));
+						updateEndClassTime=s3.parse(s1.format(courseSchedule.getClassDate())+" "+s2.format(classDateAdjustDto.getEndClassTime()));
+					} catch (ParseException e) {
+						e.printStackTrace();
+					}
+					boolean isDuplication=(courseSchedule.getStartClassTime().after(updateStartClassTime)
+							&&courseSchedule.getStartClassTime().before(updateEndClassTime))
+							||(updateStartClassTime.after(courseSchedule.getStartClassTime())
+							&&updateStartClassTime.before(courseSchedule.getEndClassTime()));
+					if(isDuplication){
+						throw new BizException("在所选时段内教师上课时间存在重复!");
+					}
+
+				});
+				//判断学生在时间安排上是否存在冲突
+				Map<Date, List<CourseSchedule>> collect = coursesByDates.stream().collect(Collectors.groupingBy(CourseSchedule::getClassDate));
+				for(Date keyDate:collect.keySet()){
+					List<Integer> repeatClassGroupIds = collect.get(keyDate).stream().map(CourseSchedule::getClassGroupId).collect(Collectors.toList());
+					checkStudentIsRepeat(repeatClassGroupIds);
+				}
+				createNewCourseByAdjust(dates,classDateAdjustDto);
+			}
+		}
+	}
+
+	@Transactional(rollbackFor = Exception.class)
+	@Override
+	public void courseSwap(Long courseScheduleId1, Long courseScheduleId2) {
+		List<CourseSchedule> courseSchedules = courseScheduleDao.findCourseSchedulesByIds(new Long[]{courseScheduleId1, courseScheduleId2});
+		CourseSchedule temp=new CourseSchedule();
+		BeanUtils.copyProperties(courseSchedules.get(0),temp);
+		courseSchedules.get(0).setClassDate(courseSchedules.get(1).getClassDate());
+		courseSchedules.get(0).setStartClassTime(courseSchedules.get(1).getStartClassTime());
+		courseSchedules.get(0).setEndClassTime(courseSchedules.get(1).getEndClassTime());
+		courseSchedules.get(1).setClassDate(temp.getClassDate());
+		courseSchedules.get(1).setStartClassTime(temp.getStartClassTime());
+		courseSchedules.get(1).setEndClassTime(temp.getEndClassTime());
+		courseScheduleDao.update(courseSchedules.get(0));
+		courseScheduleDao.update(courseSchedules.get(1));
+	}
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/24
+	 * 检测学生是否存在重复
+	 */
+	private void checkStudentIsRepeat(List<Integer> studentIds){
+		Integer[] counts=courseScheduleDao.countStudentInClass(studentIds);
+		for (Integer i:counts){
+			if (i>ParamEnum.ONE.getCode()){
+				throw new BizException("所选课程安排日期有学生重复!");
+			}
+		}
+	}
+
+	/**
+	 * @Author: Joburgess
+	 * @Date: 2019/9/24
+	 * 根据课时调整信息增加新课程
+	 */
+	private void createNewCourseByAdjust(List<Date> dates,ClassDateAdjustDto classDateAdjustDto){
+		CourseSchedule schedule=courseScheduleDao.get(classDateAdjustDto.getId());
+		List<CourseSchedule> courseSchedules=new ArrayList<>();
+		courseScheduleDao.delete(classDateAdjustDto.getId());
+		for (Date date:dates){
+			CourseSchedule courseSchedule=new CourseSchedule();
+			BeanUtils.copyProperties(schedule,courseSchedule);
+			courseSchedule.setClassDate(date);
+			courseSchedule.setStartClassTime(classDateAdjustDto.getStartClassTime());
+			courseSchedule.setEndClassTime(classDateAdjustDto.getEndClassTime());
+			courseSchedule.setTeacherId(classDateAdjustDto.getTeacherId());
+			courseSchedules.add(courseSchedule);
 		}
-		return 0;
+		courseScheduleDao.batchAddCourseSchedules(courseSchedules);
 	}
 
 }

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

@@ -8,6 +8,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
@@ -44,6 +46,8 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 
 	@Autowired
 	private ObjectMapper objectMapper;
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
 
 	@Override
 	public BaseDAO<Integer, Employee> getDAO() {
@@ -51,6 +55,20 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 	}
 
 	@Override
+	public void add(Employee employee) throws Exception {
+		SysUser user = sysUserFeignService.getUserByMobile(employee.getPhone());
+		if(user != null){
+			throw new Exception("系统已存在该手机号的老师,请核查");
+		}
+		//保存用户表信息
+		sysUserFeignService.addUser(employee);
+		//注册到融云
+
+		//保存教师表数据
+		employeeDao.insert(employee);
+	}
+
+	@Override
 	public PageInfo queryEmployByOrganId(EmployeeQueryInfo queryInfo) throws IOException {
 		String url = "http://auth-server/queryUserInfo";
 

+ 10 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -2,17 +2,11 @@ package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.CourseScheduleDao;
-import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
-import com.ym.mec.biz.dal.dao.StudentCourseHomeworkDao;
-import com.ym.mec.biz.dal.dao.TeacherAttendanceDao;
+import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
 import com.ym.mec.biz.dal.dto.TeacherPersonalAttendanceDto;
 import com.ym.mec.biz.dal.dto.TeacherSignOutDto;
-import com.ym.mec.biz.dal.entity.CourseHomework;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
-import com.ym.mec.biz.dal.entity.StudentCourseHomework;
-import com.ym.mec.biz.dal.entity.TeacherAttendance;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.CourseStatusEnum;
 import com.ym.mec.biz.dal.enums.ParamEnum;
 import com.ym.mec.biz.dal.enums.SignStatusEnum;
@@ -45,6 +39,8 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 	private StudentCourseHomeworkDao studentCourseHomeworkDao;
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
+	@Autowired
+	private ClassGroupDao classGroupDao;
 
 	@Override
 	public BaseDAO<Long, TeacherAttendance> getDAO() {
@@ -79,6 +75,12 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		teacherAttendance.setCreateTime(date);
 		teacherAttendanceDao.insert(teacherAttendance);
 		if(teacherAttendance.getStatus()==SignStatusEnum.YES_QUIT){
+			//更新课次
+			ClassGroup classGroup=new ClassGroup();
+			classGroup.setId(currentCourseDetail.getClassId().intValue());
+			classGroup.setCurrentClassTimes(teacherAttendanceDao.countClassTime(currentCourseDetail.getClassId()));
+			classGroupDao.update(classGroup);
+			//新增课堂作业
 			CourseHomework courseHomework=teacherSignOutDto.getCourseHomeworkInfo();
 			courseHomework.setCourseScheduleId(teacherAttendance.getCourseScheduleId());
 			courseHomework.setMusicGroupId(currentCourseDetail.getMusicGroupId().intValue());

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

@@ -47,16 +47,16 @@
         </selectKey>
         -->
         INSERT INTO course_schedule
-        (id_,class_group_id_,status_,subsidy_,class_date_,start_class_time_,end_class_time_,teacher_id_,actual_teacher_id_,create_time_,update_time_,current_class_times_)
-        VALUES(#{id},#{classGroupId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{subsidy},#{classDate},#{startClassTime},#{endClassTime},#{teacherId},#{actualTeacherId},now(),now(),#{currentClassTimes})
+        (id_,class_group_id_,status_,subsidy_,class_date_,start_class_time_,end_class_time_,teacher_id_,actual_teacher_id_,create_time_,update_time_)
+        VALUES(#{id},#{classGroupId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{subsidy},#{classDate},#{startClassTime},#{endClassTime},#{teacherId},#{actualTeacherId},now(),now())
     </insert>
 
     <insert id="batchAddCourseSchedules" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
         INSERT INTO course_schedule
-        (id_,class_group_id_,status_,subsidy_,class_date_,start_class_time_,end_class_time_,teacher_id_,actual_teacher_id_,create_time_,update_time_,current_class_times_)
+        (class_group_id_,status_,subsidy_,class_date_,start_class_time_,end_class_time_,teacher_id_,actual_teacher_id_,create_time_,update_time_)
         VALUE
         <foreach collection="list" item="course" separator=",">
-            (#{course.id},#{course.classGroupId},#{course.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{course.subsidy},#{course.classDate},#{course.startClassTime},#{course.endClassTime},#{course.teacherId},#{course.actualTeacherId},now(),now(),#{course.currentClassTimes})
+            (#{course.classGroupId},#{course.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{course.subsidy},#{course.classDate},#{course.startClassTime},#{course.endClassTime},#{course.teacherId},#{course.actualTeacherId},now(),now())
         </foreach>
     </insert>
 
@@ -100,7 +100,7 @@
 
     <!-- 根据主键删除一条记录 -->
     <delete id="delete">
-		DELETE FROM course_schedule WHERE id_ = #{id} 
+		DELETE FROM course_schedule WHERE id_ = #{id}
 	</delete>
 
     <delete id="deleteCourseSchedulesByMusicGroupID">
@@ -193,9 +193,9 @@
 
     <select id="countStudentInClass" resultType="java.lang.Integer">
         SELECT
-            COUNT(class_group_id_)
+        COUNT(class_group_id_)
         FROM
-            class_group_student_mapper cgsm
+        class_group_student_mapper cgsm
         WHERE class_group_id_ IN
         <foreach collection="list" item="item" index="index" separator="," open="(" close=")">
             #{item}
@@ -229,14 +229,14 @@
         SELECT
         concat(class_group_id_,",",IF(MAX( current_class_times_ ) IS NULL,0,MAX( current_class_times_ )))
         FROM
-            course_schedule
+        course_schedule
         WHERE
-            class_group_id_ IN
-            <foreach collection="list" item="id" open="(" close=")" separator=",">
-                #{id}
-            </foreach>
+        class_group_id_ IN
+        <foreach collection="list" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
         GROUP BY
-            class_group_id_
+        class_group_id_
     </select>
 
     <select id="countTeacherCourseInOnDayRepeats" parameterType="com.ym.mec.biz.dal.entity.CourseSchedule" resultType="int">
@@ -254,14 +254,62 @@
     </select>
     <select id="findTeacherCoursesInDates" resultMap="CourseSchedule">
         SELECT
-            *
+        id_,
+        class_group_id_,
+        status_,
+        subsidy_,
+        class_date_,
+        concat(class_date_,' ',start_class_time_) start_class_time_,
+        concat(class_date_,' ',end_class_time_) end_class_time_,
+        teacher_id_,
+        actual_teacher_id_,
+        create_time_,
+        update_time_
         FROM
-            course_schedule cs
+        course_schedule cs
+        WHERE
+        cs.teacher_id_ = #{teacherId}
+        AND cs.class_date_ IN
+        <foreach collection="dates" item="date" open="(" close=")" separator=",">
+            #{date}
+        </foreach>
+    </select>
+    <select id="findCoursesByDates" resultMap="CourseSchedule">
+        SELECT
+        *
+        FROM
+        course_schedule cs
+        WHERE
+        cs.class_date_ IN
+        <foreach collection="dates" item="date" open="(" close=")" separator=",">
+            DATE_FORMAT(#{date},'%Y-%m-%d')
+        </foreach>
+    </select>
+
+    <select id="findOverLapCoursesInDay" resultMap="CourseSchedule">
+        SELECT
+        *
+        FROM
+        course_schedule cs
         WHERE
-            cs.teacher_id_ = #{teacherId}
-            AND cs.class_date_ IN
-            <foreach collection="dates" item="date" open="(" close=")" separator=",">
-                #{date}
-            </foreach>
+        cs.class_date_ IN
+        <foreach collection="dates" item="date" open="(" close=")" separator=",">
+            DATE_FORMAT(#{date},'%Y-%m-%d')
+        </foreach>
+        AND (
+        DATE_FORMAT(cs.start_class_time_,"%H:%i:%s") &gt; DATE_FORMAT(#{endClassTime}, '%H:%i:%s' ) OR DATE_FORMAT(cs.end_class_time_,"%H:%i:%s") &lt; DATE_FORMAT( #{endClassTime}, '%H:%i:%s' )
+        )=0
+    </select>
+
+    <select id="findCourseSchedulesByIds" resultMap="CourseSchedule">
+        SELECT
+        *
+        FROM
+        course_schedule cs
+        WHERE
+        cs.id_ IN
+        <foreach collection="ids" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
     </select>
 </mapper>

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

@@ -145,5 +145,9 @@
         <include refid="queryCondition"/>
     </select>
 
+    <select id="countClassTime" resultType="java.lang.Integer">
+        select count(*) from teacher_attendance where class_group_id_=#{classGroupId} for update
+    </select>
+
 
 </mapper>

+ 54 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/enums/TransTypeEnum.java

@@ -0,0 +1,54 @@
+package com.ym.mec.common.enums;
+
+import java.util.Arrays;
+
+/**
+ * @program: mec
+ * @description: 提现/充值交易类型
+ * @author: xw
+ * @create: 2019-09-24 16:00
+ */
+public enum TransTypeEnum {
+
+    WECHAT(1, "微信"),
+    ALIPAY(2, "支付宝"),
+    FAST_PAYMENT(3, "快捷支付");
+
+    private Integer code;
+
+    private String description;
+
+    TransTypeEnum(Integer code, String description) {
+        this.code = code;
+        this.description = description;
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public void setCode(Integer code) {
+        this.code = code;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    /**
+     * 根据枚举值获取枚举信息
+     *
+     * @param code 枚举值
+     * @return 枚举信息
+     */
+    public static String getDescriptionByCode(Integer code) {
+        return Arrays.stream(TransTypeEnum.values())
+                .filter(billStatusEnum -> billStatusEnum.getCode().equals(code))
+                .findFirst()
+                .map(TransTypeEnum::getDescription).orElse(null);
+    }
+}

+ 41 - 0
mec-student/src/main/java/com/ym/mec/student/controller/StudentCourseScheduleController.java

@@ -0,0 +1,41 @@
+package com.ym.mec.student.controller;
+
+import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
+import com.ym.mec.biz.service.CourseScheduleService;
+import com.ym.mec.biz.service.StudentAttendanceService;
+import com.ym.mec.common.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/24
+ */
+@RequestMapping("studentCourseSchedule")
+@Api(tags = "课程计划服务")
+@RestController
+public class StudentCourseScheduleController extends BaseController {
+
+    @Autowired
+    private CourseScheduleService scheduleService;
+    @Autowired
+    private StudentAttendanceService studentAttendanceService;
+
+    @ApiOperation(value = "课时调整")
+    @PostMapping(value = "/classStartDateAdjust",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public Object classStartDateAdjust(ClassDateAdjustDto classDateAdjustDto){
+        scheduleService.classStartDateAdjust(classDateAdjustDto);
+        return succeed();
+    }
+
+    @ApiOperation(value = "课时交换")
+    @GetMapping(value = "/courseSwap",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public Object courseSwap(Long courseScheduleId1,Long courseScheduleId2){
+        scheduleService.courseSwap(courseScheduleId1,courseScheduleId2);
+        return succeed();
+    }
+
+}

+ 16 - 0
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -8,6 +9,7 @@ import java.util.Date;
 import java.util.List;
 
 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.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -85,4 +87,18 @@ public class CourseScheduleController extends BaseController {
         return succeed(studentAttendanceService.getCurrentCourseStudents(queryInfo));
     }
 
+    @ApiOperation(value = "课时调整")
+    @PostMapping(value = "/classStartDateAdjust",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public Object classStartDateAdjust(ClassDateAdjustDto classDateAdjustDto){
+        scheduleService.classStartDateAdjust(classDateAdjustDto);
+        return succeed();
+    }
+
+    @ApiOperation(value = "课时交换")
+    @GetMapping(value = "/courseSwap",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public Object courseSwap(Long courseScheduleId1,Long courseScheduleId2){
+        scheduleService.courseSwap(courseScheduleId1,courseScheduleId2);
+        return succeed();
+    }
+
 }

+ 14 - 0
mec-web/src/main/java/com/ym/mec/web/controller/education/EmployeeController.java

@@ -1,5 +1,7 @@
 package com.ym.mec.web.controller.education;
 
+import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.entity.Teacher;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
@@ -41,4 +43,16 @@ public class EmployeeController extends BaseController {
         employeeService.employeeOperate(employeeId,operate);
         return succeed();
     }
+
+    @ApiOperation(value = "新增员工")
+    @PostMapping("/add")
+    public Object add(Employee employee) {
+        try {
+            employeeService.add(employee);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return failed(e.getMessage());
+        }
+        return succeed();
+    }
 }

+ 28 - 0
mec-web/src/test/java/com/ym/Test.java

@@ -0,0 +1,28 @@
+package com.ym;
+
+import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import org.springframework.beans.BeanUtils;
+
+import java.util.Date;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/24
+ */
+public class Test {
+
+    @org.junit.Test
+    public void test1(){
+        ClassDateAdjustDto temp=new ClassDateAdjustDto();
+        temp.setClassDate(new Date());
+        temp.setWeekNum(1);
+        temp.setId(1L);
+        CourseSchedule courseSchedule=new CourseSchedule();
+//        courseSchedule=temp;
+        BeanUtils.copyProperties(temp,courseSchedule);
+        courseSchedule.setId(2L);
+        System.out.println(courseSchedule.getId());
+    }
+
+}