Browse Source

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

zouxuan 5 years ago
parent
commit
db5e07a94d

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

@@ -188,6 +188,21 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(@Param("classDate") Date classDate, @Param("teacherId") Long teacherId, @Param("type") String type);
 
     /**
+     * @describe 获取指定日期的课程
+     * @author Joburgess
+     * @date 2020/3/10
+     * @param teacherId: 教师编号
+     * @param classDate: 上课日期
+     * @param groupId:
+     * @param groupType:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleDto>
+     */
+    List<CourseScheduleDto> findCourseSchedulesWithDate(@Param("teacherId") Integer teacherId,
+                                                        @Param("classDate") Date classDate,
+                                                        @Param("groupId") String groupId,
+                                                        @Param("groupType") GroupType groupType);
+
+    /**
      * @param classDate:
      * @param teacherId:
      * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleDto>
@@ -299,6 +314,21 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<Date> getTeacherCourseScheduleDate(@Param("teacherId") Long teacherId, @Param("month") Date month, @Param("type") String type);
 
     /**
+     * @describe 获取在指定月份有课的日期
+     * @author Joburgess
+     * @date 2020/3/10
+     * @param teacherId: 教师编号
+     * @param month: 月份
+     * @param groupId: 课程组编号
+     * @param groupType: 课程组类型
+     * @return java.util.List<java.util.Date>
+     */
+    List<Date> findHaveClassesDatesWithMonth(@Param("teacherId") Integer teacherId,
+                                             @Param("month") Date month,
+                                             @Param("groupId") String groupId,
+                                             @Param("groupType") GroupType groupType);
+
+    /**
      * @param teacherId: 教师编号
      * @param month:     月份
      * @return java.util.List<java.util.Date>

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleEvaluateDao.java

@@ -50,9 +50,17 @@ public interface CourseScheduleEvaluateDao extends BaseDAO<Long, CourseScheduleE
 
     /**
      * 获取当前课程教师的评价列表
+     *
      * @param teacherId
      * @param courseScheduleId
      * @return
      */
     List<CourseScheduleEvaluate> findByCourseAndTeacher(@Param("teacherId") Integer teacherId, @Param("courseScheduleId") Long courseScheduleId);
+
+    /**
+     * 获取要提交的报告
+     * @param teacherId
+     * @return
+     */
+    List<CourseScheduleEvaluate> getNeedPostReports(@Param("teacherId") Integer teacherId);
 }

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleEvaluate.java

