浏览代码

fix 线上课有教学点

周箭河 4 年之前
父节点
当前提交
ae0ae6f052

+ 17 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentVisitDao.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.StudentVisitDto;
 import com.ym.mec.biz.dal.entity.StudentVisit;
 import com.ym.mec.common.dal.BaseDAO;
@@ -20,8 +21,24 @@ public interface StudentVisitDao extends BaseDAO<Integer, StudentVisit> {
 
     /**
      * 获取访问列表
+     *
      * @param params
      * @return
      */
     List<StudentVisitDto> getPageList(Map<String, Object> params);
+
+    /**
+     * 获取学生列表
+     *
+     * @param params
+     * @return
+     */
+    List<BasicUserDto> getStudents(Map<String, Object> params);
+
+    /**
+     * 获取学生总数
+     * @param params
+     * @return
+     */
+    Integer getStudentsCount(Map<String, Object> params);
 }

+ 0 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentVisit.java

@@ -46,7 +46,6 @@ public class StudentVisit {
      * 乐团id
      */
     @ApiModelProperty(value = "乐团id", required = true)
-    @NotBlank(message = "乐团id不能为空")
     private String musicGroupId;
 
     /**

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentVisitService.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.StudentVisitDto;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
@@ -50,4 +51,13 @@ public interface StudentVisitService extends BaseService<Integer, StudentVisit>
      * @return
      */
     List<MusicGroup> getMusicGroup(Integer teacherId);
+
+
+    /**
+     * 获取学生列表
+     *
+     * @param queryInfo
+     * @return
+     */
+    PageInfo<BasicUserDto> getStudents(StudentVisitQueryInfo queryInfo);
 }

+ 32 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentVisitServiceImpl.java

@@ -2,7 +2,9 @@ package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.biz.dal.dao.MusicGroupDao;
 import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
+import com.ym.mec.biz.dal.dao.StudentRepairDao;
 import com.ym.mec.biz.dal.dao.StudentVisitDao;
+import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.PageInfoDegree;
 import com.ym.mec.biz.dal.dto.StudentVisitDto;
 import com.ym.mec.biz.dal.entity.MusicGroup;
@@ -20,6 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class StudentVisitServiceImpl extends BaseServiceImpl<Integer, StudentVisit> implements StudentVisitService {
@@ -30,6 +33,8 @@ public class StudentVisitServiceImpl extends BaseServiceImpl<Integer, StudentVis
     private StudentRegistrationDao studentRegistrationDao;
     @Autowired
     private MusicGroupDao musicGroupDao;
+    @Autowired
+    private StudentRepairDao studentRepairDao;
 
 
     @Override
@@ -87,4 +92,31 @@ public class StudentVisitServiceImpl extends BaseServiceImpl<Integer, StudentVis
     public List<MusicGroup> getMusicGroup(Integer teacherId) {
         return musicGroupDao.getTeacherMusicGroup(teacherId);
     }
+
+    @Override
+    public PageInfo<BasicUserDto> getStudents(StudentVisitQueryInfo queryInfo) {
+        PageInfo<BasicUserDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+        List<BasicUserDto> dataList = new ArrayList<>();
+        int count = studentVisitDao.getStudentsCount(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = studentVisitDao.getStudents(params);
+            Set<Integer> userIds = dataList.stream().map(BasicUserDto::getUserId).collect(Collectors.toSet());
+            List<MusicGroup> musicGroups = studentRepairDao.getUserMusicGroup(userIds);
+            Map<Integer, List<MusicGroup>> userMusicGroup = musicGroups.stream().collect(Collectors.groupingBy(MusicGroup::getRepairUserId));
+            for (BasicUserDto basicUserDto : dataList) {
+                if (!userMusicGroup.containsKey(basicUserDto.getUserId())) {
+                    continue;
+                }
+                MusicGroup musicGroup = userMusicGroup.get(basicUserDto.getUserId()).get(0);
+                basicUserDto.setMusicGroupId(musicGroup.getId());
+                basicUserDto.setMusicGroupName(musicGroup.getName());
+            }
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
 }

+ 23 - 0
mec-biz/src/main/resources/config/mybatis/StudentVisitMapper.xml

@@ -146,4 +146,27 @@
         WHERE sv.id_ = #{id}
     </select>
 
+
+    <select id="getStudents" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
+        SELECT s.id_ user_id_,s.username_,s.avatar_ head_url_,s.gender_,s.phone_ FROM course_schedule cs
+        LEFT JOIN course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cs.id_
+        LEFT JOIN sys_user s ON s.id_ = cssp.user_id_
+        WHERE cs.actual_teacher_id_ = #{teacherId}
+        <if test="student != null and student != ''">
+            AND (s.id_ = #{student} OR s.username_ LIKE CONCAT('%',#{student},'%'))
+        </if>
+        AND s.del_flag_ = 0
+        GROUP BY s.id_
+    </select>
+
+    <select id="getStudentsCount" resultType="int">
+        SELECT COUNT(DISTINCT s.id_) FROM course_schedule cs
+        LEFT JOIN course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cs.id_
+        LEFT JOIN sys_user s ON s.id_ = cssp.user_id_
+        WHERE cs.actual_teacher_id_ = #{teacherId}
+        <if test="student != null and student != ''">
+            AND (s.id_ = #{student} OR s.username_ LIKE CONCAT('%',#{student},'%'))
+        </if>
+        AND s.del_flag_ = 0
+    </select>
 </mapper>

+ 9 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/VisitController.java

@@ -2,6 +2,7 @@ package com.ym.mec.teacher.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.StudentVisitDto;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
@@ -74,4 +75,12 @@ public class VisitController extends BaseController {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         return succeed(studentVisitService.getMusicGroupStu(musicGroupId, sysUser.getId()));
     }
+
+    @ApiOperation(value = "获取学生列表(带分页)")
+    @GetMapping("/getStudents")
+    public HttpResponseResult<PageInfo<BasicUserDto>> getStudents(StudentVisitQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        queryInfo.setTeacherId(sysUser.getId());
+        return succeed(studentVisitService.getStudents(queryInfo));
+    }
 }