zouxuan hace 9 meses
padre
commit
319187075a
Se han modificado 13 ficheros con 171 adiciones y 249 borrados
  1. 58 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/open/OpenSubjectController.java
  2. 6 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherCourseGroupController.java
  3. 1 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleStudentPaymentDao.java
  4. 3 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MyCourseSearch.java
  5. 0 52
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserRemind.java
  6. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseGroupService.java
  7. 41 33
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java
  8. 11 11
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java
  9. 2 6
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleStudentPaymentServiceImpl.java
  10. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/SysUserServiceImpl.java
  11. 7 143
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/MyCourseVo.java
  12. 27 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/course/CourseGroupWrapper.java
  13. 12 3
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

+ 58 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/open/OpenSubjectController.java

@@ -0,0 +1,58 @@
+package com.yonge.cooleshow.student.controller.open;
+
+import com.yonge.cooleshow.biz.dal.entity.Subject;
+import com.yonge.cooleshow.biz.dal.queryInfo.SubjectQueryInfo;
+import com.yonge.cooleshow.biz.dal.service.SubjectService;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.toolset.base.page.PageInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+import java.util.stream.Collectors;
+
+@RequestMapping("${app-config.url.student:}/open/subject")
+@Api(tags = "声部服务")
+@RestController
+public class OpenSubjectController extends BaseController {
+
+    @Autowired
+    private SubjectService subjectService;
+
+    @ApiOperation(value = "根据声部编号查询声部")
+    @GetMapping("/get/{id}")
+    public Object get(@ApiParam(value = "声部编号", required = true) @PathVariable("id") Long id) {
+        return succeed(subjectService.get(id));
+    }
+
+    @ApiOperation(value = "分页查询声部树状列表")
+    @PostMapping("/queryPageTree")
+    public HttpResponseResult<PageInfo<Subject>> queryPageTree(@RequestBody SubjectQueryInfo queryInfo) {
+        return succeed(subjectService.queryPageTree(queryInfo));
+    }
+
+    @ApiOperation(value = "分页查询声部列表")
+    @GetMapping("/queryPage")
+    public HttpResponseResult<PageInfo<Subject>> queryPage(SubjectQueryInfo queryInfo) {
+        PageInfo<Subject> pageInfo = subjectService.queryPage(queryInfo);
+
+        if (pageInfo.getRows().size() == 0) {
+            return succeed(pageInfo);
+        }
+
+        Map<Long, Subject> map =
+                subjectService.findBySubjectByIdList(pageInfo.getRows().stream().map(Subject::getParentSubjectId).collect(Collectors.toList())).stream()
+                .collect(Collectors.toMap(Subject::getId, t -> t));
+
+        pageInfo.getRows().forEach(row -> {
+            if (row.getParentSubjectId() != null && row.getParentSubjectId() > 0) {
+                row.setParentSubjectName(map.get(row.getParentSubjectId()).getName());
+            }
+        });
+        return succeed(pageInfo);
+    }
+}

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

@@ -142,5 +142,11 @@ public class TeacherCourseGroupController extends BaseController {
         IPage<CourseGroupWrapper.TeacherCourseGroupDto> pages = courseGroupService.myCourseGroup(PageUtil.getPage(query), query);
         return succeed(PageUtil.pageInfo(pages));
     }
+
+    @ApiOperation("获取课程组关联的学员")
+    @PostMapping("/queryStudentByGroupId")
+    public HttpResponseResult<List<CourseGroupWrapper.CourseStudentVo>> queryStudentByGroupId(Long groupId) {
+        return succeed(courseGroupService.queryStudentByGroupId(groupId));
+    }
 }
 

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleStudentPaymentDao.java

@@ -6,6 +6,7 @@ import com.yonge.cooleshow.biz.dal.entity.CourseScheduleStudentPayment;
 import com.yonge.cooleshow.biz.dal.vo.CourseScheduleStudentPaymentVo;
 import com.yonge.cooleshow.biz.dal.vo.CourseScheduleStudentVo;
 import com.yonge.cooleshow.biz.dal.vo.LiveCourseInfoVo;
+import com.yonge.cooleshow.biz.dal.wrapper.course.CourseGroupWrapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MyCourseSearch.java

@@ -49,4 +49,7 @@ public class MyCourseSearch extends QueryInfo {
 
     @ApiModelProperty(value = "课程类型")
     private String courseType = "PRACTICE";
+
+    @ApiModelProperty(value = "考勤状态 , false:未考勤 true:已考勤")
+    private Boolean attendanceStatus;
 }

