zouxuan il y a 9 mois
Parent
commit
6f884d3d7f

+ 17 - 3
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherSubjectPriceController.java

@@ -1,6 +1,9 @@
 package com.yonge.cooleshow.teacher.controller;
 
+import com.alibaba.fastjson.JSONObject;
+import com.yonge.cooleshow.biz.dal.entity.Subject;
 import com.yonge.cooleshow.biz.dal.entity.TeacherSubjectPrice;
+import com.yonge.cooleshow.biz.dal.service.SubjectService;
 import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.service.TeacherSubjectPriceService;
 import com.yonge.cooleshow.biz.dal.wrapper.TeacherSubjectPriceWrapper;
@@ -17,6 +20,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 
@@ -28,6 +32,8 @@ public class TeacherSubjectPriceController extends BaseController {
     private TeacherSubjectPriceService teacherSubjectPriceService;
     @Resource
     private SysUserService sysUserService;
+    @Resource
+    private SubjectService subjectService;
 
     @ApiOperation(value = "新增、修改老师课程价格配置")
     @PostMapping("/saveOrUpdate")
@@ -58,7 +64,7 @@ public class TeacherSubjectPriceController extends BaseController {
             TeacherSubjectPriceWrapper.TeacherSubjectPriceDto dto = new TeacherSubjectPriceWrapper.TeacherSubjectPriceDto();
             String subjectIds = list.stream().map(e->e.getSubjectId().toString()).distinct().collect(Collectors.joining(","));
             String subjectNames = list.stream().map(TeacherSubjectPrice::getSubjectName).distinct().collect(Collectors.joining(","));
-            dto.setSubjectId(subjectIds);
+            dto.setSubjectIds(subjectIds);
             dto.setSubjectName(subjectNames);
             dto.setTeacherId(list.get(0).getTeacherId());
             dto.setCourseType(list.get(0).getCourseType());
@@ -72,13 +78,21 @@ public class TeacherSubjectPriceController extends BaseController {
 
     @ApiOperation(value = "获取老师课程价格配置")
     @PostMapping("/list")
-    public HttpResponseResult<List<TeacherSubjectPrice>> list(@RequestBody TeacherSubjectPriceWrapper.PriceSearch query){
+    public HttpResponseResult<List<TeacherSubjectPriceWrapper.TeacherSubjectPriceDto>> list(@RequestBody TeacherSubjectPriceWrapper.PriceSearch query){
         List<TeacherSubjectPrice> list = teacherSubjectPriceService.lambdaQuery()
                 .eq(TeacherSubjectPrice::getTeacherId, sysUserService.getUserId())
                 .eq(query.getSubjectId() != null, TeacherSubjectPrice::getSubjectId, query.getSubjectId())
                 .eq(StringUtils.isNotEmpty(query.getCourseType()), TeacherSubjectPrice::getCourseType, query.getCourseType())
                 .list();
-        return succeed(list);
+        if(CollectionUtils.isNotEmpty(list)){
+            List<TeacherSubjectPriceWrapper.TeacherSubjectPriceDto> results = JSONObject.parseArray(JSONObject.toJSONString(list), TeacherSubjectPriceWrapper.TeacherSubjectPriceDto.class);
+            List<Long> subjectIds = list.stream().map(TeacherSubjectPrice::getSubjectId).distinct().collect(Collectors.toList());
+            List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIds);
+            Map<Long, String> subjectMap = subjectList.stream().collect(Collectors.toMap(Subject::getId, Subject::getImg));
+            results.forEach(e->e.setSubjectPic(subjectMap.get(e.getSubjectId())));
+            return succeed(results);
+        }
+        return succeed();
     }
 }
 

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

@@ -397,10 +397,42 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
                                                                          CourseGroupWrapper.TeacherCourseGroupQuery query) {
         List<CourseGroupWrapper.TeacherCourseGroupDto> records = this.baseMapper.myCourseGroup(page, query);
         if (CollectionUtils.isNotEmpty(records)) {
+            List<Long> courseIds = records.stream().map(CourseGroupWrapper.TeacherCourseGroupDto::getCourseGroupId).distinct().collect(Collectors.toList());
             List<Long> subjectIds = records.stream().map(CourseGroupWrapper.TeacherCourseGroupDto::getSubjectId).distinct().collect(Collectors.toList());
             List<Subject> subjectList = subjectService.findBySubjectByIdList(subjectIds);
             Map<Long, String> subjectMap = subjectList.stream().collect(Collectors.toMap(Subject::getId, Subject::getName));
-            records.forEach(e -> e.setSubjectName(subjectMap.get(e.getSubjectId())));
+            List<CourseScheduleStudentPayment> list = courseScheduleStudentPaymentService.lambdaQuery()
+                    .in(CourseScheduleStudentPayment::getCourseGroupId, courseIds)
+                    .list();
+            Map<Long, List<CourseScheduleStudentPayment>> map = list.stream().collect(Collectors.groupingBy(CourseScheduleStudentPayment::getCourseGroupId));
+            //获取所有用户编号
+            List<Long> userIds = list.stream().map(CourseScheduleStudentPayment::getUserId).distinct().collect(Collectors.toList());
+            Map<Long, com.yonge.cooleshow.biz.dal.entity.SysUser> userMap = sysUserService.getMapByIds(userIds);
+            for (CourseGroupWrapper.TeacherCourseGroupDto e : records) {
+                e.setSubjectName(subjectMap.get(e.getSubjectId()));
+                if(StringUtils.equals(query.getCourseType(),"PIANO_ROOM_CLASS")){
+                    List<CourseScheduleStudentPayment> studentPayments = map.get(e.getCourseGroupId());
+                    e.setStudentNum(studentPayments.size());
+                    StringBuffer studentName = new StringBuffer();
+                    for (int i = 0; i < studentPayments.size(); i++) {
+                        if(studentName.length() > 0){
+                            studentName.append(",");
+                        }
+                        studentName.append(userMap.get(studentPayments.get(i).getUserId()).getUsername());
+                        if (i > 0) {
+                            studentName.append("等").append(studentPayments.size()).append("人");
+                            break;
+                        }
+                    }
+                    e.setStudentName(studentName.toString());
+                }else{
+                    CourseScheduleStudentPayment studentPayment = map.get(e.getCourseGroupId()).get(0);
+                    com.yonge.cooleshow.biz.dal.entity.SysUser sysUser = userMap.get(studentPayment.getUserId());
+                    e.setStudentName(sysUser.getUsername());
+                    e.setCourseGroupName(e.getCourseGroupName() + "-" + sysUser.getUsername());
+                    e.setStudentAvatar(sysUser.getAvatar());
+                }
+            }
         }
         return page.setRecords(records);
     }

+ 10 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TeacherSubjectPriceWrapper.java

@@ -21,6 +21,9 @@ public class TeacherSubjectPriceWrapper {
     @Data
     public static class TeacherSubjectPriceDto{
 
+        @ApiModelProperty(value = "id")
+        private Long id;
+
         @ApiModelProperty(value = "老师id")
         private Long teacherId;
 
@@ -34,13 +37,19 @@ public class TeacherSubjectPriceWrapper {
         private Integer courseMinutes;
 
         @ApiModelProperty(value = "声部id")
-        private String subjectId;
+        private Long subjectId;
+
+        @ApiModelProperty(value = "声部id")
+        private String subjectIds;
 
         @ApiModelProperty(value = "声部名称")
         private String subjectName;
 
         @ApiModelProperty(value = "声部价格")
         private BigDecimal subjectPrice;
+
+        @ApiModelProperty(value = "声部图片")
+        private String subjectPic;
     }
 
 }

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

@@ -50,6 +50,9 @@ public class CourseGroupWrapper {
         @ApiModelProperty(value = "课程数")
         private Integer courseNum;
 
+        @ApiModelProperty(value = "学生数")
+        private Integer studentNum = 1;
+
         @ApiModelProperty(value = "学员姓名")
         private String studentName;
 

+ 2 - 5
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml

@@ -1003,12 +1003,10 @@
     </select>
     <select id="myCourseGroup"
             resultType="com.yonge.cooleshow.biz.dal.wrapper.course.CourseGroupWrapper$TeacherCourseGroupDto">
-        select cg.name_ courseGroupName,su.username_ studentName,cg.status_ status,
-               su.avatar_ studentAvatar,cg.subject_id_ subjectId,
+        select cg.name_ courseGroupName,cg.status_ status,
+               cg.subject_id_ subjectId,
                cg.complete_course_num_ completeCourseNum,cg.course_num_ courseNum,cg.id_ courseGroupId
         from course_group cg
-        LEFT JOIN course_schedule_student_payment cssp ON cssp.course_group_id_ = cg.id_
-        LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
         <where>
             <if test="param.teacherId != null">
                 AND cg.teacher_id_ = #{param.teacherId}
@@ -1023,6 +1021,5 @@
                 AND cg.type_ = #{param.courseType}
             </if>
         </where>
-        group by cg.id_
     </select>
 </mapper>