@@ -11,6 +11,9 @@ public class CourseScheduleEvaluate {
 
     private String musicGroupId;
 
+    @ApiModelProperty(value = "课程组名称")
+    private String groupName;
+
     @ApiModelProperty(value = "班级id")
     private Integer classGroupId;
 
@@ -64,6 +67,9 @@ public class CourseScheduleEvaluate {
     @ApiModelProperty(value = "报告提交或查看Url")
     private String reportLink;
 
+    @ApiModelProperty(value = "状态 1-已提交 0-未提交")
+    private Integer status;
+
     public String getStudentIdList() {
         return studentIdList;
     }
@@ -241,4 +247,20 @@ public class CourseScheduleEvaluate {
     public void setReportLink(String reportLink) {
         this.reportLink = reportLink;
     }
+
+    public String getGroupName() {
+        return groupName;
+    }
+
+    public void setGroupName(String groupName) {
+        this.groupName = groupName;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
 }

+ 9 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleEvaluateService.java

@@ -22,13 +22,20 @@ public interface CourseScheduleEvaluateService extends BaseService<Long, CourseS
      * @param groupId
      * @return
      */
-    List<CourseScheduleEvaluate> findByGroupId(@Param("groupId") Integer groupId);
+    List<CourseScheduleEvaluate> findByGroupId(Integer groupId);
 
     /**
      * 根据id获取报告
      *
      * @return
      */
-    CourseScheduleEvaluate findById(@Param("id") Integer id);
+    CourseScheduleEvaluate findById(Integer id);
+
+    /**
+     * 获取需评论的课程列表
+     * @param teacherId
+     * @return
+     */
+    List<CourseScheduleEvaluate> getNeedPostList(Integer teacherId);
 
 }

+ 37 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherCourseScheduleService.java

@@ -0,0 +1,37 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.dto.CourseScheduleDto;
+import com.ym.mec.biz.dal.enums.GroupType;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author Joburgess
+ * @Date 2020/3/10
+ **/
+public interface TeacherCourseScheduleService {
+
+    /**
+     * @describe 获取老师在指定月份有课的日期
+     * @author Joburgess
+     * @date 2020/3/10
+     * @param teacherId: 教师编号
+     * @param month: 月份
+     * @param groupType: 课程组类型
+     * @return java.util.List<java.util.Date>
+     */
+    List<Date> findTeacherHaveClassesDates(Integer teacherId, Date month, String groupId, GroupType groupType);
+
+    /**
+     * @describe 获取老师在指定日期的课程列表
+     * @author Joburgess
+     * @date 2020/3/10
+     * @param teacherId: 教师编号
+     * @param classDate: 上课日期
+     * @param groupType: 课程组类型
+     * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleDto>
+     */
+    List<CourseScheduleDto> findCourseSchedulesWithDate(Integer teacherId, Date classDate, String groupId, GroupType groupType);
+
+}

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleEvaluateServiceImpl.java

@@ -62,6 +62,7 @@ public class CourseScheduleEvaluateServiceImpl extends BaseServiceImpl<Long, Cou
             }
             courseScheduleEvaluate.setMusicGroupId(classGroup.getMusicGroupId());
             courseScheduleEvaluate.setCreateTime(new Date());
+            courseScheduleEvaluate.setStatus(1);
             long num = courseScheduleEvaluateDao.insert(courseScheduleEvaluate);
             if (num <= 0) {
                 throw new BizException("报告添加失败,请重试");
@@ -100,4 +101,9 @@ public class CourseScheduleEvaluateServiceImpl extends BaseServiceImpl<Long, Cou
     public CourseScheduleEvaluate findById(Integer id) {
         return courseScheduleEvaluateDao.findById(id);
     }
+
+    @Override
+    public List<CourseScheduleEvaluate> getNeedPostList(Integer teacherId) {
+        return courseScheduleEvaluateDao.getNeedPostReports(teacherId);
+    }
 }

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

@@ -854,7 +854,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         List<Long> courseScheduleIds = teacherCourseSchedulesWithDate.stream()
                 .filter(cs -> cs.getType().equals(CourseSchedule.CourseScheduleType.VIP) ||
                         cs.getType().equals(CourseSchedule.CourseScheduleType.DEMO) ||
-                        cs.getType().equals(CourseSchedule.CourseScheduleType.PRACTICE))
+                        cs.getType().equals(CourseSchedule.CourseScheduleType.PRACTICE) ||
+						cs.getType().equals(CourseScheduleType.COMM))
                 .map(CourseScheduleDto::getId).collect(Collectors.toList());
 
         Map<Integer, String> subjectNameCourseMap = new HashMap<>();

+ 1 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CoursesGroupServiceImpl.java

@@ -37,16 +37,10 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
     @Autowired
     private ClassGroupTeacherMapperDao classGroupTeacherMapperDao;
     @Autowired
-    private ClassGroupTeacherSalaryDao classGroupTeacherSalaryDao;
-    @Autowired
     private CourseScheduleDao courseScheduleDao;
     @Autowired
-    private StudentAttendanceDao studentAttendanceDao;
-    @Autowired
     private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
     @Autowired
-    private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
-    @Autowired
     private TeacherAttendanceDao teacherAttendanceDao;
     @Autowired
     private SubjectDao subjectDao;
@@ -78,7 +72,7 @@ public class CoursesGroupServiceImpl extends BaseServiceImpl<Long, CoursesGroup>
         if(Objects.isNull(courseCycleInfo.getCourseCreateStartTime())){
             throw new BizException("请填写课程开始时间");
         }