+ 0 - 52
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserRemind.java

@@ -1,52 +0,0 @@
-package com.yonge.cooleshow.biz.dal.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
-import com.yonge.cooleshow.biz.dal.enums.activity.ActivityRankingMethodEnum;
-import com.yonge.cooleshow.biz.dal.enums.activity.ActivityRankingRuleEnum;
-import com.yonge.cooleshow.common.enums.ActivityTypeEnum;
-import com.yonge.cooleshow.common.enums.RegistrationMethodEnum;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotNull;
-import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.Date;
-
-/**
- * 活动计划表
- */
-@TableName("user_remind")
-@ApiModel(value = "UserRemind", description = "用户提醒表")
-@Data
-public class UserRemind implements Serializable {
-    private static final long serialVersionUID = 1L;
-    @ApiModelProperty("主键 ")
-    @TableId(value = "id_", type = IdType.AUTO)
-    private Long id;
-
-    @ApiModelProperty(value = "用户id")
-    private Long userId;
-
-    @ApiModelProperty(value = "提醒类型")
-    private String remindType;
-
-    @ApiModelProperty(value = "客户端")
-    private String client;
-
-    @ApiModelProperty("创建时间 ")
-    @TableField(value = "create_time_")
-    private Date createTime;
-
-    @ApiModelProperty("更新时间 ")
-    @TableField(value = "update_time_")
-    private Date updateTime;
-}

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

@@ -370,5 +370,7 @@ public interface CourseGroupService extends IService<CourseGroup> {
     //老师端-我的课程组
     IPage<CourseGroupWrapper.TeacherCourseGroupDto> myCourseGroup(IPage<CourseGroupWrapper.TeacherCourseGroupDto> page,
                                                                   CourseGroupWrapper.TeacherCourseGroupQuery query);
+
+    List<CourseGroupWrapper.CourseStudentVo> queryStudentByGroupId(Long groupId);
 }
 

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

@@ -6,8 +6,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Lists;
-import com.microsvc.toolkit.config.jwt.utils.JwtUserInfo;
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.constant.CourseConstant;
 import com.yonge.cooleshow.biz.dal.dao.CourseGroupDao;
@@ -51,7 +49,6 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.text.MessageFormat;
 import java.time.LocalDate;
 import java.time.ZoneId;
 import java.util.*;
@@ -75,7 +72,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
     private final static Logger log = LoggerFactory.getLogger(CourseGroupServiceImpl.class);
 
     @Autowired
-    private SysUserFeignService sysUserFeignService;
+    private SysUserService sysUserService;
     @Autowired
     private RedissonClient redissonClient;
     @Autowired
