Forráskód Böngészése

Merge remote-tracking branch 'origin/master'

Joburgess 5 éve
szülő
commit
8069dad21e

+ 18 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -1,18 +1,20 @@
 package com.ym.mec.biz.dal.dao;
 
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ibatis.annotations.Param;
+
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
 import com.ym.mec.biz.dal.dto.TeacherClassCourseSchudeleDto;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.biz.dal.entity.StudentCourseScheduleRecordDto;
 import com.ym.mec.biz.dal.enums.CourseStatusEnum;
 import com.ym.mec.common.dal.BaseDAO;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
 
 public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
@@ -359,4 +361,15 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @return
      */
     List<CourseSchedule> findCourseScheduleByClassGroupIdAndDate(@Param("classGroupId") Integer classGroupId, @Param("startDate") Date startDate, @Param("endDate") Date endDate);
+    
+    /**
+     * 根据时间范围查询老师指定类型的课程列表
+     * @param teacherId 老师编号
+     * @param type 课程类型 (如果为null,查询所有类型)
+     * @param startTime 开始时间
+     * @param endTime 结束时间
+     * @return
+     */
+	List<CourseSchedule> queryTeacherCourseScheduleListByTimeRangeAndType(@Param("teacherId") Integer teacherId, @Param("type") CourseScheduleType type,
+			@Param("startTime") Date startTime, @Param("endTime") Date endTime);
 }

+ 110 - 100
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java