-        if(Objects.isNull(courseCycleInfo.getCourseTimes())){
+        if(Objects.isNull(courseCycleInfo.getCourseCount())){
             throw new BizException("请填写课程数量");
         }
 

+ 119 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherCourseScheduleServiceImpl.java

@@ -0,0 +1,119 @@
+package com.ym.mec.biz.service.impl;
+
+import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
+import com.ym.mec.biz.dal.dao.StudentAttendanceDao;
+import com.ym.mec.biz.dal.dao.SubjectDao;
+import com.ym.mec.biz.dal.dto.CourseScheduleDto;
+import com.ym.mec.biz.dal.dto.StudentNameAndPhoneDto;
+import com.ym.mec.biz.dal.entity.SysConfig;
+import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.service.SysConfigService;
+import com.ym.mec.biz.service.TeacherCourseScheduleService;
+import com.ym.mec.util.collection.MapUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @Author Joburgess
+ * @Date 2020/3/10
+ */
+@Service
+public class TeacherCourseScheduleServiceImpl implements TeacherCourseScheduleService {
+
+    @Autowired
+    private CourseScheduleDao courseScheduleDao;
+    @Autowired
+    private SubjectDao subjectDao;
+    @Autowired
+    private StudentAttendanceDao studentAttendanceDao;
+    @Autowired
+    private ClassGroupStudentMapperDao classGroupStudentMapperDao;
+    @Autowired
+    private SysConfigService sysConfigService;
+
+    @Override
+    public List<Date> findTeacherHaveClassesDates(Integer teacherId, Date month, String groupId, GroupType type) {
+        return courseScheduleDao.findHaveClassesDatesWithMonth(teacherId,month,groupId,type);
+    }
+
+    @Override
+    public List<CourseScheduleDto> findCourseSchedulesWithDate(Integer teacherId, Date classDate, String groupId, GroupType groupType) {
+        Date now = new Date();
+        if(Objects.isNull(classDate)){
+            classDate=now;
+        }
+        List<CourseScheduleDto> teacherCourseSchedulesWithDate = courseScheduleDao.findCourseSchedulesWithDate(teacherId,classDate,groupId,groupType);
+        List<Long> allCourseScheduleIds = teacherCourseSchedulesWithDate.stream().map(CourseScheduleDto::getId).collect(Collectors.toList());
+        List<Long> courseScheduleIds = teacherCourseSchedulesWithDate.stream().map(CourseScheduleDto::getId).collect(Collectors.toList());
+
+        Map<Integer, String> subjectNameCourseMap = new HashMap<>();
+        Map<Integer, String> subjectIdCourseMap = new HashMap<>();
+        if (!CollectionUtils.isEmpty(courseScheduleIds)) {
+            List<Map<Integer, String>> subjectNameCourseMaps = subjectDao.findSubjectNameCourseMaps(courseScheduleIds);
+            List<Map<Integer, String>> subjectIdCourseMaps = subjectDao.findClassGroupSubjectId(courseScheduleIds);
+            subjectNameCourseMap = MapUtil.convertMybatisMap(subjectNameCourseMaps);
+            subjectIdCourseMap = MapUtil.convertMybatisMap(subjectIdCourseMaps);
+        }
+        List<Map<Integer, Integer>> studentNumCourseMaps = null;
+        if (!CollectionUtils.isEmpty(allCourseScheduleIds)) {
+            studentNumCourseMaps = studentAttendanceDao.countStudentAttendancesByCourses(allCourseScheduleIds);
+        }
+        Map<Integer, Long> studentNumCourseMap = new HashMap<>();
+        if (Objects.nonNull(studentNumCourseMaps)) {
+            studentNumCourseMap = MapUtil.convertIntegerMap(studentNumCourseMaps);
+        }
+
+        if(CollectionUtils.isEmpty(teacherCourseSchedulesWithDate)){
+            return teacherCourseSchedulesWithDate;
+        }
+
+        List<Integer> classGroupIds = teacherCourseSchedulesWithDate.stream().map(CourseScheduleDto::getClassGroupId).collect(Collectors.toList());
+        List<Map<Integer, Integer>> classGroupStudentNumMaps = classGroupStudentMapperDao.countClassGroupsStudentNum(classGroupIds, ClassGroupStudentStatusEnum.NORMAL);
+        Map<Integer, Long> classGroupStudentNumMap = MapUtil.convertIntegerMap(classGroupStudentNumMaps);
+
+        SysConfig advanceLeaveHoursConfig = sysConfigService.findByParamName(SysConfigService.ADVANCE_LEAVE_HOURS);
+        Integer advanceLeaveHours=advanceLeaveHoursConfig.getParanValue(Integer.class);
+        List<Map<Long, Integer>> courseLeaveStudentNumMaps = studentAttendanceDao.countCourseLeaveStudentNumWithFourHoursAgo(allCourseScheduleIds, advanceLeaveHours);
+        Map<Long,Long> courseLeaveStudentNumMap = MapUtil.convertIntegerMap((courseLeaveStudentNumMaps));
+
+        for (CourseScheduleDto courseScheduleDto : teacherCourseSchedulesWithDate) {
+            Long studentNum = studentNumCourseMap.get(courseScheduleDto.getId());
+            if (Objects.nonNull(studentNum)) {
+                courseScheduleDto.setStudentAttendanceIsFirstTime(studentNum > 0 ? 0 : 1);
+            } else {
+                courseScheduleDto.setStudentAttendanceIsFirstTime(1);
+            }
+
+            if (now.before(courseScheduleDto.getStartClassTime())) {
+                courseScheduleDto.setStatus(CourseStatusEnum.NOT_START);
+            } else if (now.after(courseScheduleDto.getEndClassTime())) {
+                courseScheduleDto.setStatus(CourseStatusEnum.OVER);
+            } else {
+                courseScheduleDto.setStatus(CourseStatusEnum.UNDERWAY);
+            }
+            if (Objects.nonNull(courseScheduleDto.getClassGroupId())) {
+                List<StudentNameAndPhoneDto> courseStudentNameAndPhone = classGroupStudentMapperDao.findCourseStudentNameAndPhone(courseScheduleDto.getId().intValue());
+                if(!CollectionUtils.isEmpty(courseStudentNameAndPhone)){
+                    List<String> studentNames = courseStudentNameAndPhone.stream().map(StudentNameAndPhoneDto::getUserName).collect(Collectors.toList());
+                    courseScheduleDto.setStudentNames(org.apache.commons.lang3.StringUtils.join(studentNames, ","));
+                    courseScheduleDto.setStudents(courseStudentNameAndPhone);
+                }
+            }
+            courseScheduleDto.setSubjectName(subjectNameCourseMap.get(courseScheduleDto.getId()));
+            courseScheduleDto.setSubjectId(subjectIdCourseMap.get(courseScheduleDto.getId()));
+            Long leaveStudentNum = courseLeaveStudentNumMap.get(courseScheduleDto.getId());
+            Long normalStudentNum = classGroupStudentNumMap.get(courseScheduleDto.getClassGroupId());
+            if(Objects.nonNull(leaveStudentNum)&&Objects.nonNull(normalStudentNum)&&leaveStudentNum.intValue()==normalStudentNum.intValue()){
+                courseScheduleDto.setEnableAdjustInToday(1);
+            }
+        }
+        return teacherCourseSchedulesWithDate;
+    }
+}

+ 43 - 22
mec-biz/src/main/resources/config/mybatis/CourseScheduleEvaluateMapper.xml

@@ -18,20 +18,26 @@
         <result column="song_" jdbcType="VARCHAR" property="song"/>
         <result column="teaching_material_" jdbcType="VARCHAR" property="teachingMaterial"/>
         <result column="version_" jdbcType="INTEGER" property="version"/>
-		<result column="student_id_list_" jdbcType="VARCHAR" property="studentIdList"/>
+        <result column="student_id_list_" jdbcType="VARCHAR" property="studentIdList"/>
+        <result column="group_name_" jdbcType="VARCHAR" property="groupName"/>
+        <result column="status_" jdbcType="TINYINT" property="status"/>
     </resultMap>
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleEvaluate" useGeneratedKeys="true"
             keyColumn="id" keyProperty="id">
-        INSERT INTO course_schedule_evaluate (music_group_id_, class_group_id_, course_schedule_id_,music_theory_,song_,
-        teaching_material_,teacher_id_, item_, comment_,create_time_,student_id_list_,version_)
+        INSERT INTO course_schedule_evaluate (music_group_id_, class_group_id_, course_schedule_id_, music_theory_,
+                                              song_,
+                                              teaching_material_, teacher_id_, item_, comment_, create_time_,
+                                              student_id_list_, version_, status_)
         values (#{musicGroupId,jdbcType=VARCHAR}, #{classGroupId,jdbcType=INTEGER}, #{courseScheduleId,jdbcType=BIGINT},
-                #{musicTheory,jdbcType=VARCHAR},#{song,jdbcType=VARCHAR},#{teachingMaterial,jdbcType=VARCHAR},#{teacherId,jdbcType=INTEGER},
-        #{item,jdbcType=VARCHAR}, #{comment,jdbcType=LONGVARCHAR},
-                NOW(),#{studentIdList},#{version,jdbcType=INTEGER})
+                #{musicTheory,jdbcType=VARCHAR}, #{song,jdbcType=VARCHAR}, #{teachingMaterial,jdbcType=VARCHAR},
+                #{teacherId,jdbcType=INTEGER}, #{item,jdbcType=VARCHAR}, #{comment,jdbcType=LONGVARCHAR}, NOW(),
+                #{studentIdList}, #{version,jdbcType=INTEGER}, #{status,jdbcType=TINYINT})
     </insert>
 
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleEvaluate">
-        update course_schedule_evaluate set is_pushed_=#{isPushed} where id_=#{id}
+        update course_schedule_evaluate
+        set is_pushed_=#{isPushed}
+        where id_ = #{id}
     </update>
 
     <select id="findByClassGroupId" resultMap="CourseScheduleEvaluate">
@@ -39,7 +45,9 @@
         FROM course_schedule_evaluate cse
                  LEFT JOIN practice_group pg ON pg.id_ = cse.music_group_id_
                  LEFT JOIN subject s on s.id_ = pg.subject_id_
-        WHERE cse.class_group_id_ = #{classGroupId} ORDER BY create_time_ DESC LIMIT 1
+        WHERE cse.class_group_id_ = #{classGroupId}
+        ORDER BY create_time_ DESC
+        LIMIT 1
     </select>
 
     <select id="findByClassGroupIds" resultMap="CourseScheduleEvaluate">
@@ -91,7 +99,7 @@
 
     <!-- 已完成课程数统计 -->
     <select id="getOrganPracticeGroups" resultMap="PracticeGroupsOrgan">
-        SELECT COUNT(class_group_id_) buy_nums_,cg.total_class_times_ total_nums_, pg.organ_id_
+        SELECT COUNT(class_group_id_) buy_nums_, cg.total_class_times_ total_nums_, pg.organ_id_
         FROM course_schedule cs
                  LEFT JOIN class_group cg on cg.id_ = cs.class_group_id_
                  LEFT JOIN practice_group pg ON cs.music_group_id_ = pg.id_
@@ -105,35 +113,48 @@
 
     <!-- 成交金额 -->
     <select id="getOrganMoney" resultMap="PracticeGroupsOrgan">
-        SELECT SUM(actual_amount_) total_money_,organ_id_ FROM student_payment_order
-        WHERE group_type_='PRACTICE' AND status_='SUCCESS'
+        SELECT SUM(actual_amount_) total_money_, organ_id_
+        FROM student_payment_order
+        WHERE group_type_ = 'PRACTICE'
+          AND status_ = 'SUCCESS'
         GROUP BY organ_id_
     </select>
     <select id="findExpiredDateBeforeReport" resultMap="CourseScheduleEvaluate">
-      SELECT * FROM course_schedule_evaluate
-      WHERE create_time_ &lt;= #{expiredDate}
-      AND (is_pushed_ = 0 OR is_pushed_ IS NULL)
+        SELECT *
+        FROM course_schedule_evaluate
+        WHERE create_time_ &lt;= #{expiredDate}
+          AND (is_pushed_ = 0 OR is_pushed_ IS NULL)
     </select>
 
     <select id="findByGroupId" resultMap="CourseScheduleEvaluate">
-        SELECT id_,DATE_FORMAT(create_time_, '%Y年%m月') month_ FROM course_schedule_evaluate WHERE music_group_id_ = #{groupId}
+        SELECT id_, DATE_FORMAT(create_time_, '%Y年%m月') month_
+        FROM course_schedule_evaluate
+        WHERE music_group_id_ = #{groupId}
         ORDER BY create_time_ ASC
     </select>
 
     <select id="findById" resultMap="CourseScheduleEvaluate">
         SELECT cse.*, s.name_ subject_name_, pg.student_id_
         FROM course_schedule_evaluate cse
-        LEFT JOIN practice_group pg ON pg.id_ = cse.music_group_id_
-        LEFT JOIN subject s on s.id_ = pg.subject_id_
+                 LEFT JOIN practice_group pg ON pg.id_ = cse.music_group_id_
+                 LEFT JOIN subject s on s.id_ = pg.subject_id_
         WHERE cse.id_ = #{id}
     </select>
 
     <select id="findByCourseAndTeacher" resultMap="CourseScheduleEvaluate">
-        SELECT * FROM course_schedule_evaluate cse
-        WHERE cse.teacher_id_ = #{teacherId} AND cse.course_schedule_id_ = #{courseScheduleId}
+        SELECT *
+        FROM course_schedule_evaluate cse
+        WHERE cse.teacher_id_ = #{teacherId}
+          AND cse.course_schedule_id_ = #{courseScheduleId}
     </select>
 
-<!--    <select id="getNeedReports" resultMap="CourseScheduleEvaluate">-->
-
-<!--    </select>-->
+    <select id="getNeedPostReports" resultMap="CourseScheduleEvaluate">
+        SELECT cse.id_,DATE_FORMAT(cse.create_time_,'%Y年%m月') month_,pg.name_ group_name_ FROM course_schedule_evaluate
+        cse
+        LEFT JOIN practice_group pg on cse.music_group_id_ = pg.id_ WHERE status_= 0
+        <if test="teacherId != null">
+            AND cse.teacher_id_ = #{teacherId}
+        </if>
+        ORDER BY cse.create_time_ ASC
+    </select>
 </mapper>

+ 76 - 3
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -623,6 +623,51 @@
         ORDER BY start_class_time_
     </select>
 
+    <select id="findCourseSchedulesWithDate" resultMap="courseScheduleDto">
+        SELECT
+            cs.id_ seal_class_id_,
+            cg.name_,
+            su.real_name_ teacher_name_,
+            cs.type_,
+            cs.id_,
+            cs.class_group_id_,
+            cs.class_date_,
+            CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
+            CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
+            cs.status_,
+            cs.teacher_id_,
+            cs.actual_teacher_id_,
+            cg.expect_student_num_,
+            cs.schoole_id_,
+            s.name_ school_name_,
+            if(ta.sign_in_status_ IS NULL,0,1) sign_in_status_,
+            if(ta.sign_out_status_ IS NULL,0,1) sign_out_status_,
+            cs.teach_mode_
+        FROM
+            course_schedule cs
+            LEFT JOIN sys_user su ON cs.actual_teacher_id_ = su.id_
+            LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
+            LEFT JOIN school s ON cs.schoole_id_ = s.id_
+            LEFT JOIN teacher_attendance ta ON cs.id_=ta.course_schedule_id_ AND ta.teacher_id_=#{teacherId}
+        WHERE
+        (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
+        AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
+        <if test="teacherId!=null">
+            AND cs.actual_teacher_id_=#{teacherId}
+        </if>
+        <if test="classDate!=null">
+            AND cs.class_date_ = DATE_FORMAT(#{classDate},'%Y-%m-%d')
+        </if>
+        <if test="groupId!=null">
+            AND cs.music_group_id_=#{groupId}
+        </if>
+        <if test="type!=null and type!=''">
+            AND cs.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        </if>
+        AND cg.del_flag_ = 0
+        ORDER BY start_class_time_
+    </select>
+
     <select id="getTeacherHistoryCourseSchedulesWithDate" resultMap="courseScheduleDto">
         SELECT cs.id_                                            seal_class_id_,
                cg.name_,
@@ -795,13 +840,13 @@
 
     <select id="getTeacherCourseScheduleDate" resultType="java.util.Date">
         SELECT
-        cs.class_date_
+          cs.class_date_
         FROM
-        course_schedule_teacher_salary csts
+          course_schedule_teacher_salary csts
         LEFT JOIN course_schedule cs ON csts.course_schedule_id_=cs.id_
         LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
         WHERE
-        (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
+          (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
         AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
         AND csts.user_id_ = #{teacherId}
         AND cg.del_flag_ = 0
@@ -817,6 +862,34 @@
         GROUP BY cs.class_date_
     </select>
 
+    <select id="findHaveClassesDatesWithMonth" resultType="java.util.Date">
+        SELECT
+          cs.class_date_
+        FROM
+          course_schedule cs
+        LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
+        WHERE
+            (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
+            AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
+            AND cg.del_flag_ = 0
+            <if test="teacherId!=null">
+                AND cs.actual_teacher_id_=#{teacherId}
+            </if>
+            <if test="month==null">
+                AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
+            </if>
+            <if test="month!=null">
+                AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
+            </if>
+            <if test="groupId!=null">
+                AND cs.music_group_id_=#{groupId}
+            </if>
+            <if test="type!=null and type!=''">
+                AND cs.group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
+            GROUP BY cs.class_date_
+    </select>
+
     <select id="getTeacherHistoryCourseScheduleDate" resultType="java.util.Date">
         SELECT
         cs.class_date_

+ 9 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/CourseGroupController.java

@@ -2,7 +2,9 @@ package com.ym.mec.teacher.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.CourseGroupCreateDto;
+import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.service.CoursesGroupService;
 import com.ym.mec.biz.service.GroupClassService;
@@ -31,6 +33,8 @@ public class CourseGroupController extends BaseController {
     private SysUserFeignService sysUserFeignService;
     @Autowired
     private GroupClassService groupClassService;
+    @Autowired
+    private TeacherDao teacherDao;
 
     @ApiOperation(value = "创建课程组")
     @PostMapping("/createCourseGroup")
@@ -39,6 +43,11 @@ public class CourseGroupController extends BaseController {
         if(Objects.isNull(sysUser)){
             return failed(HttpStatus.FORBIDDEN,"请登录");
         }
+        Teacher teacher = teacherDao.get(sysUser.getId());
+        if(Objects.isNull(teacher)){
+            return failed("教师不存在");
+        }
+        courseGroupCreateInfo.getCoursesGroup().setOrganId(teacher.getOrganId());
         courseGroupCreateInfo.getCoursesGroup().setTeacherId(sysUser.getId());
         coursesGroupService.createCourseGroup(courseGroupCreateInfo);
         return succeed();

+ 56 - 40
mec-teacher/src/main/java/com/ym/mec/teacher/controller/StudyReportController.java

@@ -1,5 +1,7 @@
 package com.ym.mec.teacher.controller;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.CourseScheduleEvaluate;
 import com.ym.mec.biz.service.CourseScheduleEvaluateService;
 import com.ym.mec.common.controller.BaseController;
@@ -7,56 +9,70 @@ import com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 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.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 
 @RequestMapping("studyReport")
 @Api(tags = "陪练报告")
 @RestController
 public class StudyReportController extends BaseController {
 
-	@Autowired
-	private CourseScheduleEvaluateService courseScheduleEvaluateService;
-
-
-	@ApiOperation("获取学生陪练报告信息")
-	@GetMapping(value = "info")
-	public Object info(Integer classGroupId) {
-		return succeed(courseScheduleEvaluateService.getStudyReport(classGroupId));
-	}
-
-	@ApiOperation(value = "课程组评论列表")
-	@GetMapping("getGroupReviews")
-	public Object getGroupReviews(Integer groupId) {
-		List<CourseScheduleEvaluate> courseScheduleEvaluates = courseScheduleEvaluateService.findByGroupId(groupId);
-		boolean hasReport = false;
-		Date nowDate = new Date();
-		for (CourseScheduleEvaluate courseScheduleEvaluate : courseScheduleEvaluates) {
-			courseScheduleEvaluate.setTimes(2);
-			courseScheduleEvaluate.setTotalMinutes(100);
-			courseScheduleEvaluate.setReportLink("http://www.baidu.com");
-			if(DateUtil.format(courseScheduleEvaluate.getCreateTime(),"yyyy-MM").equals(DateUtil.format(nowDate,"yyyy-MM"))){
-				hasReport = true;
-			}
-		}
-		if(!hasReport){
-			CourseScheduleEvaluate courseScheduleEvaluate = new CourseScheduleEvaluate();
-			courseScheduleEvaluate.setReportLink("http://www.baidu.com");
-			courseScheduleEvaluate.setTimes(2);
-			courseScheduleEvaluate.setTotalMinutes(100);
-			courseScheduleEvaluate.setMonth(DateUtil.format(nowDate,"yyyy年MM月"));
-		}
-
-		return succeed(courseScheduleEvaluates);
-	}
-
-	@ApiOperation(value = "评论详情")
-	@GetMapping("getReviewsInfo")
-	public Object getReviewsInfo(Integer id) {
-		return succeed(courseScheduleEvaluateService.findById(id));
-	}
+    @Autowired
+    private CourseScheduleEvaluateService courseScheduleEvaluateService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+
+    @ApiOperation("获取学生陪练报告信息")
+    @GetMapping(value = "info")
+    public Object info(Integer classGroupId) {
+        return succeed(courseScheduleEvaluateService.getStudyReport(classGroupId));
+    }
+
+    @ApiOperation(value = "课程组评论列表")
+    @GetMapping("getGroupReviews")
+    public Object getGroupReviews(Integer groupId) {
+        List<CourseScheduleEvaluate> courseScheduleEvaluates = courseScheduleEvaluateService.findByGroupId(groupId);
+        boolean hasReport = false;
+        Date nowDate = new Date();
+        for (CourseScheduleEvaluate courseScheduleEvaluate : courseScheduleEvaluates) {
+            courseScheduleEvaluate.setTimes(2);
+            courseScheduleEvaluate.setTotalMinutes(100);
+            courseScheduleEvaluate.setReportLink("http://www.baidu.com");
+            if (DateUtil.format(courseScheduleEvaluate.getCreateTime(), "yyyy-MM").equals(DateUtil.format(nowDate, "yyyy-MM"))) {
+                hasReport = true;
+            }
+        }
+        if (!hasReport) {
+            CourseScheduleEvaluate courseScheduleEvaluate = new CourseScheduleEvaluate();
+            courseScheduleEvaluate.setReportLink("http://www.baidu.com");
+            courseScheduleEvaluate.setTimes(2);
+            courseScheduleEvaluate.setTotalMinutes(100);
+            courseScheduleEvaluate.setMonth(DateUtil.format(nowDate, "yyyy年MM月"));
+        }
+
+        return succeed(courseScheduleEvaluates);
+    }
+
+    @ApiOperation(value = "评论详情")
+    @GetMapping("getReviewsInfo")
+    public Object getReviewsInfo(Integer id) {
+        return succeed(courseScheduleEvaluateService.findById(id));
+    }
+
+    @ApiOperation(value = "获取需评论的课程列表")
+    @GetMapping("getNeedPost")
+    public Object getNeedPost() {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (Objects.isNull(sysUser)) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return succeed(courseScheduleEvaluateService.getNeedPostList(sysUser.getId()));
+    }
 }