瀏覽代碼

小课详情-头信息

肖玮 5 年之前
父節點
當前提交
bf746d861b

+ 33 - 0
mec-education/src/main/java/com/ym/mec/education/controller/VipGroupController.java

@@ -0,0 +1,33 @@
+package com.ym.mec.education.controller;
+
+import com.ym.mec.education.base.BaseResponse;
+import com.ym.mec.education.req.VipGroupReq;
+import com.ym.mec.education.service.IVipGroupService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+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.RestController;
+
+/**
+ * @program: mec
+ * @description: 小课(VIP课)
+ * @author: xw
+ * @create: 2019-09-30 20:16
+ */
+@RestController
+@RequestMapping("api/vipGroup")
+@Api(tags = "小课")
+public class VipGroupController {
+
+    @Autowired
+    private IVipGroupService vipGroupService;
+
+    @PostMapping("/info")
+    @ApiOperation("小课详情-头信息")
+    public BaseResponse info(@RequestBody VipGroupReq vipGroupReq) {
+        return BaseResponse.success(vipGroupService.getInfo(vipGroupReq));
+    }
+}

+ 20 - 0
mec-education/src/main/java/com/ym/mec/education/req/VipGroupReq.java

@@ -0,0 +1,20 @@
+package com.ym.mec.education.req;
+
+import com.ym.mec.education.base.BaseQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: mec
+ * @description: 小课入参
+ * @author: xw
+ * @create: 2019-10-01 23:26
+ */
+@Data
+@ApiModel(description = "小课入参")
+public class VipGroupReq extends BaseQuery {
+
+    @ApiModelProperty(value = "vip课id", required = true)
+    private Long vipGroupId;
+}

+ 1 - 1
mec-education/src/main/java/com/ym/mec/education/resp/ClassGroupResp.java