@@ -14,104 +14,114 @@ import java.util.Map;
 
 public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistration> {
 
-	/**
-	 * 获取乐团学员报名详情
-	 *
-	 * @param params
-	 * @return
-	 */
-	List<StudentApplyDetailDto> queryStudentDetailPage(Map<String, Object> params);
-
-	/**
-	 * 获取乐团学员报名详情条数
-	 *
-	 * @param params
-	 * @return
-	 */
-	int queryStudentDetailCount(Map<String, Object> params);
-
-	/**
-	 * 根据乐团编号和声部获取缴费学员人数
-	 *
-	 * @param musicGroupId
-	 * @return
-	 */
-	List<Map<Integer, Integer>> countPayNum(@Param("musicGroupId") String musicGroupId);
-
-	/**
-	 * 学生报名缴费金额详情
-	 *
-	 * @param studentId
-	 * @param musicGroupId
-	 * @return
-	 */
-	StudentFeeDto queryFeeDetail(Integer studentId, String musicGroupId);
-
-	/**
-	 * 获取乐团声部未分配的班级的学生
-	 *
-	 * @param musicGroupId    乐团id
-	 * @param actualSubjectId 科目id
-	 * @return
-	 */
-	List<StudentRegistration> getNoClassStuBySubjectId(@Param("musicGroupId") String musicGroupId, @Param("actualSubjectId") String actualSubjectId);
-
-	/**
-	 * 获取乐团声部未分配学生数
-	 *
-	 * @param musicGroupId
-	 * @return
-	 */
-	List<Map<Integer, Long>> getNoClassStuCountBySubjectId(@Param("musicGroupId") String musicGroupId);
-
-	/**
-	 * 根据乐团id和user_id 更新
-	 *
-	 * @param studentRegistration
-	 * @return
-	 */
-	Integer updateByUserIdAndMusicGroupId(@Param("studentRegistration") StudentRegistration studentRegistration);
-
-	/**
-	 * 查询学生信息
-	 *
-	 * @param userId
-	 * @return
-	 */
-	StudentInfo queryStudentInfo(Integer userId);
-
-	/**
-	 * 查询用户指定乐团的报名信息
-	 *
-	 * @param userId       用户编号
-	 * @param musicGroupId 乐团编号
-	 * @return
-	 */
-	StudentRegistration queryByUserIdAndMusicGroupId(@Param("userId") Integer userId, @Param("musicGroupId") String musicGroupId);
-
-
-	/**
-	 * 查询手机是否已注册
-	 *
-	 * @param musicGroupId
-	 * @param parentsPhone
-	 * @return
-	 */
-	StudentRegistration getByPhoneAndMusicGroupId(@Param("musicGroupId") String musicGroupId, @Param("parentsPhone") String parentsPhone);
-
-	/**
-	 * 查询用户是否存在
-	 *
-	 * @param phone
-	 * @return
-	 */
-	SysUser getSysUserByPhone(String phone);
-
-	/**
-	 * 获取班级学生
-	 * @param musicGroupId
-	 * @param classGroupId
-	 * @return
-	 */
-	List<StudentRegistration> findClassGroupStu(@Param("musicGroupId") String musicGroupId, @Param("classGroupId") Integer classGroupId);
+    /**
+     * 获取乐团学员报名详情
+     *
+     * @param params
+     * @return
+     */
+    List<StudentApplyDetailDto> queryStudentDetailPage(Map<String, Object> params);
+
+    /**
+     * 获取乐团学员报名详情条数
+     *
+     * @param params
+     * @return
+     */
+    int queryStudentDetailCount(Map<String, Object> params);
+
+    /**
+     * 根据乐团编号和声部获取缴费学员人数
+     *
+     * @param musicGroupId
+     * @return
+     */
+    List<Map<Integer, Integer>> countPayNum(@Param("musicGroupId") String musicGroupId);
+
+    /**
+     * 学生报名缴费金额详情
+     *
+     * @param studentId
+     * @param musicGroupId
+     * @return
+     */
+    StudentFeeDto queryFeeDetail(Integer studentId, String musicGroupId);
+
+    /**
+     * 获取乐团声部未分配的班级的学生
+     *
+     * @param musicGroupId    乐团id
+     * @param actualSubjectId 科目id
+     * @return
+     */
+    List<StudentRegistration> getNoClassStuBySubjectId(@Param("musicGroupId") String musicGroupId, @Param("actualSubjectId") String actualSubjectId);
+
+    /**
+     * 获取乐团声部未分配学生数
+     *
+     * @param musicGroupId
+     * @return
+     */
+    List<Map<Integer, Long>> getNoClassStuCountBySubjectId(@Param("musicGroupId") String musicGroupId);
+
+    /**
+     * 根据乐团id和user_id 更新
+     *
+     * @param studentRegistration
+     * @return
+     */
+    Integer updateByUserIdAndMusicGroupId(@Param("studentRegistration") StudentRegistration studentRegistration);
+
+    /**
+     * 查询学生信息
+     *
+     * @param userId
+     * @return
+     */
+    StudentInfo queryStudentInfo(Integer userId);
+
+    /**
+     * 查询用户指定乐团的报名信息
+     *
+     * @param userId       用户编号
+     * @param musicGroupId 乐团编号
+     * @return
+     */
+    StudentRegistration queryByUserIdAndMusicGroupId(@Param("userId") Integer userId, @Param("musicGroupId") String musicGroupId);
+
+
+    /**
+     * 查询手机是否已注册
+     *
+     * @param musicGroupId
+     * @param parentsPhone
+     * @return
+     */
+    StudentRegistration getByPhoneAndMusicGroupId(@Param("musicGroupId") String musicGroupId, @Param("parentsPhone") String parentsPhone);
+
+    /**
+     * 查询用户是否存在
+     *
+     * @param phone
+     * @return
+     */
+    SysUser getSysUserByPhone(String phone);
+
+    /**
+     * 获取班级学生
+     *
+     * @param musicGroupId
+     * @param classGroupId
+     * @return
+     */
+    List<StudentRegistration> findClassGroupStu(@Param("musicGroupId") String musicGroupId, @Param("classGroupId") Integer classGroupId);
+
+    /**
+     * 查询乐团的学生
+     *
+     * @param musicGroupId
+     * @param actualSubjectId
+     * @return
+     */
+    List<StudentRegistration> findMusicGroupStudent(@Param("musicGroupId") String musicGroupId, @Param("actualSubjectId") Integer actualSubjectId);
 }

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroup.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.entity;
 
 import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
+import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 
 import io.swagger.annotations.ApiModelProperty;
