Explorar o código

Merge branch 'feature/1113-vipCourse' of http://git.dayaedu.com/yonge/cooleshow into develop-new

zouxuan hai 9 meses
pai
achega
ec615d12be
Modificáronse 14 ficheiros con 217 adicións e 664 borrados
  1. 8 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherCourseGroupController.java
  2. 6 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherCourseScheduleController.java
  3. 4 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseGroup.java
  4. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseScheduleService.java
  5. 85 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java
  6. 4 72
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupInfoVo.java
  7. 4 95
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupLiveVo.java
  8. 4 87
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupPianoVo.java
  9. 4 104
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupPracticeVo.java
  10. 4 167
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupVo.java
  11. 4 126
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/LiveCourseGroupVo.java
  12. 3 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/course/CourseGroupWrapper.java
  13. 63 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/course/CourseScheduleWrapper.java
  14. 22 9
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml

+ 8 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherCourseGroupController.java

@@ -4,6 +4,7 @@ package com.yonge.cooleshow.teacher.controller;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.biz.dal.dto.CheckCourseTimeDto;
 import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto;
+import com.yonge.cooleshow.biz.dal.entity.CourseGroup;
 import com.yonge.cooleshow.biz.dal.entity.CourseTimeEntity;
 import com.yonge.cooleshow.biz.dal.service.AppVersionInfoService;
 import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
@@ -148,5 +149,12 @@ public class TeacherCourseGroupController extends BaseController {
     public HttpResponseResult<List<CourseGroupWrapper.CourseStudentVo>> queryStudentByGroupId(Long groupId) {
         return succeed(courseGroupService.queryStudentByGroupId(groupId));
     }
+
+    @ApiOperation("修改课程规划")
+    @PostMapping("/updateCoursePlan")
+    public HttpResponseResult<Object> updateCoursePlan(Long groupId, String coursePlan) {
+        courseGroupService.lambdaUpdate().eq(CourseGroup::getId, groupId).set(CourseGroup::getCoursePlan, coursePlan).update();
+        return succeed();
+    }
 }
 

+ 6 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherCourseScheduleController.java

@@ -256,5 +256,11 @@ public class TeacherCourseScheduleController extends BaseController {
 
         return succeed(courseScheduleService.getLiveCourseScheduleTime(roomUid));
     }
+
+    @ApiOperation(value = "获取课程列表")
+    @PostMapping("/list")
+    public HttpResponseResult<List<CourseScheduleWrapper.MyCourseVo>> queryList(@RequestBody CourseScheduleWrapper.CourseQuery query){
+        return succeed(courseScheduleService.queryList(query));
+    }
 }
 

+ 4 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseGroup.java