@@ -64,7 +64,7 @@ public class ClassGroupResp implements Serializable {
     @ApiModelProperty(value = "主讲老师")
     private String teacher;
 
-    @ApiModelProperty(value = "授课老师")
+    @ApiModelProperty(value = "助教老师")
     private String assistant;
 
     @ApiModelProperty(value = "课程进度")

+ 29 - 0
mec-education/src/main/java/com/ym/mec/education/resp/VipGroupResp.java

@@ -0,0 +1,29 @@
+package com.ym.mec.education.resp;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @program: mec
+ * @description: 小课出参
+ * @author: xw
+ * @create: 2019-10-01 23:28
+ */
+@Data
+@ApiModel(description = "小课出参")
+@Accessors(chain = true)
+public class VipGroupResp implements Serializable {
+
+    @ApiModelProperty(value = "授课老师")
+    private String teacher;
+
+    @ApiModelProperty(value = "课程进度")
+    private String courseProgress;
+
+    @ApiModelProperty(value = "上课学生")
+    private List<String> studentList;
+}

+ 4 - 0
mec-education/src/main/java/com/ym/mec/education/service/IVipGroupService.java

@@ -1,7 +1,9 @@
 package com.ym.mec.education.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ym.mec.education.base.BaseResponse;
 import com.ym.mec.education.entity.VipGroup;
+import com.ym.mec.education.req.VipGroupReq;
 
 /**
  * <p>
@@ -13,4 +15,6 @@ import com.ym.mec.education.entity.VipGroup;
  */
 public interface IVipGroupService extends IService<VipGroup> {
 
+    BaseResponse getInfo(VipGroupReq vipGroupReq);
+
 }

+ 2 - 2
mec-education/src/main/java/com/ym/mec/education/service/impl/ClassGroupServiceImpl.java

@@ -52,10 +52,10 @@ public class ClassGroupServiceImpl extends ServiceImpl<ClassGroupMapper, ClassGr
         ClassGroupResp classGroupResp = new ClassGroupResp();
         List<ClassGroupTeacherMapper> teacherMapperList = classGroupTeacherMapperService.list(teacherMapperQueryWrapper);
         if (!CollectionUtils.isEmpty(teacherMapperList)) {
-            teacherMapperList.stream().filter(item -> TeachTypeEnum.TEACHING.getCode().equals(item.getTeacherRole())).findFirst().
+            teacherMapperList.stream().filter(item -> TeachTypeEnum.BISHOP.getCode().equals(item.getTeacherRole())).findFirst().
                     ifPresent(classGroupTeacherMapper -> classGroupResp.
                             setTeacher(userService.getById(classGroupTeacherMapper.getUserId()).getUsername()));
-            teacherMapperList.stream().filter(item -> TeachTypeEnum.BISHOP.getCode().equals(item.getTeacherRole())).findFirst().
+            teacherMapperList.stream().filter(item -> TeachTypeEnum.TEACHING.getCode().equals(item.getTeacherRole())).findFirst().
                     ifPresent(classGroupTeacherMapper -> classGroupResp.
                             setAssistant(userService.getById(classGroupTeacherMapper.getUserId()).getUsername()));
         }

+ 62 - 2
mec-education/src/main/java/com/ym/mec/education/service/impl/VipGroupServiceImpl.java

@@ -1,10 +1,21 @@
 package com.ym.mec.education.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ym.mec.education.entity.VipGroup;
+import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.education.base.BaseResponse;
+import com.ym.mec.education.entity.*;
 import com.ym.mec.education.mapper.VipGroupMapper;
-import com.ym.mec.education.service.IVipGroupService;
+import com.ym.mec.education.req.VipGroupReq;
+import com.ym.mec.education.resp.VipGroupResp;
+import com.ym.mec.education.service.*;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -17,4 +28,53 @@ import org.springframework.stereotype.Service;
 @Service("IVipGroupService")
 public class VipGroupServiceImpl extends ServiceImpl<VipGroupMapper, VipGroup> implements IVipGroupService {
 
+    @Autowired
+    private ICourseScheduleService courseScheduleService;
+    @Autowired
+    private ISysUserService userService;
+    @Autowired
+    private IClassGroupService classGroupService;
+    @Autowired
+    private IClassGroupStudentMapperService classGroupStudentMapperService;
+
+    @Override
+    public BaseResponse getInfo(VipGroupReq vipGroupReq) {
+        if (Objects.isNull(vipGroupReq.getVipGroupId())) {
+            return BaseResponse.errorParam();
+        }
+        VipGroupResp vipGroupResp = new VipGroupResp();
+        QueryWrapper<CourseSchedule> courseScheduleQueryWrapper = new QueryWrapper();
+        courseScheduleQueryWrapper.lambda().eq(CourseSchedule::getClassGroupId, vipGroupReq.getVipGroupId())
+                .eq(CourseSchedule::getType, CourseSchedule.CourseScheduleType.VIP.getCode());
+        CourseSchedule courseSchedule = courseScheduleService.getOne(courseScheduleQueryWrapper);
+        if (Objects.nonNull(courseSchedule)) {
+            if (Objects.nonNull(courseSchedule.getTeacherId())) {
+                Optional.ofNullable(userService.getById(courseSchedule.getTeacherId()))
+                        .ifPresent(user -> vipGroupResp.setTeacher(user.getRealName()));
+            }
+        }
+        QueryWrapper<ClassGroup> classGroupQueryWrapper = new QueryWrapper();
+        classGroupQueryWrapper.lambda().eq(ClassGroup::getMusicGroupId, vipGroupReq.getVipGroupId())
+                .eq(ClassGroup::getType, ClassGroupTypeEnum.VIP.getCode());
+        List<ClassGroup> classGroupList = classGroupService.list(classGroupQueryWrapper);
+        if (!CollectionUtils.isEmpty(classGroupList)) {
+            classGroupList.stream().findFirst().ifPresent(classGroup -> {
+                if (Objects.nonNull(classGroup.getCurrentClassTimes()) && Objects.nonNull(classGroup.getTotalClassTimes())) {
+                    vipGroupResp.setCourseProgress(classGroup.getCurrentClassTimes() + "/" + classGroup.getTotalClassTimes());
+                }
+                QueryWrapper<ClassGroupStudentMapper> classGroupStudentMapperQueryWrapper = new QueryWrapper<>();
+                classGroupStudentMapperQueryWrapper.lambda().eq(ClassGroupStudentMapper::getClassGroupId, classGroup.getId());
+                List<ClassGroupStudentMapper> classGroupStudentMapperList = classGroupStudentMapperService.list(classGroupStudentMapperQueryWrapper);
+                if (!CollectionUtils.isEmpty(classGroupStudentMapperList)) {
+                    QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
+                    sysUserQueryWrapper.lambda().in(SysUser::getId, classGroupStudentMapperList.stream().map(ClassGroupStudentMapper::getUserId).collect(Collectors.toList()));
+                    List<SysUser> studentList = userService.list(sysUserQueryWrapper);
+                    if (!CollectionUtils.isEmpty(studentList)) {
+                        vipGroupResp.setStudentList(studentList.stream().map(SysUser::getRealName).collect(Collectors.toList()));
+                    }
+                }
+            });
+        }
+        return BaseResponse.success(vipGroupResp);
+    }
 }