@@ -129,7 +126,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
      */
     @Override
     public LiveCourseInfoVo queryLiveCourseInfo(Long groupId) {
-        return queryLiveCourseInfo(groupId, getSysUser());
+        return queryLiveCourseInfo(groupId, sysUserService.getUser());
     }
 
     /**
@@ -159,7 +156,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         result.setMixStudentNum(group.getMixStudentNum());
         result.setImGroupId(group.getImGroupId());
         result.setAuditVersion(group.getAuditVersion());
-        SysUser teacherUser = getSysUser(group.getTeacherId());
+        SysUser teacherUser = sysUserService.getByUserId(group.getTeacherId());
         if (teacherUser == null) {
             throw new BizException("用户不存在");
         }
@@ -230,11 +227,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         pageInfo.setAsc("b.created_time_");
         String os = WrapperUtil.toStr(param, "os");
         if (StringUtils.isNotBlank(os) && os.equals("student")) {
-            Long studentId = getSysUser().getId();
-            if (Objects.isNull(studentId)) {
-                throw new BizException("未查询到用户信息请重新登录");
-            }
-            param.put("studentId", studentId);
+            param.put("studentId", sysUserService.getUserId());
             IPage<CourseGroupVo> page = baseMapper.queryStudentCourseGroup(pageInfo, param);
             return PageUtil.pageInfo(page);
         }
@@ -356,7 +349,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         Long groupId = WrapperUtil.toLong(param, "groupId", "课程组id不能为空!");
         Long studentId = orderGoodsInfo.getUserId();
         //校验学生信息
-        getSysUser(studentId);
+        sysUserService.findUserById(studentId);
         //课程组信息
         CourseGroup courseGroup = this.getOne(Wrappers.<CourseGroup>lambdaQuery()
                 .eq(CourseGroup::getId, groupId)
@@ -412,6 +405,32 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         return page.setRecords(records);
     }
 
+    @Override
+    public List<CourseGroupWrapper.CourseStudentVo> queryStudentByGroupId(Long groupId) {
+        List<CourseScheduleStudentPayment> studentPayments = courseScheduleStudentPaymentService.lambdaQuery()
+                .eq(CourseScheduleStudentPayment::getCourseGroupId, groupId)
+                .isNotNull(CourseScheduleStudentPayment::getUserId)
+                .list();
+        if (CollectionUtils.isNotEmpty(studentPayments)) {
+            List<Long> userIds = studentPayments.stream().map(CourseScheduleStudentPayment::getUserId).distinct().collect(Collectors.toList());
+            Map<Long, com.yonge.cooleshow.biz.dal.entity.SysUser> mapByIds = sysUserService.getMapByIds(userIds);
+            List<CourseGroupWrapper.CourseStudentVo> result = new ArrayList<>();
+            userIds.forEach(e -> {
+                CourseGroupWrapper.CourseStudentVo vo = new CourseGroupWrapper.CourseStudentVo();
+                vo.setStudentId(e);
+                com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = mapByIds.get(e);
+                vo.setStudentName(sysUser.getRealName());
+                vo.setUserName(sysUser.getUsername());
+                vo.setAvatar(sysUser.getAvatar());
+                vo.setImUserId(imGroupService.getImUserId(String.valueOf(e),
+                        ClientEnum.STUDENT.name()));
+                result.add(vo);
+            });
+            return result;
+        }
+        return Collections.emptyList();
+    }
+
     /**
      *
      * 直播课购买后数据写入
@@ -552,7 +571,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         timeList.forEach(o -> {
             boolean checkDataTime = courseScheduleService.checkStudentCourseTime(studentId, startTimeFun.apply(o), endTimeFun.apply(o));
             if (checkDataTime) {
-                SysUser sysUser = sysUserFeignService.queryUserById(studentId);
+                SysUser sysUser = sysUserService.getByUserId(studentId);
                 throw new BizException("学生:" + sysUser.getUsername() + ",预计安排在" + DateUtil.dateToString(startTimeFun.apply(o), "yyyy年MM月dd号 HH点mm分") + "的课程时间存在冲突!");
             }
         });
@@ -581,7 +600,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
             );
             Optional.ofNullable(teacherTime).orElseThrow(() -> new BizException("未查询到老师陪练课设置!"));
             skipHoliday = teacherTime.getSkipHolidayFlag();
-            studentId = getSysUser().getId();
+            studentId = sysUserService.getUserId();
         }
 
         //获取当前课程
@@ -821,7 +840,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         Long groupId = WrapperUtil.toLong(param, "groupId", "课程组id不能为空!");
         Long studentId = orderReqInfo.getUserId();
         //校验学生信息
-        getSysUser(studentId);
+        sysUserService.findUserById(studentId);
         //课程组信息
         CourseGroup courseGroup = this.getOne(Wrappers.<CourseGroup>lambdaQuery()
                 .eq(CourseGroup::getId, groupId)
@@ -1018,9 +1037,9 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
     @Override
     public void buyLiveSendMessage(CourseScheduleStudentPayment studentPayment, CourseGroup courseGroup) {
         //查询老师信息
-        SysUser teacherInfo = getSysUser(courseGroup.getTeacherId());
+        SysUser teacherInfo = sysUserService.findUserById(courseGroup.getTeacherId());
         //查询学生信息
-        SysUser studentInfo = getSysUser(studentPayment.getUserId());
+        SysUser studentInfo = sysUserService.findUserById(studentPayment.getUserId());
         try {
 
             String payType = "";
@@ -1102,17 +1121,6 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
                 .eq(CourseScheduleStudentPayment::getOrderNo, orderParam.getOrderNo()));
     }
 
-    private SysUser getSysUser(Long userId) {
-        return Optional.ofNullable(userId)
-                .map(sysUserFeignService::queryUserById)
-                .orElseThrow(() -> new BizException("用户不存在"));
-    }
-
-    private SysUser getSysUser() {
-        return Optional.ofNullable(sysUserFeignService.queryUserInfo())
-                .orElseThrow(() -> new BizException("用户不存在"));
-    }
-
     /**
      * <p>定时将符合开售日期的未开售的直播课课程组修改为报名中状态-每隔10分钟执行一次
      * <p>定时将符合结束售卖日期的在售卖中的直播课课程组修改为取消或者成课状态状态-每隔10分钟执行一次
@@ -1330,7 +1338,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
     private void sendStudentMessage(Set<Long> userIds, CourseGroup courseGroup) {
         for (Long userId : userIds) {
 
-                SysUser user = sysUserFeignService.queryUserById(userId);
+                SysUser user = sysUserService.getByUserId(userId);
                 // 发短信
                 try {
                     Map<Long, String> receivers = new HashMap<>();
@@ -1396,7 +1404,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         }
         // 发短信
         try {
-            SysUser user = sysUserFeignService.queryUserById(courseGroup.getTeacherId());
+            SysUser user = sysUserService.getByUserId(courseGroup.getTeacherId());
             Map<Long, String> receivers = new HashMap<>();
             receivers.put(user.getId(), user.getPhone());
             sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_LIVE_COMPLETION_FAIL,
@@ -1407,7 +1415,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
 
         // 发推送
         try {
-            SysUser user = sysUserFeignService.queryUserById(courseGroup.getTeacherId());
+            SysUser user = sysUserService.getByUserId(courseGroup.getTeacherId());
             Map<Long, String> receivers = new HashMap<>();
             receivers.put(user.getId(), user.getPhone());
             sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.LIVE_COMPLETION_FAIL,
@@ -1507,7 +1515,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
     @Override
     public ShareProfitVo shareLiveCourseProfit(SysUser sysUser, Long liveGroupId) {
         LiveCourseInfoVo liveCourseInfoVo = queryLiveCourseInfo(liveGroupId, sysUser);
-        SysUser teacher = this.getSysUser(liveCourseInfoVo.getTeacherId());
+        SysUser teacher = sysUserService.getByUserId(liveCourseInfoVo.getTeacherId());
 
         LiveCourseGroupShareVo liveCourseGroupShareVo = new LiveCourseGroupShareVo();
         BeanUtils.copyProperties(liveCourseInfoVo, liveCourseGroupShareVo);
@@ -1580,7 +1588,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
     private void sendOutSaleMessage(LiveSaleOutDto dto, CourseGroup liveCourseGroupVo) {
         // 发送课程下架通知
         try {
-            SysUser user = sysUserFeignService.queryUserById(liveCourseGroupVo.getTeacherId());
+            SysUser user = sysUserService.getByUserId(liveCourseGroupVo.getTeacherId());
             Map<Long, String> receivers = new HashMap<>();
             receivers.put(user.getId(), user.getPhone());
             sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.LIVE_COURSE_OUT_SALE_REASON,

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

@@ -162,20 +162,20 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
             CourseScheduleEnum.existCourseState(status, "查询条件错误,课程状态不正确");
         }
         param.put("status", status);
-        String classDate = WrapperUtil.toStr(param, "classDate", "查询时间不能为空!");
+//        String classDate = WrapperUtil.toStr(param, "classDate", "查询时间不能为空!");
         //本月的第一天
-        LocalDate firstDay;
-        try {
-            String[] classDateSp = classDate.split("-");
-            firstDay = LocalDate.of(Integer.parseInt(classDateSp[0]), Integer.parseInt(classDateSp[1]), 1);
-        } catch (Exception e) {
-            throw new BizException("查询时间格式不正确 [" + classDate + "]");
-        }
+//        LocalDate firstDay;
+//        try {
+//            String[] classDateSp = classDate.split("-");
+//            firstDay = LocalDate.of(Integer.parseInt(classDateSp[0]), Integer.parseInt(classDateSp[1]), 1);
+//        } catch (Exception e) {
+//            throw new BizException("查询时间格式不正确 [" + classDate + "]");
+//        }
         //本月的最后一天
-        LocalDate lastDay = firstDay.with(TemporalAdjusters.lastDayOfMonth());
+//        LocalDate lastDay = firstDay.with(TemporalAdjusters.lastDayOfMonth());
         //查询该月的所有课程
-        param.put("startDate", firstDay.toString());
-        param.put("endDate", lastDay.toString());
+//        param.put("startDate", firstDay.toString());
+//        param.put("endDate", lastDay.toString());
         param.put("teacherId", sysUserService.getUserId());
         param.put("type", CourseScheduleEnum.LIVE.getCode());
         param.put("groupState", String.join(",", CourseGroupEnum.ING.getCode(), CourseGroupEnum.COMPLETE.getCode()));

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

@@ -1,19 +1,14 @@
 package com.yonge.cooleshow.biz.dal.service.impl;
 
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.biz.dal.dao.CourseScheduleStudentPaymentDao;
-import com.yonge.cooleshow.biz.dal.dto.ImNetworkCustomMessage;
-import com.yonge.cooleshow.biz.dal.dto.ImNetworkRoomMusicSheetDownloadData;
 import com.yonge.cooleshow.biz.dal.entity.CourseScheduleStudentPayment;
 import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
 import com.yonge.cooleshow.biz.dal.service.CourseScheduleStudentPaymentService;
 import com.yonge.cooleshow.biz.dal.vo.LiveCourseInfoVo;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.stereotype.Service;
-
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
@@ -55,6 +50,7 @@ public class CourseScheduleStudentPaymentServiceImpl extends ServiceImpl<CourseS
         List<CourseScheduleEnum> courseScheduleEnumList = new ArrayList<>();
         courseScheduleEnumList.add(CourseScheduleEnum.PIANO_ROOM_CLASS);
         courseScheduleEnumList.add(CourseScheduleEnum.PRACTICE);
+        courseScheduleEnumList.add(CourseScheduleEnum.VIP);
         List<CourseScheduleStudentPayment> list = this.lambdaQuery()
                 .eq(CourseScheduleStudentPayment::getCourseId, courseId)
                 .in(CourseScheduleStudentPayment::getCourseType,courseScheduleEnumList)

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

@@ -130,7 +130,7 @@ public class SysUserServiceImpl implements SysUserService {
     public SysUser findUserById(Long userId) {
         Optional<SysUser> optional = Optional.ofNullable(sysUserFeignService.queryUserById(userId));
         optional.map(SysUser::getId).
-                orElseThrow(()-> new BizException("请登录"));
+                orElseThrow(()-> new BizException("用户信息不存在"));
         return optional.get();
     }
 

+ 7 - 143
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/MyCourseVo.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.biz.dal.vo;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.io.Serializable;
 import java.util.Date;
@@ -10,6 +11,7 @@ import java.util.Date;
  * @Author: cy
  * @Date: 2022/4/11
  */