@@ -58,6 +59,9 @@ public class MusicGroup {
 	
 	@ApiModelProperty(value = "课程形态",required = false)
 	private String courseForm;
+
+	@ApiModelProperty(value = "老师课酬结算方式",required = false)
+	private SalarySettlementTypeEnum settlementType;
 	
 	/**  */
 	private java.util.Date createTime;
@@ -344,6 +348,14 @@ public class MusicGroup {
 		this.operatorUserId = operatorUserId;
 	}
 
+	public SalarySettlementTypeEnum getSettlementType() {
+		return settlementType;
+	}
+
+	public void setSettlementType(SalarySettlementTypeEnum settlementType) {
+		this.settlementType = settlementType;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherLeaveRecord.java

@@ -168,4 +168,27 @@ public class TeacherLeaveRecord {
 		return ToStringBuilder.reflectionToString(this);
 	}
 
+
+	public class CoursesScheduleHistory{
+	
+	private CourseSchedule before;
+	
+	private CourseSchedule after;
+
+	public CourseSchedule getBefore() {
+		return before;
+	}
+
+	public void setBefore(CourseSchedule before) {
+		this.before = before;
+	}
+
+	public CourseSchedule getAfter() {
+		return after;
+	}
+
+	public void setAfter(CourseSchedule after) {
+		this.after = after;
+	}
+}
 }

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java

@@ -148,4 +148,13 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
 	 */
 	StudentPaymentOrder updateApplyOrder(StudentPaymentOrder studentPaymentOrder);
 
+	/**
+	 * 获取乐团科目的学生
+	 *
+	 * @param musicGroupId    乐团id
+	 * @param actualSubjectId 科目id
+	 * @return
+	 */
+	List<StudentRegistration> getMusicGroupStu(String musicGroupId, Integer actualSubjectId);
+
 }

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

@@ -1,8 +1,26 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.TeacherLeaveRecord;
+import com.ym.mec.biz.dal.enums.AuditStatusEnum;
 import com.ym.mec.common.service.BaseService;
 
 public interface TeacherLeaveRecordService extends BaseService<Long, TeacherLeaveRecord> {
 
+	/**
+	 * 请假
+	 * @param userId
+	 * @param teacherLeaveRecord
+	 * @return
+	 */
+	public boolean askForLeave(Integer userId, TeacherLeaveRecord teacherLeaveRecord);
+
+	/**
+	 * 审批
+	 * @param id 记录编号
+	 * @param userId 审批人编号
+	 * @param status 审批状态
+	 * @param remark 备注
+	 * @return
+	 */
+	public boolean approve(Long id, Integer userId, AuditStatusEnum status, String remark);
 }

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -447,4 +447,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
         return studentPaymentOrder;
     }
+
+    @Override
+    public List<StudentRegistration> getMusicGroupStu(String musicGroupId, Integer actualSubjectId) {
+        return studentRegistrationDao.findMusicGroupStudent(musicGroupId,actualSubjectId);
+    }
 }

+ 62 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherLeaveRecordServiceImpl.java

@@ -1,17 +1,28 @@
 package com.ym.mec.biz.service.impl;
 
+import java.util.Date;
+import java.util.List;
+
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
 import com.ym.mec.biz.dal.dao.TeacherLeaveRecordDao;
 import com.ym.mec.biz.dal.entity.TeacherLeaveRecord;
+import com.ym.mec.biz.dal.entity.TeacherLeaveRecord.CoursesScheduleHistory;
+import com.ym.mec.biz.dal.enums.AuditStatusEnum;
 import com.ym.mec.biz.service.TeacherLeaveRecordService;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.util.date.DateUtil;
+import com.ym.mec.util.json.JsonUtil;
 
 @Service
