zouxuan пре 1 месец
родитељ
комит
0eede809c3

+ 7 - 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,6 +47,12 @@ 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 = "关键字"),

+ 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 传入参数

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

@@ -132,6 +132,11 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         return queryLiveCourseInfo(groupId, sysUserService.getUser());
     }
 
+    @Override
+    public CourseInfoVo queryCourseInfo(Long groupId) {
+        return queryCourseInfo(groupId, sysUserService.getUser());
+    }
+
     /**
      * 查询课程组详情-直播课详情
      *
@@ -212,6 +217,65 @@ 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.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;
+    }
 
     /**
      * 分页查询课程组列表

+ 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;
+}