+@Data
 @ApiModel(value = "MyCourseVo")
 public class MyCourseVo implements Serializable {
     @ApiModelProperty(value = "课表id")
@@ -52,6 +54,9 @@ public class MyCourseVo implements Serializable {
     @ApiModelProperty(value = "课程组id")
     private Integer courseGoupId;
 
+    @ApiModelProperty(value = "课程组名称")
+    private String courseGroupName;
+
     @ApiModelProperty(value = "课程id")
     private Integer courseId;
 
@@ -67,148 +72,7 @@ public class MyCourseVo implements Serializable {
     @ApiModelProperty(value = "IM聊天用户ID")
     private String imUserId;
 
-
-    public Boolean getDelFlag() {
-        return delFlag;
-    }
-
-    public void setDelFlag(Boolean delFlag) {
-        this.delFlag = delFlag;
-    }
-    public Integer getStudentReplied() {
-        return studentReplied;
-    }
-
-    public void setStudentReplied(Integer studentReplied) {
-        this.studentReplied = studentReplied;
-    }
-
-    public Integer getTeacherReplied() {
-        return teacherReplied;
-    }
-
-    public void setTeacherReplied(Integer teacherReplied) {
-        this.teacherReplied = teacherReplied;
-    }
-
-    public String getRealName() {
-        return realName;
-    }
-
-    public void setRealName(String realName) {
-        this.realName = realName;
-    }
-
-    public String getSignInTime() {
-        return signInTime;
-    }
-
-    public void setSignInTime(String signInTime) {
-        this.signInTime = signInTime;
-    }
-
-    public Integer getCourseGoupId() {
-        return courseGoupId;
-    }
-
-    public void setCourseGoupId(Integer courseGoupId) {
-        this.courseGoupId = courseGoupId;
-    }
-
-    public Integer getCourseId() {
-        return courseId;
-    }
-
-    public void setCourseId(Integer courseId) {
-        this.courseId = courseId;
-    }
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public Long getUserId() {
-        return userId;
-    }
-
-    public void setUserId(Long userId) {
-        this.userId = userId;
-    }
-
-    public String getUserName() {
-        return userName;
-    }
-
-    public void setUserName(String userName) {
-        this.userName = userName;
-    }
-
-    public String getAvatar() {
-        return avatar;
-    }
-
-    public void setAvatar(String avatar) {
-        this.avatar = avatar;
-    }
-
-    public Date getClassDate() {
-        return classDate;
-    }
-
-    public void setClassDate(Date classDate) {
-        this.classDate = classDate;
-    }
-
-    public Date getStartTime() {
-        return startTime;
-    }
-
-    public void setStartTime(Date startTime) {
-        this.startTime = startTime;
-    }
-
-    public Date getEndTime() {
-        return endTime;
-    }
-
-    public void setEndTime(Date endTime) {
-        this.endTime = endTime;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public Integer getSubjectId() {
-        return subjectId;
-    }
-
-    public void setSubjectId(Integer subjectId) {
-        this.subjectId = subjectId;
-    }
-
-    public String getSubjectName() {
-        return subjectName;
-    }
-
-    public void setSubjectName(String subjectName) {
-        this.subjectName = subjectName;
-    }
-
-    public String getImUserId() {
-        return imUserId;
-    }
-
-    public void setImUserId(String imUserId) {
-        this.imUserId = imUserId;
-    }
+    @ApiModelProperty(value = "考勤状态 , false:未考勤 true:已考勤")
+    private Boolean attendanceStatus;
 }
 

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

@@ -1,9 +1,14 @@
 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
@@ -51,4 +56,26 @@ public class CourseGroupWrapper {
         @ApiModelProperty(value = "学员头像")
         private String studentAvatar;
     }
+
+    @ApiModel(value = "CourseStudentVo", description = "学员列表")
+    @Data
+    public static class CourseStudentVo {
+
+        @ApiModelProperty(value = "学员id")
+        private Long studentId;
+
+        @ApiModelProperty(value = "学员名称")
+        private String studentName;
+
+        @ApiModelProperty(value = "昵称")
+        private String userName;
+
+        @ApiModelProperty(value = "头像")
+        private String avatar;
+
+        @ApiModelProperty("IM用户ID")
+        private String imUserId;
+    }
+
+
 }

+ 12 - 3
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -169,8 +169,6 @@
         where b.teacher_id_ = #{param.teacherId}
         AND a.lock_ = 0
         AND a.type_ = #{param.type}
-        <![CDATA[ AND a.class_date_  >= #{param.startDate} ]]>
-        <![CDATA[ AND a.class_date_  <= #{param.endDate} ]]>
         <if test="param.groupState !=null and param.groupState !=''">
             AND  find_in_set(b.status_, #{param.groupState})
         </if>
@@ -195,17 +193,20 @@
             cs.status_ AS `status`,
             g.subject_id_ AS subjectId,
             sb.name_ AS subjectName,
+            g.name_ AS courseGroupName,
             u.del_flag_ as delFlag,
             p.course_id_ AS courseId,
             p.course_group_id_ AS courseGoupId,
             (r.student_replied_ IS NOT NULL) AS studentReplied,
-            (r.teacher_replied_ IS NOT NULL) AS teacherReplied
+            (r.teacher_replied_ IS NOT NULL) AS teacherReplied,
+            CASE WHEN sa.course_schedule_id_ IS NULL THEN 0 ELSE 1 END AS attendanceStatus
         FROM course_schedule_student_payment p
         LEFT JOIN sys_user u ON p.user_id_ =u.id_
         LEFT JOIN course_schedule cs ON p.course_id_=cs.id_
         LEFT JOIN course_group g ON p.course_group_id_ = g.id_
         LEFT JOIN `subject` sb ON g.subject_id_=sb.id_
         LEFT JOIN course_schedule_replied r ON cs.id_=r.course_schedule_id_
+        LEFT JOIN student_attendance sa ON cs.id_ = sa.course_schedule_id_
         WHERE p.course_id_ IN
         (SELECT s.id_ FROM course_schedule s WHERE s.type_ = #{param.courseType} AND lock_=0 AND s.teacher_id_=#{param.teacherId})
         <if test="param.status !=null and param.status !=''">
@@ -214,6 +215,14 @@
         <if test="param.subjectId !=null">
             AND g.subject_id_ = #{param.subjectId}
         </if>
+        <if test="param.attendanceStatus != null">
+            <if test="param.attendanceStatus == true">
+                AND sa.course_schedule_id_ IS NOT NULL
+            </if>
+            <if test="param.attendanceStatus == false">
+                AND sa.course_schedule_id_ IS NULL
+            </if>
+        </if>
         <if test="param.classDate !=null and param.classDate !=''">
             AND cs.class_date_ = #{param.classDate}
         </if>