-public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, TeacherLeaveRecord>  implements TeacherLeaveRecordService {
-	
+public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, TeacherLeaveRecord> implements TeacherLeaveRecordService {
+
 	@Autowired
 	private TeacherLeaveRecordDao teacherLeaveRecordDao;
 
@@ -19,5 +30,53 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
 	public BaseDAO<Long, TeacherLeaveRecord> getDAO() {
 		return teacherLeaveRecordDao;
 	}
-	
+
+	@Override
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+	public boolean askForLeave(Integer userId, TeacherLeaveRecord teacherLeaveRecord) {
+
+		Date date = new Date();
+
+		teacherLeaveRecord.setUserId(userId);
+		teacherLeaveRecord.setUpdateTime(date);
+		teacherLeaveRecord.setCreateTime(date);
+		teacherLeaveRecord.setStatus(AuditStatusEnum.ING);
+		teacherLeaveRecord.setDays(DateUtil.hoursBetween(teacherLeaveRecord.getStartTime(), teacherLeaveRecord.getEndTime()) / 8d);
+
+		teacherLeaveRecordDao.insert(teacherLeaveRecord);
+		return true;
+	}
+
+	@Override
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+	public boolean approve(Long id, Integer userId, AuditStatusEnum status, String remark) {
+
+		TeacherLeaveRecord teacherLeaveRecord = teacherLeaveRecordDao.get(id);
+		if (teacherLeaveRecord == null) {
+			throw new BizException("请假记录不存在");
+		}
+
+		if (teacherLeaveRecord.getStatus() != AuditStatusEnum.ING || status == AuditStatusEnum.ING) {
+			throw new BizException("审批状态不正确");
+		}
+
+		teacherLeaveRecord.setStatus(status);
+		teacherLeaveRecord.setRemark(remark);
+
+		teacherLeaveRecordDao.update(teacherLeaveRecord);
+
+		if (StringUtils.isNotBlank(teacherLeaveRecord.getCoursesScheduleJson())) {
+			List<CoursesScheduleHistory> coursesScheduleHistoryList = JsonUtil.parseArray(teacherLeaveRecord.getCoursesScheduleJson(),
+					CoursesScheduleHistory.class);
+
+			if (coursesScheduleHistoryList != null && coursesScheduleHistoryList.size() > 0) {
+				for (CoursesScheduleHistory his : coursesScheduleHistoryList) {
+					//课时调整
+					
+				}
+			}
+		}
+
+		return true;
+	}
 }

+ 1 - 1
mec-biz/src/main/resources/config/contracts/courses.ftl

@@ -94,7 +94,7 @@
                     <span>所在声部:${studentInfo.subject.name!}</span>
                 </div>
             </div>
-        </div>
+        
             (本协议中“乙方“指学员及家长;”乙方学员“仅指参加甲方课程的学员;”乙方家长“仅指乙方学员的法定监护人。)
         </div>
         为进一步提升器乐教学质量和服务品质,保证学员学习进度,明确培训各方的权责,经甲、乙双方协商一致,特订立本协议,以便共同遵守。

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

@@ -894,4 +894,11 @@
     <select id="findCourseScheduleByClassGroupIdAndDate" resultMap="CourseSchedule">
         <![CDATA[ SELECT * FROM course_schedule WHERE class_group_id_=#{classGroupId} AND class_date_ >= #{startDate} AND  class_date_ <=#{endDate} ]]>
     </select>
+    
+    <select id="queryTeacherCourseScheduleListByTimeRangeAndType" resultMap="CourseSchedule" parameterType="map">
+        SELECT * FROM course_schedule WHERE teacher_id_=#{teacherId} and CONCAT( class_date_, ' ', start_class_time_ ) between #{startTime} and #{endTime}
+        <if test="type != null">
+        and type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        </if>
+    </select>
 </mapper>

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

@@ -26,6 +26,7 @@
 		<result column="parent_meeting_time_" property="parentMeetingTime" />
 		<result column="img_" property="img" />
 		<result column="director_user_id_" property="directorUserId" />
+		<result column="settlement_type_" property="settlementType" />
 	</resultMap>
 
 	<!-- 根据主键查询一条记录 -->
@@ -119,6 +120,9 @@
 			<if test="directorUserId != null">
 				director_user_id_ = #{directorUserId},
 			</if>
+			<if test="settlementType != null">
+				settlement_type = #{settlementType},
+			</if>
 		</set>
 		WHERE id_ = #{id}
 	</update>

+ 23 - 10
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -30,7 +30,7 @@
                 typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="music_group_status_" property="musicGroupStatus"/>
     </resultMap>
-    
+
     <resultMap type="com.ym.mec.biz.dal.dto.StudentInfo" id="StudentInfo">
         <result column="id_" property="id"/>
         <result column="username_" property="username"/>
@@ -198,7 +198,8 @@
     </resultMap>
     <select id="queryStudentDetailPage" resultMap="studentApplyDetail">
         SELECT sr.name_ username_,sr.parents_name_,sr.current_class_,sr.current_grade_,
-        su.gender_,sr.is_allow_adjust_, s.name_ subject_name_,ss.name_ actual_subject_name_,sr.parents_phone_,sr.payment_status_
+        su.gender_,sr.is_allow_adjust_, s.name_ subject_name_,ss.name_
+        actual_subject_name_,sr.parents_phone_,sr.payment_status_
         FROM student_registration sr
         LEFT JOIN sys_user su ON sr.subject_id_ = su.id_
         LEFT JOIN `subject` s ON sr.subject_id_ = s.id_
@@ -231,7 +232,7 @@
         SELECT sr.* FROM student_registration sr
         WHERE sr.user_id_ NOT IN (
         SELECT DISTINCT cgsm.user_id_ FROM class_group_student_mapper cgsm
-        LEFT JOIN class_group cg ON cg.id_ =  cgsm.class_group_id_
+        LEFT JOIN class_group cg ON cg.id_ = cgsm.class_group_id_
         WHERE cg.music_group_id_ = #{musicGroupId})
         AND sr.music_group_id_ = #{musicGroupId}
         <if test="actualSubjectId != null">
@@ -244,21 +245,23 @@
         SELECT COUNT(DISTINCT sr.user_id_) `value`,sr.actual_subject_id_ `key` FROM student_registration sr
         WHERE sr.user_id_ NOT IN (
         SELECT DISTINCT cgsm.user_id_ FROM class_group_student_mapper cgsm
-        LEFT JOIN class_group cg ON cg.id_ =  cgsm.class_group_id_
+        LEFT JOIN class_group cg ON cg.id_ = cgsm.class_group_id_
         WHERE cg.music_group_id_ = #{musicGroupId})
         AND sr.music_group_id_ = #{musicGroupId} GROUP BY sr.actual_subject_id_
     </select>
 
     <update id="updateByUserIdAndMusicGroupId" parameterType="com.ym.mec.biz.dal.entity.StudentRegistration">
-        UPDATE student_registration SET class_group_id_ = #{studentRegistration.classGroupId} WHERE user_id_ = #{studentRegistration.userId} AND music_group_id_ = #{studentRegistration.musicGroupId}
+        UPDATE student_registration SET class_group_id_ = #{studentRegistration.classGroupId} WHERE user_id_ =
+        #{studentRegistration.userId} AND music_group_id_ = #{studentRegistration.musicGroupId}
     </update>
-    
+
     <select id="queryStudentInfo" resultMap="StudentInfo">
-        SELECT u.*,sr.name_,sr.current_class_,sr.current_grade_,sr.actual_subject_id_ FROM sys_user u left join student_registration  sr on u.id_ = sr.user_id_ where u.id_ = #{userId} order by sr.create_time_ desc limit 0,1
+        SELECT u.*,sr.name_,sr.current_class_,sr.current_grade_,sr.actual_subject_id_ FROM sys_user u left join
+        student_registration sr on u.id_ = sr.user_id_ where u.id_ = #{userId} order by sr.create_time_ desc limit 0,1
     </select>
-    
+
     <select id="queryByUserIdAndMusicGroupId" resultMap="StudentRegistration" parameterType="map">
-    	select * from student_registration where music_group_id_ = #{musicGroupId} and user_id_ = #{userId}
+        select * from student_registration where music_group_id_ = #{musicGroupId} and user_id_ = #{userId}
     </select>
 
     <!-- 根据乐团编号和手机号查询注册乐团注册信息-->
@@ -295,6 +298,16 @@
 
     <!-- 获取班级下的学生 -->
     <select id="findClassGroupStu" resultMap="StudentRegistration">
-        SELECT * FROM student_registration WHERE music_group_id_= #{musicGroupId} AND FIND_IN_SET(#{classGroupId},class_group_id_)
+        SELECT * FROM student_registration WHERE music_group_id_= #{musicGroupId} AND
+        FIND_IN_SET(#{classGroupId},class_group_id_)
+    </select>
+
+    <!-- 获取乐团的学生 -->
+    <select id="findMusicGroupStudent" resultMap="StudentRegistration">
+        SELECT * FROM student_registration WHERE music_group_id_ = #{musicGroup}
+        <if test="actualSubjectId != null and actualSubjectId !=''">
+            AND actual_subject_id_ = #{actualSubjectId}
+        </if>
+        AND payment_status_ = 1
     </select>
 </mapper>

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -237,7 +237,7 @@ public class MusicGroupController extends BaseController {
 
 
         IdWorker idWorker = new IdWorker(0, 0);
-        String orderNo = idWorker.nextId();
+        String orderNo = "1017"+idWorker.nextId();
 
         Map payMap = payService.getPayMap(orderAmount, orderNo, "https://pay.dayaedu.com/api/yqpay/notify", "http://dev.dayaedu.com", "测试订单", "测试订单");
 

+ 58 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherLeaveRecordController.java

@@ -0,0 +1,58 @@
+package com.ym.mec.teacher.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import java.util.Date;
+import java.util.Objects;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+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 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.entity.TeacherLeaveRecord;
+import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
+import com.ym.mec.biz.service.TeacherLeaveRecordService;
+import com.ym.mec.common.controller.BaseController;
+
+@Api(tags = "老师请假服务")
+@RequestMapping("teacherLeaveRecord")
+@RestController
+public class TeacherLeaveRecordController extends BaseController {
+
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
+
+	@Autowired
+	private CourseScheduleDao courseScheduleDao;
+
+	@Autowired
+	private TeacherLeaveRecordService teacherLeaveRecordService;
+
+	@ApiOperation(value = "查询vip课列表")
+	@GetMapping("/queryVipCourseScheduleList")
+	public Object queryVipCourseScheduleList(Date startTime, Date endTime) {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (Objects.isNull(sysUser)) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		return succeed(courseScheduleDao.queryTeacherCourseScheduleListByTimeRangeAndType(sysUser.getId(), CourseScheduleType.VIP, startTime, endTime));
+	}
+
+	@ApiOperation(value = "请假")
+	@PostMapping("/askForLeave")
+	public Object askForLeave(TeacherLeaveRecord teacherLeaveRecord) {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (Objects.isNull(sysUser)) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		teacherLeaveRecordService.askForLeave(sysUser.getId(), teacherLeaveRecord);
+		return succeed();
+	}
+}

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

@@ -56,7 +56,7 @@ public class StudentRegistrationController extends BaseController {
     @ApiOperation(value = "批量调剂学生报名专业")
     @PostMapping("/batchUpdateSubject")
     @PreAuthorize("@pcs.hasPermissions('studentRegistration/batchUpdateSubject')")
-    public Object batchUpdateSubject(String userId,Integer subId) {
+    public Object batchUpdateSubject(String userId, Integer subId) {
         if (StringUtils.isEmpty(userId) || subId == null) {
             return failed();
         }
@@ -75,7 +75,7 @@ public class StudentRegistrationController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('studentRegistration/queryFeeDetail')")
     @ApiImplicitParams({@ApiImplicitParam(name = "studentId", value = "学生编号", required = true, dataType = "Integer"),
             @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String")})
-    public Object queryFeeDetail(String studentId,String musicGroupId) {
+    public Object queryFeeDetail(String studentId, String musicGroupId) {
         if (StringUtils.isEmpty(studentId) || StringUtils.isEmpty(musicGroupId)) {
             return failed("参数校验异常");
         }
@@ -100,4 +100,13 @@ public class StudentRegistrationController extends BaseController {
         return succeed(studentRegistrationService.findClassGroupStu(musicGroupId, classGroupId));
     }
 
+    @ApiOperation(value = "获取乐团的学生")
+    @GetMapping("/getMusicGroupStu")
+    @PreAuthorize("@pcs.hasPermissions('studentRegistration/getMusicGroupStu')")
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "actualSubjectId", value = "科目(声部)id,", required = true, dataType = "int")})
+    public Object getMusicGroupStu(String musicGroupId, Integer actualSubjectId) {
+        return succeed(studentRegistrationService.getMusicGroupStu(musicGroupId, actualSubjectId));
+    }
+
 }