zouxuan 3 роки тому
батько
коміт
ce75ec56a1

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

@@ -5,9 +5,11 @@ import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.biz.dal.enums.CourseStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.page.CourseDetailQueryInfo;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
+
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
@@ -1935,4 +1937,13 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @date 2022/3/1 17:06
      */
     List<StudentStandardDto> queryStudyStandardWaitVisit(Map<String, Object> params);
+
+    /**
+    * @description: 根据课程组编号,获取课程列表
+     * @param courseDetailQueryInfo
+    * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleStudentDto>
+    * @author zx
+    * @date 2022/8/15 17:01
+    */
+    List<CourseScheduleStudentDto> queryDetailList(@Param("queryInfo") CourseDetailQueryInfo courseDetailQueryInfo);
 }

+ 130 - 13
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleStudentDto.java

@@ -1,25 +1,142 @@
 package com.ym.mec.biz.dal.dto;
 
-import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.enums.CourseStatusEnum;
+import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
-import com.ym.mec.biz.dal.enums.TeachTypeEnum;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
 import io.swagger.annotations.ApiModelProperty;
 
-import java.util.List;
+public class CourseScheduleStudentDto{
 
-/**
- * @Author Joburgess
- * @Date 2019/9/17
- */
-public class CourseScheduleStudentDto extends CourseSchedule {
+    @ApiModelProperty(value = "课程编号")
+    private Long courseId;
 
-private List<Integer> studentIds;
+    @ApiModelProperty(value = "上课日期")
+    private String classDate;
 
-    public List<Integer> getStudentIds() {
-        return studentIds;
+    @ApiModelProperty(value = "上课开始时间")
+    private String startClassTime;
+
+    @ApiModelProperty(value = "上课结束时间")
+    private String endClassTime;
+
+    @ApiModelProperty(value = "考勤状态")
+    private StudentAttendanceStatusEnum attendanceStatus;
+
+    @ApiModelProperty(value = "课程状态")
+    private CourseStatusEnum courseStatus;
+
+    @ApiModelProperty(value = "课程组类型")
+    private GroupType groupType;
+
+    @ApiModelProperty(value = "上课模式")
+    private TeachModeEnum teachMode;
+
+    @ApiModelProperty(value = "课程名称")
+    private String courseName;
+
+    @ApiModelProperty(value = "老师头像")
+    private String teacherAvatar;
+
+    @ApiModelProperty(value = "老师姓名")
+    private String teacherName;
+
+    @ApiModelProperty(value = "教学点")
+    private String schoolName;
+
+    public Long getCourseId() {
+        return courseId;
+    }
+
+    public void setCourseId(Long courseId) {
+        this.courseId = courseId;
+    }
+
+    public String getClassDate() {
+        return classDate;
+    }
+
+    public void setClassDate(String classDate) {
+        this.classDate = classDate;
+    }
+
+    public String getStartClassTime() {
+        return startClassTime;
+    }
+
+    public void setStartClassTime(String startClassTime) {
+        this.startClassTime = startClassTime;
+    }
+
+    public String getEndClassTime() {
+        return endClassTime;
+    }
+
+    public void setEndClassTime(String endClassTime) {
+        this.endClassTime = endClassTime;
+    }
+
+    public StudentAttendanceStatusEnum getAttendanceStatus() {
+        return attendanceStatus;
+    }
+
+    public void setAttendanceStatus(StudentAttendanceStatusEnum attendanceStatus) {
+        this.attendanceStatus = attendanceStatus;
+    }
+
+    public CourseStatusEnum getCourseStatus() {
+        return courseStatus;
+    }
+
+    public void setCourseStatus(CourseStatusEnum courseStatus) {
+        this.courseStatus = courseStatus;
+    }
+
+    public GroupType getGroupType() {
+        return groupType;
+    }
+
+    public void setGroupType(GroupType groupType) {
+        this.groupType = groupType;
+    }
+
+    public TeachModeEnum getTeachMode() {
+        return teachMode;
+    }
+
+    public void setTeachMode(TeachModeEnum teachMode) {
+        this.teachMode = teachMode;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getTeacherAvatar() {
+        return teacherAvatar;
+    }
+
+    public void setTeacherAvatar(String teacherAvatar) {
+        this.teacherAvatar = teacherAvatar;
+    }
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public String getSchoolName() {
+        return schoolName;
     }
 
-    public void setStudentIds(List<Integer> studentIds) {
-        this.studentIds = studentIds;
+    public void setSchoolName(String schoolName) {
+        this.schoolName = schoolName;
     }
 }

+ 72 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/CourseDetailQueryInfo.java

@@ -0,0 +1,72 @@
+package com.ym.mec.biz.dal.page;
+
+import io.swagger.annotations.ApiModelProperty;
+
+public class CourseDetailQueryInfo{
+
+    @ApiModelProperty(value = "课程状态")
+    private String courseStatus;
+
+    @ApiModelProperty(value = "上课模式")
+    private String teachMode;
+
+    @ApiModelProperty(value = "考勤状态")
+    private String attendanceStatus;
+
+    @ApiModelProperty(value = "学员编号")
+    private Integer userId;
+
+    @ApiModelProperty(value = "课程组类型")
+    private String groupType;
+
+    @ApiModelProperty(value = "课程组编号")
+    private String groupId;
+
+    public String getGroupType() {
+        return groupType;
+    }
+
+    public void setGroupType(String groupType) {
+        this.groupType = groupType;
+    }
+
+    public String getGroupId() {
+        return groupId;
+    }
+
+    public void setGroupId(String groupId) {
+        this.groupId = groupId;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getCourseStatus() {
+        return courseStatus;
+    }
+
+    public void setCourseStatus(String courseStatus) {
+        this.courseStatus = courseStatus;
+    }
+
+    public String getTeachMode() {
+        return teachMode;
+    }
+
+    public void setTeachMode(String teachMode) {
+        this.teachMode = teachMode;
+    }
+
+    public String getAttendanceStatus() {
+        return attendanceStatus;
+    }
+
+    public void setAttendanceStatus(String attendanceStatus) {
+        this.attendanceStatus = attendanceStatus;
+    }
+}

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

@@ -4034,4 +4034,42 @@
         ORDER BY cs.class_date_ DESC,cs.start_class_time_ DESC
         <include refid="global.limit"/>
     </select>
+    <resultMap id="CourseScheduleStudentDto" type="com.ym.mec.biz.dal.dto.CourseScheduleStudentDto">
+        <result property="courseId" column="course_schedule_id_"/>
+        <result property="classDate" column="class_date_"/>
+        <result property="startClassTime" column="start_class_time_"/>
+        <result property="endClassTime" column="end_class_time_"/>
+        <result property="attendanceStatus" column="attendanceStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result property="courseStatus" column="courseStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result property="groupType" column="group_type_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result property="teachMode" column="teach_mode_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result property="courseName" column="courseName"/>
+        <result property="teacherAvatar" column="avatar_"/>
+        <result property="teacherName" column="real_name_"/>
+        <result property="schoolName" column="schoolName"/>
+    </resultMap>
+    <select id="queryDetailList" resultMap="CourseScheduleStudentDto">
+        select cssp.course_schedule_id_,cs.class_date_,cs.start_class_time_,cs.end_class_time_,CASE WHEN sa.status_ IS NULL OR sa.status_ = '' THEN 'TRUANT' ELSE sa.status_ END attendanceStatus,cs.status_ courseStatus,
+               cs.group_type_,cs.teach_mode_,cs.name_ courseName,su.avatar_,su.real_name_,co.name_ schoolName
+        from course_schedule_student_payment cssp
+        left join course_schedule cs ON cs.id_ = cssp.course_schedule_id_
+        left join sys_user su on cs.actual_teacher_id_ = su.id_
+        left join cooperation_organ co ON co.id_ = cs.schoole_id_
+        left join student_attendance sa ON sa.course_schedule_id_ = cs.id_ AND sa.user_id_ = cssp.user_id_
+        where cssp.music_group_id_ = #{queryInfo.groupId} AND cssp.user_id_ = #{queryInfo.userId} AND cssp.group_type_ = #{queryInfo.groupType}
+        <if test="queryInfo.courseStatus != null and queryInfo.courseStatus != ''">
+            AND cs.status_ = #{queryInfo.courseStatus}
+        </if>
+        <if test="queryInfo.teachMode != null and queryInfo.teachMode != ''">
+            AND cs.teach_mode_ = #{queryInfo.teachMode}
+        </if>
+        <if test="queryInfo.attendanceStatus != null and queryInfo.attendanceStatus != ''">
+            <if test="queryInfo.attendanceStatus == 'TRUANT'">
+                AND (sa.status_ IS NULL OR sa.status_ = '' OR sa.status_ = 'TRUANT')
+            </if>
+            <if test="queryInfo.attendanceStatus != 'TRUANT'">
+                AND sa.status_ = #{queryInfo.attendanceStatus}
+            </if>
+        </if>
+    </select>
 </mapper>

+ 22 - 34
mec-student/src/main/java/com/ym/mec/student/controller/CourseController.java

@@ -1,26 +1,23 @@
 package com.ym.mec.student.controller;
 
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-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.dto.CourseScheduleStudentDto;
 import com.ym.mec.biz.dal.dto.StudentCourseInfoDto;
 import com.ym.mec.biz.dal.dto.UserMusicGroupQueryInfo;
+import com.ym.mec.biz.dal.page.CourseDetailQueryInfo;
 import com.ym.mec.biz.dal.page.ImGroupNoticeQueryInfo;
 import com.ym.mec.biz.dal.page.StudentPayLogQueryInfo;
 import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.ImGroupNoticeService;
+import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 @RequestMapping("course")
 @Api(tags = "课程服务")
@@ -30,7 +27,7 @@ public class CourseController extends BaseController {
     @Autowired
     private ClassGroupService classGroupService;
     @Autowired
-    private SysUserFeignService sysUserFeignService;
+    private SysUserService sysUserService;
     @Autowired
     private ImGroupNoticeService imGroupNoticeService;
     
@@ -40,21 +37,13 @@ public class CourseController extends BaseController {
     @ApiOperation("获取学生所购买课程列表")
     @GetMapping(value = "/queryUserMusicGroups")
     public Object queryCoursePage(UserMusicGroupQueryInfo queryInfo){
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
-            return failed("获取用户信息失败");
-        }
-        return succeed(classGroupService.queryCoursePage(queryInfo,sysUser.getId()));
+        return succeed(classGroupService.queryCoursePage(queryInfo,sysUserService.getUserId()));
     }
 
     @ApiOperation("获取学生所购买课程列表")
     @GetMapping(value = "/queryRemainCourseNum")
     public Object queryRemainCourseNum(){
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
-            return failed("获取用户信息失败");
-        }
-        List<StudentCourseInfoDto> list = courseScheduleDao.findUserSurplusCourseInfoByGroup(null, null, sysUser.getId());
+        List<StudentCourseInfoDto> list = courseScheduleDao.findUserSurplusCourseInfoByGroup(null, null, sysUserService.getUserId());
         if(list == null){
         	return succeed(0);
         }
@@ -64,11 +53,7 @@ public class CourseController extends BaseController {
     @ApiOperation("获取学员所有聊天群组")
     @GetMapping(value = "/queryUserGroups")
     public Object queryUserGroups(String search){
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
-            return failed("获取用户信息失败");
-        }
-        return succeed(classGroupService.queryUserGroups(sysUser.getId(),search));
+        return succeed(classGroupService.queryUserGroups(sysUserService.getUserId(),search));
     }
 
     @ApiOperation(value = "获取最新一条群公告")
@@ -95,11 +80,14 @@ public class CourseController extends BaseController {
     @ApiOperation(value = "分页获取学员购买记录")
     @PostMapping("/queryStudentPayLog")
     public Object queryStudentPayLog(StudentPayLogQueryInfo studentPayLogQueryInfo){
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null || sysUser.getId() == null){
-            return failed("获取用户失败");
-        }
-        studentPayLogQueryInfo.setUserId(sysUser.getId());
+        studentPayLogQueryInfo.setUserId(sysUserService.getUserId());
         return succeed(classGroupService.queryStudentPayLog(studentPayLogQueryInfo));
     }
+
+    @ApiOperation(value = "根据课程组编号,获取课程列表")
+    @PostMapping("/queryDetailList")
+    public HttpResponseResult<List<CourseScheduleStudentDto>> queryDetailList(@RequestBody CourseDetailQueryInfo courseDetailQueryInfo){
+        courseDetailQueryInfo.setUserId(sysUserService.getUserId());
+        return succeed(courseScheduleDao.queryDetailList(courseDetailQueryInfo));
+    }
 }