@@ -103,6 +103,10 @@ public class CourseGroup implements Serializable {
     @ApiModelProperty(value = "是否审核时可见 (0:否  1:是)")
     private YesOrNoEnum auditVersion = YesOrNoEnum.NO;
 
+    @TableField("course_plan_")
+    @ApiModelProperty(value = "课程规划")
+    private String coursePlan;
+
     @TableField("created_by_")
     @ApiModelProperty(value = "创建人")
     private Long createdBy;

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseScheduleService.java

@@ -301,5 +301,7 @@ public interface CourseScheduleService extends IService<CourseSchedule> {
      *
      */
     void buyPracticeCourseAfter(UserPaymentOrderWrapper.OrderGoodsInfo orderGoodsInfo);
+
+    List<CourseScheduleWrapper.MyCourseVo> queryList(CourseScheduleWrapper.CourseQuery query);
 }
 

+ 85 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java

@@ -141,6 +141,9 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
     @Autowired
     private TeacherService teacherService;
 
+    @Autowired
+    private StudentAttendanceService studentAttendanceService;
+
     @Override
     public CourseScheduleDao getDao() {
         return this.baseMapper;
@@ -2590,6 +2593,88 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
 
     }
 
+    @Override
+    public List<CourseScheduleWrapper.MyCourseVo> queryList(CourseScheduleWrapper.CourseQuery query) {
+        //获取所有课程列表
+        List<CourseSchedule> courseSchedules = this.lambdaQuery().eq(CourseSchedule::getCourseGroupId, query.getCourseGroupId())
+                .eq(StringUtils.isNotEmpty(query.getStatus()), CourseSchedule::getStatus, query.getStatus())
+                .orderByDesc(CourseSchedule::getStartTime)
+                .list();
+        if (CollectionUtils.isEmpty(courseSchedules)) {
+            return Lists.newArrayList();
+        }
+        if(StringUtils.isNotEmpty(query.getClassMonth())){
+            courseSchedules = courseSchedules.stream().
+                    filter(courseSchedule -> query.getClassMonth().equals(DateUtil.dateToString(courseSchedule.getStartTime(),"yyyy-MM"))).collect(Collectors.toList());
+            if (CollectionUtils.isEmpty(courseSchedules)) {
+                return Lists.newArrayList();
+            }
+        }
+        if(query.getAttendanceStatus() != null){
+            List<Long> courseIds = courseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+            List<StudentAttendance> list = studentAttendanceService.lambdaQuery().in(StudentAttendance::getCourseScheduleId, courseIds).list();
+            if(query.getAttendanceStatus()){
+                if (CollectionUtils.isEmpty(list)) {
+                    return Lists.newArrayList();
+                }
+                courseSchedules = courseSchedules.stream().filter(courseSchedule -> list.stream()
+                        .anyMatch(studentAttendance -> studentAttendance.getCourseScheduleId().equals(courseSchedule.getId()))).collect(Collectors.toList());
+            }else {
+                if (CollectionUtils.isNotEmpty(list)) {
+                    courseSchedules = courseSchedules.stream().filter(courseSchedule -> list.stream()
+                            .noneMatch(studentAttendance -> studentAttendance.getCourseScheduleId().equals(courseSchedule.getId()))).collect(Collectors.toList());
+                }
+            }
+        }
+        if (CollectionUtils.isEmpty(courseSchedules)) {
+            return Lists.newArrayList();
+        }
+        List<Long> courseScheduleIds = courseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+        //获取所有学生列表
+        List<CourseScheduleStudentPayment> studentPayments = courseScheduleStudentPaymentService.lambdaQuery()
+                .in(CourseScheduleStudentPayment::getCourseId, courseScheduleIds)
+                .list();
+        if (CollectionUtils.isEmpty(studentPayments)) {
+            return Lists.newArrayList();
+        }
+        //获取所有学生信息
+        List<Long> studentIds = studentPayments.stream().map(CourseScheduleStudentPayment::getUserId).collect(Collectors.toList());
+        List<StudentAttendance> attendanceList = Lists.newArrayList();
+        if(query.getAttendanceStatus() == null){
+            attendanceList = studentAttendanceService.lambdaQuery().in(StudentAttendance::getCourseScheduleId, courseScheduleIds).list();
+        }
+        Map<Long, com.yonge.cooleshow.biz.dal.entity.SysUser> userMap = sysUserService.getMapByIds(studentIds);
+        List<CourseScheduleWrapper.MyCourseVo> courseVos = Lists.newArrayList();
+        CourseGroup courseGroup = courseGroupService.lambdaQuery().eq(CourseGroup::getId, query.getCourseGroupId()).one();
+        for (CourseSchedule courseSchedule : courseSchedules) {
+            CourseScheduleWrapper.MyCourseVo courseVo = new CourseScheduleWrapper.MyCourseVo();
+            courseVo.setCourseId(courseSchedule.getId());
+            courseVo.setClassDate(courseSchedule.getClassDate());
+            courseVo.setStartTime(courseSchedule.getStartTime());
+            courseVo.setEndTime(courseSchedule.getEndTime());
+            courseVo.setStatus(courseSchedule.getStatus());
+            courseVo.setCourseGoupId(courseGroup.getId());
+            courseVo.setCourseGroupName(courseGroup.getName());
+            if(query.getAttendanceStatus() == null){
+                courseVo.setAttendanceStatus(attendanceList.stream().anyMatch(studentAttendance -> studentAttendance.getCourseScheduleId().equals(courseSchedule.getId())));
+            }else {
+                courseVo.setAttendanceStatus(query.getAttendanceStatus());
+            }
+            courseVo.setCourseStudentVos(studentPayments.stream().filter(studentPayment -> studentPayment.getCourseId().equals(courseSchedule.getId()))
+                    .map(studentPayment -> {
+                        CourseScheduleWrapper.CourseStudentVo studentVo = new CourseScheduleWrapper.CourseStudentVo();
+                        studentVo.setUserId(studentPayment.getUserId());
+                        com.yonge.cooleshow.biz.dal.entity.SysUser user = userMap.get(studentPayment.getUserId());
+                        studentVo.setUserName(user.getUsername());
+                        studentVo.setAvatar(user.getAvatar());
+                        studentVo.setImUserId(imGroupService.getImUserId(String.valueOf(user.getId()),ClientEnum.STUDENT.name()));
+                        return studentVo;
+                    }).collect(Collectors.toList()));
+            courseVos.add(courseVo);
+        }
+        return courseVos;
+    }
+
     private UserOrderDetail buyPracticeCourseTranV2(UserPaymentOrderWrapper.OrderGoodsInfo orderGoodsInfo) {
         log.info("buyPracticeCourse  param:{}", JSON.toJSONString(orderGoodsInfo));
         Long studentId = orderGoodsInfo.getUserId();

+ 4 - 72
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupInfoVo.java

@@ -1,8 +1,8 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -12,6 +12,7 @@ import java.util.Date;
  * @Author: cy
  * @Date: 2022/5/24
  */
+@Data
 @ApiModel
 public class CourseGroupInfoVo implements Serializable {
     @ApiModelProperty(value = "课程组id")
@@ -41,75 +42,6 @@ public class CourseGroupInfoVo implements Serializable {
     @ApiModelProperty(value = "创建时间")
     private Date createdTime;
 
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public Long getSubjectId() {
-        return subjectId;
-    }
-
-    public void setSubjectId(Long subjectId) {
-        this.subjectId = subjectId;
-    }
-
-    public String getSubjectName() {
-        return subjectName;
-    }
-
-    public void setSubjectName(String subjectName) {
-        this.subjectName = subjectName;
-    }
-
-    public Integer getCourseNum() {
-        return courseNum;
-    }
-
-    public void setCourseNum(Integer courseNum) {
-        this.courseNum = courseNum;
-    }
-
-    public BigDecimal getCoursePrice() {
-        return coursePrice;
-    }
-
-    public void setCoursePrice(BigDecimal coursePrice) {
-        this.coursePrice = coursePrice;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public String getCourseIntroduce() {
-        return courseIntroduce;
-    }
-
-    public void setCourseIntroduce(String courseIntroduce) {
-        this.courseIntroduce = courseIntroduce;
-    }
-
-    public Date getCreatedTime() {
-        return createdTime;
-    }
-
-    public void setCreatedTime(Date createdTime) {
-        this.createdTime = createdTime;
-    }
+    @ApiModelProperty(value = "课程规划")
+    private String coursePlan;
 }

+ 4 - 95
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupLiveVo.java

@@ -3,11 +3,13 @@ package com.yonge.cooleshow.biz.dal.vo;
 import com.yonge.cooleshow.common.entity.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 /**
  * @Author: cy
  * @Date: 2022/5/19
  */
+@Data
 @ApiModel
 public class CourseGroupLiveVo extends BaseEntity {
     @ApiModelProperty("直播课组id")
@@ -35,99 +37,6 @@ public class CourseGroupLiveVo extends BaseEntity {
     @ApiModelProperty("第一节课开始时间")
     private String startTime;
 
-    public Long getCourseGroupId() {
-        return courseGroupId;
-    }
-
-    public void setCourseGroupId(Long courseGroupId) {
-        this.courseGroupId = courseGroupId;
-    }
-
-    public String getCourseGroupName() {
-        return courseGroupName;
-    }
-
-    public void setCourseGroupName(String courseGroupName) {
-        this.courseGroupName = courseGroupName;
-    }
-
-    public Long getSubjectId() {
-        return subjectId;
-    }
-
-    public void setSubjectId(Long subjectId) {
-        this.subjectId = subjectId;
-    }
-
-    public String getSubjectName() {
-        return subjectName;
-    }
-
-    public void setSubjectName(String subjectName) {
-        this.subjectName = subjectName;
-    }
-
-    public Integer getStudentNum() {
-        return studentNum;
-    }
-
-    public void setStudentNum(Integer studentNum) {
-        this.studentNum = studentNum;
-    }
-
-    public Integer getCourseNum() {
-        return courseNum;
-    }
-
-    public void setCourseNum(Integer courseNum) {
-        this.courseNum = courseNum;
-    }
-
-    public Integer getCompleteCount() {
-        return completeCount;
-    }
-
-    public void setCompleteCount(Integer completeCount) {
-        this.completeCount = completeCount;
-    }
-
-    public Long getTeacherId() {
-        return teacherId;
-    }
-
-    public void setTeacherId(Long teacherId) {
-        this.teacherId = teacherId;
-    }
-
-    public String getTeacherName() {
-        return teacherName;
-    }
-
-    public void setTeacherName(String teacherName) {
-        this.teacherName = teacherName;
-    }
-
-    public String getTeacherRealName() {
-        return teacherRealName;
-    }
-
-    public void setTeacherRealName(String teacherRealName) {
-        this.teacherRealName = teacherRealName;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public String getStartTime() {
-        return startTime;
-    }
-
-    public void setStartTime(String startTime) {
-        this.startTime = startTime;
-    }
+    @ApiModelProperty("课程规划")
+    private String coursePlan;
 }

+ 4 - 87
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupPianoVo.java

@@ -3,11 +3,13 @@ package com.yonge.cooleshow.biz.dal.vo;
 import com.yonge.cooleshow.common.entity.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 /**
  * @Author: cy
  * @Date: 2022/6/15
  */
+@Data
 @ApiModel
 public class CourseGroupPianoVo extends BaseEntity {
     @ApiModelProperty("课程组id")
@@ -33,91 +35,6 @@ public class CourseGroupPianoVo extends BaseEntity {
     @ApiModelProperty("第一节课开始时间")
     private String startTime;
 
-    public Long getCourseGroupId() {
-        return courseGroupId;
-    }
-
-    public void setCourseGroupId(Long courseGroupId) {
-        this.courseGroupId = courseGroupId;
-    }
-
-    public String getCourseGroupName() {
-        return courseGroupName;
-    }
-
-    public void setCourseGroupName(String courseGroupName) {
-        this.courseGroupName = courseGroupName;
-    }
-
-    public Long getSubjectId() {
-        return subjectId;
-    }
-
-    public void setSubjectId(Long subjectId) {
-        this.subjectId = subjectId;
-    }
-
-    public String getSubjectName() {
-        return subjectName;
-    }
-
-    public void setSubjectName(String subjectName) {
-        this.subjectName = subjectName;
-    }
-
-    public Integer getCourseNum() {
-        return courseNum;
-    }
-
-    public void setCourseNum(Integer courseNum) {
-        this.courseNum = courseNum;
-    }
-
-    public Integer getCompleteCount() {
-        return completeCount;
-    }
-
-    public void setCompleteCount(Integer completeCount) {
-        this.completeCount = completeCount;
-    }
-
-    public Long getTeacherId() {
-        return teacherId;
-    }
-
-    public void setTeacherId(Long teacherId) {
-        this.teacherId = teacherId;
-    }
-
-    public String getTeacherName() {
-        return teacherName;
-    }
-
-    public void setTeacherName(String teacherName) {
-        this.teacherName = teacherName;
-    }
-
-    public String getTeacherRealName() {
-        return teacherRealName;
-    }
-
-    public void setTeacherRealName(String teacherRealName) {
-        this.teacherRealName = teacherRealName;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public String getStartTime() {
-        return startTime;
-    }
-
-    public void setStartTime(String startTime) {
-        this.startTime = startTime;
-    }
+    @ApiModelProperty("课程规划")
+    private String coursePlan;
 }

+ 4 - 104
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupPracticeVo.java

@@ -3,11 +3,13 @@ package com.yonge.cooleshow.biz.dal.vo;
 import com.yonge.cooleshow.common.entity.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 /**
  * @Author: cy
  * @Date: 2022/5/19
  */
+@Data
 @ApiModel
 public class CourseGroupPracticeVo extends BaseEntity {
     @ApiModelProperty("陪练课组id")
@@ -36,108 +38,6 @@ public class CourseGroupPracticeVo extends BaseEntity {
     private String status;
     @ApiModelProperty("第一节课开始时间")
     private String startTime;
-
-    public Long getGroupId() {
-        return groupId;
-    }
-
-    public void setGroupId(Long groupId) {
-        this.groupId = groupId;
-    }
-
-    public Long getSubjectId() {
-        return subjectId;
-    }
-
-    public void setSubjectId(Long subjectId) {
-        this.subjectId = subjectId;
-    }
-
-    public String getSubjectName() {
-        return subjectName;
-    }
-
-    public void setSubjectName(String subjectName) {
-        this.subjectName = subjectName;
-    }
-
-    public Integer getCourseNum() {
-        return courseNum;
-    }
-
-    public void setCourseNum(Integer courseNum) {
-        this.courseNum = courseNum;
-    }
-
-    public Integer getCompleteCount() {
-        return completeCount;
-    }
-
-    public void setCompleteCount(Integer completeCount) {
-        this.completeCount = completeCount;
-    }
-
-    public Long getTeacherId() {
-        return teacherId;
-    }
-
-    public void setTeacherId(Long teacherId) {
-        this.teacherId = teacherId;
-    }
-
-    public String getTeacherName() {
-        return teacherName;
-    }
-
-    public void setTeacherName(String teacherName) {
-        this.teacherName = teacherName;
-    }
-
-    public String getTeacherRealName() {
-        return teacherRealName;
-    }
-
-    public void setTeacherRealName(String teacherRealName) {
-        this.teacherRealName = teacherRealName;
-    }
-
-    public Long getStudentId() {
-        return studentId;
-    }
-
-    public void setStudentId(Long studentId) {
-        this.studentId = studentId;
-    }
-
-    public String getStudentName() {
-        return studentName;
-    }
-
-    public void setStudentName(String studentName) {
-        this.studentName = studentName;
-    }
-
-    public String getStudentRealName() {
-        return studentRealName;
-    }
-
-    public void setStudentRealName(String studentRealName) {
-        this.studentRealName = studentRealName;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public String getStartTime() {
-        return startTime;
-    }
-
-    public void setStartTime(String startTime) {
-        this.startTime = startTime;
-    }
+    @ApiModelProperty("课程规划")
+    private String coursePlan;
 }

+ 4 - 167
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupVo.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.biz.dal.vo;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.io.Serializable;
 import java.math.BigDecimal;
@@ -13,6 +14,7 @@ import java.util.Date;
  * @author hgw
  * Created by 2022-03-29
  */
+@Data
 @ApiModel(value = "TeacherCourseGroupVo", description = "课程组信息")
 public class CourseGroupVo implements Serializable {
 
@@ -82,171 +84,6 @@ public class CourseGroupVo implements Serializable {
     @ApiModelProperty("下架原因")
     private String reason;
 
-    public String getReason() {
-        return reason;
-    }
-
-    public void setReason(String reason) {
-        this.reason = reason;
-    }
-
-    public Long getCourseGroupId() {
-        return courseGroupId;
-    }
-
-    public void setCourseGroupId(Long courseGroupId) {
-        this.courseGroupId = courseGroupId;
-    }
-
-    public String getCourseGroupName() {
-        return courseGroupName;
-    }
-
-    public void setCourseGroupName(String courseGroupName) {
-        this.courseGroupName = courseGroupName;
-    }
-
-    public String getSubjectName() {
-        return subjectName;
-    }
-
-    public void setSubjectName(String subjectName) {
-        this.subjectName = subjectName;
-    }
-
-    public Date getCourseStartTime() {
-        return courseStartTime;
-    }
-
-    public void setCourseStartTime(Date courseStartTime) {
-        this.courseStartTime = courseStartTime;
-    }
-
-    public Integer getSingleCourseMinutes() {
-        return singleCourseMinutes;
-    }
-
-    public void setSingleCourseMinutes(Integer singleCourseMinutes) {
-        this.singleCourseMinutes = singleCourseMinutes;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public Integer getStudentCount() {
-        return studentCount;
-    }
-
-    public void setStudentCount(Integer studentCount) {
-        this.studentCount = studentCount;
-    }
-
-    public String getBackgroundPic() {
-        return backgroundPic;
-    }
-
-    public void setBackgroundPic(String backgroundPic) {
-        this.backgroundPic = backgroundPic;
-    }
-
-    public Long getTeacherId() {
-        return teacherId;
-    }
-
-    public void setTeacherId(Long teacherId) {
-        this.teacherId = teacherId;
-    }
-
-    public String getTeacherName() {
-        return teacherName;
-    }
-
-    public void setTeacherName(String teacherName) {
-        this.teacherName = teacherName;
-    }
-
-    public String getUserName() {
-        return userName;
-    }
-
-    public void setUserName(String userName) {
-        this.userName = userName;
-    }
-
-    public BigDecimal getCoursePrice() {
-        return coursePrice;
-    }
-
-    public void setCoursePrice(BigDecimal coursePrice) {
-        this.coursePrice = coursePrice;
-    }
-
-    public Integer getCourseNum() {
-        return courseNum;
-    }
-
-    public void setCourseNum(Integer courseNum) {
-        this.courseNum = courseNum;
-    }
-
-    public String getCourseIntroduce() {
-        return courseIntroduce;
-    }
-
-    public void setCourseIntroduce(String courseIntroduce) {
-        this.courseIntroduce = courseIntroduce;
-    }
-
-    public String getAvatar() {
-        return avatar;
-    }
-
-    public void setAvatar(String avatar) {
-        this.avatar = avatar;
-    }
-
-    public Date getSalesStartDate() {
-        return salesStartDate;
-    }
-
-    public void setSalesStartDate(Date salesStartDate) {
-        this.salesStartDate = salesStartDate;
-    }
-
-    public Date getSalesEndDate() {
-        return salesEndDate;
-    }
-
-    public void setSalesEndDate(Date salesEndDate) {
-        this.salesEndDate = salesEndDate;
-    }
-
-    public Integer getMixStudentNum() {
-        return mixStudentNum;
-    }
-
-    public void setMixStudentNum(Integer mixStudentNum) {
-        this.mixStudentNum = mixStudentNum;
-    }
-
-    public String getImGroupId() {
-        return imGroupId;
-    }
-
-    public void setImGroupId(String imGroupId) {
-        this.imGroupId = imGroupId;
-    }
-
-    public Integer getExistBuy() {
-        return existBuy;
-    }
-
-    public void setExistBuy(Integer existBuy) {
-        this.existBuy = existBuy;
-    }
+    @ApiModelProperty("课程规划")
+    private String coursePlan;
 }

+ 4 - 126
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/LiveCourseGroupVo.java

@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.cooleshow.biz.dal.enums.CourseGroupEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -14,6 +15,7 @@ import java.util.Date;
  * @author liujunchi
  * @date 2022-04-18
  */
+@Data
 @ApiModel("平台方 老师详情直播课列表")
 public class LiveCourseGroupVo {
 
@@ -66,130 +68,6 @@ public class LiveCourseGroupVo {
     @ApiModelProperty("下架原因")
     private String reason;
 
-    public String getReason() {
-        return reason;
-    }
-
-    public void setReason(String reason) {
-        this.reason = reason;
-    }
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
-    public Long getCourseNum() {
-        return courseNum;
-    }
-
-    public void setCourseNum(Long courseNum) {
-        this.courseNum = courseNum;
-    }
-
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    public String getCourseIntroduce() {
-        return courseIntroduce;
-    }
-
-    public void setCourseIntroduce(String courseIntroduce) {
-        this.courseIntroduce = courseIntroduce;
-    }
-
-    public Long getCourseGroupId() {
-        return courseGroupId;
-    }
-
-    public void setCourseGroupId(Long courseGroupId) {
-        this.courseGroupId = courseGroupId;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public String getSubjectName() {
-        return subjectName;
-    }
-
-    public void setSubjectName(String subjectName) {
-        this.subjectName = subjectName;
-    }
-
-    public Integer getEndCourseNum() {
-        return endCourseNum;
-    }
-
-    public void setEndCourseNum(Integer endCourseNum) {
-        this.endCourseNum = endCourseNum;
-    }
-
-    public Integer getNoStartCourseNum() {
-        return noStartCourseNum;
-    }
-
-    public void setNoStartCourseNum(Integer noStartCourseNum) {
-        this.noStartCourseNum = noStartCourseNum;
-    }
-
-    public BigDecimal getCoursePrice() {
-        return coursePrice;
-    }
-
-    public void setCoursePrice(BigDecimal coursePrice) {
-        this.coursePrice = coursePrice;
-    }
-
-    public Integer getPreStudentNum() {
-        return preStudentNum;
-    }
-
-    public void setPreStudentNum(Integer preStudentNum) {
-        this.preStudentNum = preStudentNum;
-    }
-
-    public CourseGroupEnum getStatus() {
-        return status;
-    }
-
-    public void setStatus(CourseGroupEnum status) {
-        this.status = status;
-    }
-
-    public String getImGroupId() {
-        return imGroupId;
-    }
-
-    public void setImGroupId(String imGroupId) {
-        this.imGroupId = imGroupId;
-    }
-
-    public String getPhone() {
-        return phone;
-    }
-
-    public void setPhone(String phone) {
-        this.phone = phone;
-    }
-
-    public String getOrderNo() {
-        return orderNo;
-    }
-
-    public void setOrderNo(String orderNo) {
-        this.orderNo = orderNo;
-    }
+    @ApiModelProperty("课程规划")
+    private String coursePlan;
 }

+ 3 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/course/CourseGroupWrapper.java

@@ -1,14 +1,10 @@
 package com.yonge.cooleshow.biz.dal.wrapper.course;
 
-import com.fasterxml.jackson.annotation.JsonFormat;
 import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import java.io.Serializable;
-import java.util.Date;
-
 public class CourseGroupWrapper {
 
     @Data
@@ -58,6 +54,9 @@ public class CourseGroupWrapper {
 
         @ApiModelProperty(value = "学员头像")
         private String studentAvatar;
+
+        @ApiModelProperty(value = "课程规划")
+        private String coursePlan;
     }
 
     @ApiModel(value = "CourseStudentVo", description = "学员列表")

+ 63 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/course/CourseScheduleWrapper.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.Date;
 import java.util.List;
 
 public class CourseScheduleWrapper {
@@ -36,4 +37,66 @@ public class CourseScheduleWrapper {
         @ApiModelProperty("结束时间")
         private long endTime;
     }
+
+    @Data
+    public static class MyCourseVo{
+        @ApiModelProperty(value = "上课日期")
+        private Date classDate;
+
+        @ApiModelProperty(value = "上课时间")
+        private Date startTime;
+
+        @ApiModelProperty(value = "下课时间")
+        private Date endTime;
+
+        @ApiModelProperty(value = "课程状态(NOT_START:未开始 ING:进行中 COMPLETE:已完成 CANCEL:已取消)")
+        private String status;
+
+        @ApiModelProperty(value = "课程组id")
+        private Long courseGoupId;
+
+        @ApiModelProperty(value = "课程组名称")
+        private String courseGroupName;
+
+        @ApiModelProperty(value = "课程id")
+        private Long courseId;
+
+        @ApiModelProperty(value = "考勤状态 , false:未考勤 true:已考勤")
+        private Boolean attendanceStatus;
+
+        @ApiModelProperty(value = "学员列表")
+        private List<CourseStudentVo> courseStudentVos;
+    }
+
+
+    @Data
+    public static class CourseStudentVo{
+        @ApiModelProperty(value = "用户id")
+        private Long userId;
+
+        @ApiModelProperty(value = "用户姓名")
+        private String userName;
+
+        @ApiModelProperty(value = "头像地址")
+        private String avatar;
+
+        @ApiModelProperty(value = "IM聊天用户ID")
+        private String imUserId;
+    }
+
+
+    @Data
+    public static class CourseQuery{
+        @ApiModelProperty(value = "课程状态(NOT_START:未开始 ING:进行中 COMPLETE:已完成 CANCEL:已取消)")
+        private String status;
+
+        @ApiModelProperty(value = "上课月份")
+        private String classMonth;
+
+        @ApiModelProperty(value = "课程组编号")
+        private Long courseGroupId;
+
+        @ApiModelProperty(value = "考勤状态 , false:未考勤 true:已考勤")
+        private Boolean attendanceStatus;
+    }
 }

+ 22 - 9
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml

@@ -25,25 +25,29 @@
         <result column="pre_student_num_" jdbcType="INTEGER" property="preStudentNum"/>
         <result column="im_group_id_" jdbcType="VARCHAR" property="imGroupId"/>
         <result column="reason_" jdbcType="VARCHAR" property="reason"/>
+        <result column="course_plan_" jdbcType="VARCHAR" property="coursePlan"/>
     </resultMap>
 
     <sql id="Base_Column_List">
         id_
-        , type_, teacher_id_, name_, subject_id_, single_course_minutes_, course_num_, complete_course_num_, course_introduce_, course_price_, status_, sales_start_date_, sales_end_date_, background_pic_, mix_student_num_,pre_student_num_, im_group_id_, course_start_time_, created_by_, created_time_, updated_by_, updated_time_,reason_
+        , type_, teacher_id_, name_, subject_id_, single_course_minutes_, course_num_,
+        complete_course_num_, course_introduce_, course_price_, status_, sales_start_date_,
+        sales_end_date_, background_pic_, mix_student_num_,pre_student_num_, im_group_id_,
+        course_start_time_, created_by_, created_time_, updated_by_, updated_time_,reason_,course_plan_
     </sql>
 
     <insert id="insertBatch" keyColumn="id_" keyProperty="id" useGeneratedKeys="true"
             parameterType="com.yonge.cooleshow.biz.dal.entity.CourseGroup">
         insert into course_group(type_, teacher_id_, name_, subject_id_, single_course_minutes_, course_num_,
         complete_course_num_, course_introduce_, course_price_, status_, sales_start_date_, sales_end_date_, background_pic_,
-        mix_student_num_,pre_student_num_,im_group_id_, course_start_time_, created_by_, created_time_, updated_by_, updated_time_,reason_)
+        mix_student_num_,pre_student_num_,im_group_id_, course_start_time_, created_by_, created_time_, updated_by_, updated_time_,reason_,course_plan_)
         values
         <foreach collection="entities" item="entity" separator=",">
             (#{entity.type}, #{entity.teacherId}, #{entity.name}, #{entity.subjectId}, #{entity.singleCourseMinutes},
             #{entity.courseNum}, #{entity.completeCourseNum}, #{entity.courseIntroduce}, #{entity.coursePrice}, #{entity.status},
             #{entity.salesStartDate}, #{entity.salesEndDate}, #{entity.backgroundPic}, #{entity.mixStudentNum},
             #{entity.preStudentNum},#{entity.imGroupId},#{entity.courseStartTime}, #{entity.createdBy}, #{entity.createdTime}, #{entity.updatedBy},
-            #{entity.updatedTime},#{entity.reason})
+            #{entity.updatedTime},#{entity.reason},#{entity.coursePlan})
         </foreach>
     </insert>
 
@@ -67,6 +71,7 @@
         b.mix_student_num_            as mixStudentNum,
         b.im_group_id_              as imGroupId,
         b.reason_ as                   reason,
+        b.course_plan_ as coursePlan,
         0  as existBuy
         from course_group as b
         left join subject as s on b.subject_id_ = s.id_
@@ -114,6 +119,7 @@
                         b.mix_student_num_            as mixStudentNum,
                         b.im_group_id_                as imGroupId,
                         b.reason_ as                   reason,
+                        b.course_plan_ as coursePlan,
                         if(y.status_ = 'PAID', 1, 0)  as existBuy
         from course_group as b
                  left join subject as s on b.subject_id_ = s.id_
@@ -167,7 +173,8 @@
         <if test="param.studentId != null">
             cssp.order_no_ as orderNo,
         </if>
-        cg.im_group_id_  as imGroupId
+        cg.im_group_id_  as imGroupId,
+        cg.course_plan_ as coursePlan
         from course_group cg
         left join course_schedule_student_payment cssp on cg.id_ = cssp.course_group_id_
         left join sys_user su on su.id_ = cssp.user_id_
@@ -298,7 +305,8 @@
             cg.created_time_ as createTime,
             cg.course_introduce_ as courseIntroduce,
         cg.type_ as type,
-            s.name_ as subjectName
+            s.name_ as subjectName,
+            cg.course_plan_ as coursePlan
         from course_group cg
          left join course_schedule_student_payment cssp on cg.id_ = cssp.course_group_id_
         left join subject s on cg.subject_id_ = s.id_
@@ -366,7 +374,8 @@
             su.username_ AS studentName,
             su.real_name_ AS studentRealName,
             cg.status_ AS `status`,
-            cst.start_time_ AS startTime
+            cst.start_time_ AS startTime,
+            cg.course_plan_ AS coursePlan
         FROM course_group cg
         LEFT JOIN `subject` sub ON cg.subject_id_=sub.id_
         LEFT JOIN sys_user tu ON cg.teacher_id_=tu.id_
@@ -485,7 +494,8 @@
             cg.pre_student_num_ AS studentNum,
             cg.status_ AS `status`,
             IFNULL(cm.count_,0) AS completeCount,
-            st.start_time_ AS startTime
+            st.start_time_ AS startTime,
+            cg.course_plan_ AS coursePlan
         FROM course_group cg
         LEFT JOIN `subject` sb ON cg.subject_id_=sb.id_
         LEFT JOIN sys_user su ON su.id_=cg.teacher_id_
@@ -682,7 +692,8 @@
             g.course_price_ AS coursePrice,
             g.status_ AS `status`,
             g.course_introduce_ AS courseIntroduce,
-            g.created_time_ AS createdTime
+            g.created_time_ AS createdTime,
+            g.course_plan_ AS coursePlan
         FROM course_group g
         LEFT JOIN `subject` s ON g.subject_id_=s.id_
         WHERE g.id_ =#{groupId}
@@ -712,6 +723,7 @@
         su.real_name_ AS teacherRealName,
         cg.course_num_ AS courseNum,
         cg.status_ AS `status`,
+        cg.course_plan_ AS coursePlan,
         IFNULL(cm.count_,0) AS completeCount,
         st.start_time_ AS startTime
         FROM course_group cg
@@ -912,6 +924,7 @@
         cg.course_num_ AS courseNum,
         cg.status_ AS `status`,
         IFNULL(cm.count_,0) AS completeCount,
+        cg.course_plan_ AS coursePlan,
         st.start_time_ AS startTime
         FROM course_group cg
         LEFT JOIN `subject` sb ON cg.subject_id_=sb.id_
@@ -1005,7 +1018,7 @@
             resultType="com.yonge.cooleshow.biz.dal.wrapper.course.CourseGroupWrapper$TeacherCourseGroupDto">
         select cg.name_ courseGroupName,cg.status_ status,
                cg.subject_id_ subjectId,
-               cg.complete_course_num_ completeCourseNum,cg.course_num_ courseNum,cg.id_ courseGroupId
+               cg.complete_course_num_ completeCourseNum,cg.course_num_ courseNum,cg.id_ courseGroupId,cg.course_plan_ coursePlan
         from course_group cg
         <where>
             <if test="param.teacherId != null">