Explorar o código

Merge branch 'zx_online_update_1218' of http://git.dayaedu.com/yonge/cooleshow into zx_online_update_1218

刘俊驰 hai 3 días
pai
achega
a812f6bde5

+ 8 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/StudentCourseGroupController.java

@@ -8,6 +8,7 @@ import com.yonge.cooleshow.biz.dal.service.AppVersionInfoService;
 import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
 import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.CourseInfoVo;
 import com.yonge.cooleshow.biz.dal.vo.LiveCourseInfoVo;
 import com.yonge.cooleshow.biz.dal.wrapper.course.CourseGroupWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
@@ -46,12 +47,19 @@ public class StudentCourseGroupController extends BaseController {
         return succeed(courseGroupService.queryLiveCourseInfo(groupId));
     }
 
+    @ApiOperation("课程组详情")
+    @GetMapping("/queryCourseInfo")
+    public HttpResponseResult<CourseInfoVo> queryCourseInfo(@ApiParam(value = "课程组id", required = true) @RequestParam(value = "groupId") Long groupId) {
+        return succeed(courseGroupService.queryCourseInfo(groupId));
+    }
+
     @ApiImplicitParams({
             @ApiImplicitParam(name = "teacherId", dataType = "Long", value = "老师id"),
             @ApiImplicitParam(name = "search", dataType = "String", value = "关键字"),
             @ApiImplicitParam(name = "groupStatus", dataType = "String", value = "课程组状态  ING(进行中)  NOT_SALE(未开售,未上架) APPLY(报名中,销售中) COMPLETE(已完成)"),
             @ApiImplicitParam(name = "page", dataType = "Integer", value = "页数"),
             @ApiImplicitParam(name = "subjectId", dataType = "Integer", value = "声部id"),
+            @ApiImplicitParam(name = "courseType", dataType = "String", value = "课程类型"),
             @ApiImplicitParam(name = "rows", dataType = "Integer", value = "每页数量"),
             @ApiImplicitParam(name = "version", dataType = "String", value = "版本"),
             @ApiImplicitParam(name = "platform", dataType = "Integer", value = "平台"),

+ 7 - 6
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherCourseGroupController.java

@@ -2,29 +2,24 @@ package com.yonge.cooleshow.teacher.controller;
 
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
 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.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
-import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum;
 import com.yonge.cooleshow.biz.dal.service.AppVersionInfoService;
 import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
-import com.yonge.cooleshow.biz.dal.service.SysMessageService;
 import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.support.WrapperUtil;
 import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.CourseInfoVo;
 import com.yonge.cooleshow.biz.dal.vo.LiveCourseInfoVo;
-import com.yonge.cooleshow.biz.dal.vo.MyCourseVo;
 import com.yonge.cooleshow.biz.dal.wrapper.course.CourseGroupWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.mybatis.support.PageUtil;
-import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import io.swagger.annotations.*;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -60,6 +55,12 @@ public class TeacherCourseGroupController extends BaseController {
         return succeed(courseGroupService.queryLiveCourseInfo(groupId));
     }
 
+    @ApiOperation("课程组详情")
+    @GetMapping("/queryCourseInfo")
+    public HttpResponseResult<CourseInfoVo> queryCourseInfo(@ApiParam(value = "课程组id", required = true) @RequestParam(value = "groupId") Long groupId) {
+        return succeed(courseGroupService.queryCourseInfo(groupId));
+    }
+
     @ApiImplicitParams({
             @ApiImplicitParam(name = "teacherId", dataType = "Long", value = "老师id"),
             @ApiImplicitParam(name = "search", dataType = "String", value = "关键字"),

+ 10 - 17
cooleshow-app/src/main/java/com/yonge/cooleshow/website/controller/CourseGroupController.java

@@ -5,27 +5,16 @@ import com.yonge.cooleshow.biz.dal.dto.CheckCourseTimeDto;
 import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto;
 import com.yonge.cooleshow.biz.dal.entity.CourseTimeEntity;
 import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
-import com.yonge.cooleshow.biz.dal.service.AppVersionInfoService;
 import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
 import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.CourseInfoVo;
 import com.yonge.cooleshow.biz.dal.vo.LiveCourseInfoVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.page.PageInfo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.*;
 import org.apache.commons.lang3.StringUtils;
-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.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
@@ -45,17 +34,21 @@ public class CourseGroupController extends BaseController {
     /**
      * 服务对象
      */
-    @Autowired
+    @Resource
     private CourseGroupService courseGroupService;
 
-    @Resource
-    private AppVersionInfoService appVersionInfoService;
     @ApiOperation("直播课详情")
     @GetMapping("/queryLiveCourseInfo")
     public HttpResponseResult<LiveCourseInfoVo> queryLiveCourseInfo(@ApiParam(value = "课程组id", required = true) @RequestParam(value = "groupId") Long groupId) {
         return succeed(courseGroupService.queryLiveCourseInfo(groupId));
     }
 
+    @ApiOperation("课程组详情")
+    @GetMapping("/queryCourseInfo")
+    public HttpResponseResult<CourseInfoVo> queryCourseInfo(@ApiParam(value = "课程组id", required = true) @RequestParam(value = "groupId") Long groupId) {
+        return succeed(courseGroupService.queryCourseInfo(groupId));
+    }
+
     @ApiImplicitParams({
             @ApiImplicitParam(name = "teacherId", dataType = "Long", value = "老师id"),
             @ApiImplicitParam(name = "search", dataType = "String", value = "关键字"),

+ 7 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseGroupService.java

@@ -44,6 +44,13 @@ public interface CourseGroupService extends IService<CourseGroup> {
     LiveCourseInfoVo queryLiveCourseInfo(Long groupId);
 
     /**
+     * 查询课程组详情
+     *
+     * @param groupId 课程组id
+     */
+    CourseInfoVo queryCourseInfo(Long groupId);
+
+    /**
      * 分页查询课程组列表
      *
      * @param param 传入参数

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

@@ -135,6 +135,11 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         return queryLiveCourseInfo(groupId, sysUserService.getUser());
     }
 
+    @Override
+    public CourseInfoVo queryCourseInfo(Long groupId) {
+        return queryCourseInfo(groupId, sysUserService.getUser());
+    }
+
     /**
      * 查询课程组详情-直播课详情
      *
@@ -215,6 +220,66 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         }
         return result;
     }
+    private CourseInfoVo queryCourseInfo(Long groupId, SysUser sysUser) {
+        CourseGroup group = Optional.ofNullable(groupId).map(this::getById)
+                .orElseThrow(() -> new BizException("课程组信息不存在"));
+
+        CourseInfoVo result = new CourseInfoVo();
+        result.setCourseGroupId(group.getId());
+        result.setCourseGroupName(group.getName());
+        result.setCourseStartTime(group.getCourseStartTime());
+        result.setSingleCourseMinutes(group.getSingleCourseMinutes());
+        result.setStatus(group.getStatus());
+        result.setStudentCount(group.getPreStudentNum());
+        result.setBackgroundPic(group.getBackgroundPic());
+        result.setTeacherId(group.getTeacherId());
+        result.setCoursePrice(group.getCoursePrice());
+        result.setCourseNum(group.getCourseNum());
+        result.setCourseIntroduce(group.getCourseIntroduce());
+        result.setSalesStartDate(group.getSalesStartDate());
+        result.setSalesEndDate(group.getSalesEndDate());
+        result.setMixStudentNum(group.getMixStudentNum());
+        result.setMaxStudentNum(group.getMaxStudentNum());
+        result.setImGroupId(group.getImGroupId());
+        result.setAuditVersion(group.getAuditVersion());
+        SysUser teacherUser = sysUserService.getByUserId(group.getTeacherId());
+        if (teacherUser == null) {
+            throw new BizException("用户不存在");
+        }
+        if (sysUser.getId().equals(teacherUser.getId())) {
+            result.setMyself(true);
+        } else {
+            result.setMyself(false);
+        }
+        Teacher teacher = teacherService.getById(teacherUser.getId());
+
+        if (teacher != null) {
+            result.setDegreeFlag(teacher.getDegreeFlag());
+            result.setTeacherFlag(teacher.getTeacherFlag());
+
+        }
+        result.setTeacherName(teacherUser.getRealName());
+        result.setUserName(teacherUser.getUsername());
+        result.setAvatar(teacherUser.getAvatar());
+        Optional.ofNullable(group.getSubjectId()).map(subjectService::get)
+                .ifPresent(subject -> result.setSubjectName(subject.getName()));
+        //查询是否购买过该课程组
+        Long id = sysUser.getId();
+
+        //这里修改为,订单完成后才算购买过,待支付和支付中订单不算
+        //因为页面再点击购买按钮时,会请求/userOrder/getPendingOrder接口,如果有支付中的订单,用户选择继续支付或取消订单
+        OrderSearch query = new OrderSearch();
+        query.setUserId(id);
+        query.setGoodType(GoodTypeEnum.LIVE.getCode());
+        query.setBizId(groupId);
+        query.setStatus(OrderStatusEnum.PAID.getCode());
+        List<UserOrderVo> userOrderVos = userOrderService.selectAllList(query);
+        result.setExistBuy(0);
+        if (CollectionUtils.isNotEmpty(userOrderVos)) {
+            result.setExistBuy(1);
+        }
+        return result;
+    }
 
     /**
      * 分页查询课程组列表

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

@@ -1967,7 +1967,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         List<CourseSchedule> liveStart = baseMapper.selectList(Wrappers.<CourseSchedule>lambdaQuery()
                 .eq(CourseSchedule::getLock, 0)
                 .eq(CourseSchedule::getStatus, CourseScheduleEnum.NOT_START)
-                .eq(CourseSchedule::getType, CourseScheduleEnum.LIVE)
+                .in(CourseSchedule::getType, CourseScheduleEnum.LIVE, CourseScheduleEnum.GROUP)
                 .le(CourseSchedule::getStartTime, liveMinute)
                 .ge(CourseSchedule::getEndTime, LocalDateTime.now()));
         List<CourseSchedule> practiceStart = baseMapper.selectList(Wrappers.<CourseSchedule>lambdaQuery()
@@ -2068,7 +2068,9 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
             }
 
             List<CourseScheduleStudentVo> courseList = userList.stream()
-                    .filter(s -> Lists.newArrayList(CourseScheduleEnum.PRACTICE.getCode(),CourseScheduleEnum.VIP.getCode(),CourseScheduleEnum.PIANO_ROOM_CLASS.getCode()).contains(s.getType()))
+                    .filter(s -> Lists.newArrayList(CourseScheduleEnum.PRACTICE.getCode(),
+                            CourseScheduleEnum.VIP.getCode(),
+                            CourseScheduleEnum.PIANO_ROOM_CLASS.getCode()).contains(s.getType()))
                     .collect(Collectors.toList());
 
             //清除缓存
@@ -2091,9 +2093,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         if (CollectionUtils.isNotEmpty(completeList)) {
             List<Long> ids = completeList.stream().filter(s -> {
                 return s.getCourseCount().equals(s.getCourseNum());
-            }).map(s -> {
-                return s.getId();
-            }).collect(Collectors.toList());
+            }).map(CourseGroup::getId).collect(Collectors.toList());
             if (CollectionUtils.isNotEmpty(ids)) {
                 //同步课程组状态
                 courseGroupService.getDao().updateBatch(ids);

+ 3 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImGroupServiceImpl.java

@@ -408,9 +408,10 @@ public class ImGroupServiceImpl extends ServiceImpl<ImGroupDao, ImGroup> impleme
         //imUserFriendService.refreshCustomer(teacherId, ClientEnum.TEACHER, new ArrayList<>(studentIds), ClientEnum.STUDENT);
 
 
-        // 直播课、琴房课校验群成员人数限制
+        // 直播课、琴房课、小组课校验群成员人数限制
         if (CourseScheduleEnum.PIANO_ROOM_CLASS.getCode().equals(courseGroupType)
-            || CourseScheduleEnum.LIVE.getCode().equals(courseGroupType)) {
+            || CourseScheduleEnum.LIVE.getCode().equals(courseGroupType)
+            || CourseScheduleEnum.GROUP.getCode().equals(courseGroupType)) {
 
             // 增加群成员人数限制,若超过限制则不添加到群组
             SysConfig config = sysConfigService.findByParamName(SysConfigConstant.GROUP_MEMBER_LIMIT);

+ 34 - 63
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SysUserServiceImpl.java

@@ -14,33 +14,22 @@ import com.yonge.cooleshow.auth.api.dto.RealnameAuthReq;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dao.MusicSheetAuthRecordDao;
 import com.yonge.cooleshow.biz.dal.dao.MusicSheetDao;
-import com.yonge.cooleshow.biz.dal.entity.CourseGroup;
-import com.yonge.cooleshow.biz.dal.entity.ImGroup;
-import com.yonge.cooleshow.biz.dal.entity.ImGroupMember;
-import com.yonge.cooleshow.biz.dal.entity.ImUserFriend;
-import com.yonge.cooleshow.biz.dal.entity.Student;
-import com.yonge.cooleshow.biz.dal.entity.Teacher;
-import com.yonge.cooleshow.biz.dal.entity.UserOrder;
-import com.yonge.cooleshow.biz.dal.entity.UserOrderRefund;
-import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroup;
+import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.enums.*;
 import com.yonge.cooleshow.biz.dal.enums.im.EImGroupMemberRoleType;
 import com.yonge.cooleshow.biz.dal.mapper.SysUserMapper;
 import com.yonge.cooleshow.biz.dal.service.*;
-import com.yonge.cooleshow.biz.dal.service.im.ImGroupCoreService;
 import com.yonge.cooleshow.biz.dal.vo.UserAccountVo;
 import com.yonge.cooleshow.biz.dal.wrapper.UserInfoWrapper;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.ContractTemplateTypeEnum;
 import com.yonge.cooleshow.common.enums.SysUserType;
 import com.yonge.toolset.base.exception.BizException;
-import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext;
 import com.yonge.toolset.thirdparty.user.realname.RealnameAuthenticationPlugin;
 import com.yonge.toolset.utils.idcard.IdcardInfoExtractor;
 import com.yonge.toolset.utils.idcard.IdcardValidator;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
@@ -66,44 +55,27 @@ public class SysUserServiceImpl implements SysUserService {
     @Resource
     private TeacherService teacherService;
     @Resource
-    private MessageSenderPluginContext messageSenderPluginContext;
-
-    @Autowired
     private UserOrderService userOrderService;
-
-    @Autowired
+    @Resource
     private UserOrderRefundService userOrderRefundService;
-
-    @Autowired
+    @Resource
     private ImGroupMemberService imGroupMemberService;
-
-    @Autowired
+    @Resource
     private ImGroupService imGroupService;
-
-    @Autowired
-    private ImGroupCoreService imGroupCoreService;
-
-    @Autowired
+    @Resource
     private CourseGroupService courseGroupService;
-
-    @Autowired
+    @Resource
     private VideoLessonGroupService videoLessonGroupService;
-
-    @Autowired
+    @Resource
     private UserAccountService userAccountService;
-
-    @Autowired
+    @Resource
     private MallPortalFeignService mallPortalFeignService;
-
-    @Autowired
+    @Resource
     private ImUserFriendService imUserFriendService;
-
-    @Autowired
+    @Resource
     private MusicSheetDao musicSheetDao;
-
-    @Autowired
+    @Resource
     private MusicSheetAuthRecordDao musicSheetAuthRecordDao;
-
     @Resource
     private MessageFeignClientService messageFeignClientService;
     @Override
@@ -278,29 +250,19 @@ public class SysUserServiceImpl implements SysUserService {
             // 趣纠课
             List<CourseGroup> list = courseGroupService.lambdaQuery()
                 .eq(CourseGroup::getTeacherId, userId)
-                .in(CourseGroup::getType, Arrays.asList("PRACTICE", "LIVE", "PIANO_ROOM_CLASS"))
+                .in(CourseGroup::getType, Arrays.asList("PRACTICE", "LIVE", "PIANO_ROOM_CLASS", "GROUP","VIP"))
                 .in(CourseGroup::getStatus, Arrays.asList("ING", "APPLY", "NOT_SALE"))
                 .list();
-            String courseMsg ="";
+            StringBuffer courseMsg = new StringBuffer();
             if (!CollectionUtils.isEmpty(list)) {
-                List<String> courseTypes = list.stream().map(o -> o.getType()).distinct().collect(Collectors.toList());
-                if (courseTypes.contains(CourseScheduleEnum.LIVE.name())) {
-                    courseMsg += "直播课";
-                }
-                if (courseTypes.contains(CourseScheduleEnum.PRACTICE.name())){
-                    if (courseMsg.length() > 0) {
-                        courseMsg+="/";
-                    }
-                    courseMsg += "趣纠课";
-                }
-                if (courseTypes.contains(CourseScheduleEnum.PIANO_ROOM_CLASS.name())){
-                    if (courseMsg.length() > 0) {
-                        courseMsg+="/";
-                    }
-                    courseMsg += "琴房课";
-                }
+                List<String> courseTypes = list.stream().map(CourseGroup::getType).distinct().collect(Collectors.toList());
+                this.appendErrMsg(courseMsg,courseTypes,CourseScheduleEnum.LIVE);
+                this.appendErrMsg(courseMsg,courseTypes,CourseScheduleEnum.PRACTICE);
+                this.appendErrMsg(courseMsg,courseTypes,CourseScheduleEnum.PIANO_ROOM_CLASS);
+                this.appendErrMsg(courseMsg,courseTypes,CourseScheduleEnum.VIP);
+                this.appendErrMsg(courseMsg,courseTypes,CourseScheduleEnum.GROUP);
                 if (courseMsg.length() > 0) {
-                    courseMsg="账号存在未开始/进行中的" + courseMsg;
+                    courseMsg.insert(0,"账号存在未开始/进行中的");
                 }
             }
             // 视频课
@@ -311,9 +273,9 @@ public class SysUserServiceImpl implements SysUserService {
 
             if (videoCourse > 0) {
                 if (courseMsg.length() > 0) {
-                    courseMsg+="和未下架的视频课";
+                    courseMsg.append("和未下架的视频课");
                 } else {
-                    courseMsg="账号存在未下架的视频课";
+                    courseMsg.append("账号存在未下架的视频课");
                 }
             } else {
                 // 判断审核中的视频课
@@ -324,15 +286,15 @@ public class SysUserServiceImpl implements SysUserService {
                     .count();
                 if (videoCourse > 0) {
                     if (courseMsg.length() > 0) {
-                        courseMsg+="和未下架的视频课";
+                        courseMsg.append("和未下架的视频课");
                     } else {
-                        courseMsg="账号存在未下架的视频课";
+                        courseMsg.append("账号存在未下架的视频课");
                     }
                 }
 
             }
             if (courseMsg.length() > 0) {
-                errMsg.add(courseMsg);
+                errMsg.add(courseMsg.toString());
             }
 
             // 存在未提现的金额
@@ -379,6 +341,15 @@ public class SysUserServiceImpl implements SysUserService {
         return logOffs;
     }
 
+    private void appendErrMsg(StringBuffer courseMsg,List<String> courseTypes,CourseScheduleEnum courseScheduleEnum) {
+        if (courseTypes.contains(courseScheduleEnum.name())) {
+            if (courseMsg.length() > 0) {
+                courseMsg.append("/");
+            }
+            courseMsg.append(courseScheduleEnum.getMsg());
+        }
+    }
+
     private Map<String, String> hasUnfinishedOrder(Long userId) {
         // 商城订单 0->待付款;1->待发货;2->已发货
         HttpResponseResult<Map<String, Set<CheckStatus>>> httpResponseResult = mallPortalFeignService.checkOrderStatus(userId);

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

@@ -40,9 +40,6 @@ public class CourseGroupVo implements Serializable {
     @ApiModelProperty(value = "课程人数")
     private Integer studentCount;
 
-    @ApiModelProperty(value = "最大成课人数")
-    private Integer maxStudentCount;
-
     @ApiModelProperty(value = "课程图片")
     private String backgroundPic;
 
@@ -75,6 +72,9 @@ public class CourseGroupVo implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date salesEndDate;
 
+    @ApiModelProperty(value = "最大成课人数")
+    private Integer maxStudentNum;
+
     @ApiModelProperty(value = "最少成课人数")
     private Integer mixStudentNum;
 

+ 25 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseInfoVo.java

@@ -0,0 +1,25 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel(value = "CourseInfoVo", description = "课程组详情")
+public class CourseInfoVo extends CourseGroupVo implements Serializable {
+
+    @ApiModelProperty(value = "true 自己的课,false 其他老师的课程")
+    private Boolean myself;
+
+    @ApiModelProperty(value = "是否审核时可见 (0:否  1:是)")
+    private YesOrNoEnum auditVersion = YesOrNoEnum.NO;
+
+    @ApiModelProperty("学位认证 0:未认证 1:已认证 ")
+    private YesOrNoEnum degreeFlag;
+
+    @ApiModelProperty("教师资格认证 0:未认证 1:已认证 ")
+    private YesOrNoEnum teacherFlag;
+}