浏览代码

Merge branch 'feature/1022_vip' into develop

# Conflicts:
#	mec-application/src/main/java/com/ym/mec/student/controller/StudentManageController.java
shangke 7 月之前
父节点
当前提交
7e2396c8d7

+ 14 - 130
mec-application/src/main/java/com/ym/mec/student/controller/StudentManageController.java

@@ -2,6 +2,7 @@ package com.ym.mec.student.controller;
 
 import com.google.common.collect.Sets;
 import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
 import com.microsvc.toolkit.middleware.oss.wrapper.OssWrapper;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.CloudTeacherOrderDao;
@@ -30,7 +31,11 @@ import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.util.*;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 @Api(tags = "学生管理")
@@ -163,20 +168,14 @@ public class StudentManageController extends BaseController {
     @ApiOperation(value = "获取学员基本信息")
     @GetMapping("student/queryUserInfo")
 	public Object queryUserInfo(String platform) {
-		SysUser user = sysUserService.getUser();
-		Student student = studentService.get(user.getId());
-		student.setId(user.getId());
-		student.setUsername(user.getUsername());
-		student.setAvatar(user.getAvatar());
-		student.setPhone(user.getPhone());
-		student.setCurrentClass(user.getCurrentClass());
-		student.setCurrentGrade(user.getCurrentGrade());
-		student.setBirthdate(user.getBirthdate());
-		student.setGender(user.getGender());
-		student.setRealName(user.getRealName());
-		student.setIdCardNo(user.getIdCardNo());
-		student.setImToken(user.getImToken());
-		student.setOrganId(user.getOrganId());
+
+        SysUser user = sysUserService.getUser();
+        // 返回数据
+        Map<String, Object> datas = Maps.newHashMap();
+
+        // 查询学员基本信息
+        Student student = studentManageService.getStudentUserInfo(user.getId(), user, datas);
+        datas.put("student", student);
 
 
         // 注册IM用户Token
@@ -203,9 +202,6 @@ public class StudentManageController extends BaseController {
 			student.setExtSjectNamesMap(subjectList.stream().collect(Collectors.toMap(Subject :: getId, Subject :: getName)));
 		}
 
-		Map<String, Object> datas = new HashMap<String, Object>();
-		datas.put("student", student);
-		
         List<CloudTeacherOrder> dataList = cloudTeacherOrderDao.queryByUserIdAndStatus(user.getId(),1);
         if(dataList != null && dataList.size() > 0){
         	datas.put("isExistPendingMember", true);
@@ -231,119 +227,7 @@ public class StudentManageController extends BaseController {
 		} else {
 			datas.put("userPrivileges", memberRankPrivilegesService.queryByMemberRankId(student.getMemberRankSettingId()));
 		}
-		SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.HOMEWORK_OPEN_FLAG);
-		if (sysConfig == null) {
-			datas.put("homeworkOpenFlag", 0);
-		} else {
-			datas.put("homeworkOpenFlag", Integer.parseInt(sysConfig.getParanValue()));
-		}
-        // 获取会员等级图标
-        MemberRankSetting memberRankSetting = memberRankSettingService.get(student.getMemberRankSettingId());
-        if (memberRankSetting != null) {
-            student.setMemberRankImg(memberRankSetting.getIcon());
-        }
-        //是否是试用会员
-		if(student.getExperienceMemberRankSettingId() == null){
-            datas.put("isExperience", 0);
-        }else {
-            int i = DateUtil.daysBetween(student.getExperienceMembershipEndTime(),student.getMembershipEndTime());
-            if(i > 0){
-                datas.put("isExperience", 0);
-            }else {
-                datas.put("isExperience", 1);
-                if (memberRankSetting != null) {
-                    student.setMemberRankImg(memberRankSetting.getExperienceIcon());
-                }
-            }
-        }
-
-        // 通过学生声部换乐器ID
-        if (StringUtils.isNotBlank(student.getSubjectIdList())) {
-            String subjectId = student.getSubjectIdList();
-            if ("5".equals(student.getSubjectIdList())) {
-                subjectId = "6";
-            } else  if("122".equals(student.getSubjectIdList())){
-                subjectId = "122,121,113,23";
-            }
-            List<Integer> instrumentIdsBySubjectId = instrumentService.getInstrumentIdsBySubjectId(subjectId)
-                .stream().map(Instrument::getId).collect(Collectors.toList());
-            if (CollectionUtils.isNotEmpty(instrumentIdsBySubjectId)) {
-                // 逗号隔开
-                datas.put("instrumentId", StringUtils.join(instrumentIdsBySubjectId, ","));
-            }
-        }
-
-        // 扩展乐器
-        if (student.getExtSjectNamesMap() !=null && !student.getExtSjectNamesMap().isEmpty()) {
-            Set<Integer> integers = student.getExtSjectNamesMap().keySet();
-            Set<Integer> extInstrumentIds = Sets.newConcurrentHashSet();
-            for (Integer integer : integers) {
-                extInstrumentIds.add(integer);
-
-                if ("5".equals(integer.toString())) {
-                    extInstrumentIds.add(6);
-                } else  if("122".equals(integer.toString())){
-                    extInstrumentIds.add(121);
-                    extInstrumentIds.add(113);
-                    extInstrumentIds.add(23);
-                }
-            }
-
-            // 根据声部查询对应乐器信息
-            List<Instrument> instruments = instrumentService.getInstrumentIdsBySubjectId(StringUtils.join(extInstrumentIds, ","));
-            List<Map<String, Object>> extInstrumentNames = Lists.newArrayList();
-            if (CollectionUtils.isNotEmpty(instruments)) {
-
-                Map<Integer, List<Instrument>> collect = instruments.stream().collect(Collectors.groupingBy(Instrument::getSubjectId, Collectors.toList()));
-                for (Map.Entry<Integer, String> entry : student.getExtSjectNamesMap().entrySet()) {
-
-                    // 默认声部映射乐器ID
-                    String instrumentIds = "";
-                    if (collect.containsKey(entry.getKey())) {
-                        instrumentIds = collect.get(entry.getKey()).stream()
-                            .map(Instrument::getId).map(String::valueOf).collect(Collectors.joining(","));
-                    }
-
-                    // 萨克斯乐器,对应中音萨克斯
-                    if (entry.getKey() == 5 || entry.getKey() == 6) {
-
-                        instrumentIds = collect.entrySet().stream()
-                            .filter(x -> x.getKey() == 5 || x.getKey() == 6)
-                            .flatMap(x -> x.getValue().stream())
-                            .map(Instrument::getId)
-                            .map(String::valueOf).collect(Collectors.joining(","));
-                    }
-
-                    // 打击乐器,对应小军鼓,打击乐(键盘),打击乐(键盘+小鼓),打击乐
-                    if (entry.getKey() == 122 || entry.getKey() == 121 || entry.getKey() == 113 || entry.getKey() == 23) {
-
-                        instrumentIds = collect.entrySet().stream()
-                            .filter(x -> x.getKey() == 122 || x.getKey() == 121 || x.getKey() == 113 || x.getKey() == 23)
-                            .flatMap(x -> x.getValue().stream())
-                            .map(Instrument::getId)
-                            .map(String::valueOf).collect(Collectors.joining(","));
-                    }
-                    String finalInstrumentIds = instrumentIds;
-                    extInstrumentNames.add(new HashMap<String, Object>(){{
-                        put("subjectId", entry.getKey());
-                        put("subjectName", entry.getValue());
-                        put("instrumentIds", finalInstrumentIds);
-                    }});
-                }
-
-                /*List<Integer> instrumentIdsBySubjectId = instruments.stream().map(Instrument::getId).collect(Collectors.toList());
-                Map<Integer, InstrumentWrapper.Instrument> mapByIds = instrumentService.getMapByIds(instrumentIdsBySubjectId);
-                mapByIds.forEach((k,v)->{
-                    if (v !=null) {
-                        extInstrumentNamesMap.put(k, v.getName());
-                    }
-                });*/
-            }
-            student.setExtInstrumentNames(extInstrumentNames);
-        }
-
 
-        datas.put("vipInfo", cloudTeacherOrderService.getEffectiveCloudTeacherOrder(Lists.newArrayList(student.getUserId())));
 		return succeed(datas);
 	}
 

+ 16 - 0
mec-application/src/main/java/com/ym/mec/teacher/controller/StudentController.java

@@ -1,6 +1,8 @@
 package com.ym.mec.teacher.controller;
 
+import com.google.common.collect.Maps;
 import com.ym.mec.biz.dal.dto.BaseMapDto;
+import com.ym.mec.biz.dal.entity.Student;
 import com.ym.mec.biz.dal.entity.StudentAttendance;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
@@ -98,6 +100,20 @@ public class StudentController extends BaseController {
         return succeed(studentManageService.findStudentMusicGroupsByUserId(userId));
     }
 
+    @ApiOperation(value = "根据学生ID获取学生信息")
+    @GetMapping("/queryUserInfo")
+    public Object queryUserInfo(@ApiParam(value = "学生编号", required = true) Integer userId){
+
+        // 返回数据
+        Map<String, Object> dataMap = Maps.newHashMap();
+
+        // 查询学员基本信息
+        Student student = studentManageService.getStudentUserInfo(userId, null, dataMap);
+        dataMap.put("student", student);
+
+        return succeed(dataMap);
+    }
+
     @ApiOperation(value = "获取老师关联的学员声部列表")
     @GetMapping("/queryStuSubjectId")
     public HttpResponseResult<List<BaseMapDto>> queryStuSubjectId(){

+ 15 - 0
mec-application/src/main/java/com/ym/mec/web/controller/StudentManageController.java

@@ -1,6 +1,7 @@
 package com.ym.mec.web.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.google.common.collect.Maps;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
@@ -524,4 +525,18 @@ public class StudentManageController extends BaseController {
         studentService.updateStudentMember(userId,endTime,memo,sysUserService.getUserId());
         return succeed();
     }
+
+    @ApiOperation(value = "根据学生ID获取学生信息")
+    @GetMapping("/queryUserInfo")
+    public Object queryUserInfo(@ApiParam(value = "学生编号", required = true) Integer userId){
+
+        // 返回数据
+        Map<String, Object> dataMap = Maps.newHashMap();
+
+        // 查询学员基本信息
+        Student student = studentManageService.getStudentUserInfo(userId, null, dataMap);
+        dataMap.put("student", student);
+
+        return succeed(dataMap);
+    }
 }

+ 17 - 0
mec-application/src/main/java/com/ym/mec/web/controller/education/EduStudentController.java

@@ -1,9 +1,11 @@
 package com.ym.mec.web.controller.education;
 
+import com.google.common.collect.Maps;
 import com.ym.mec.biz.dal.dto.BaseMapDto;
 import com.ym.mec.biz.dal.dto.EduOrganStudentDataDto;
 import com.ym.mec.biz.dal.dto.StatDto;
 import com.ym.mec.biz.dal.entity.Organization;
+import com.ym.mec.biz.dal.entity.Student;
 import com.ym.mec.biz.dal.page.StudentQueryInfo;
 import com.ym.mec.biz.service.OrganizationService;
 import com.ym.mec.biz.service.StudentManageService;
@@ -21,6 +23,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -51,6 +54,20 @@ public class EduStudentController extends BaseController {
         return succeed(studentManageService.findStudentMusicGroupsByUserId(userId));
     }
 
+    @ApiOperation(value = "根据学生ID获取学生信息")
+    @GetMapping("/queryUserInfo")
+    public Object queryUserInfo(@ApiParam(value = "学生编号", required = true) Integer userId){
+
+        // 返回数据
+        Map<String, Object> dataMap = Maps.newHashMap();
+
+        // 查询学员基本信息
+        Student student = studentManageService.getStudentUserInfo(userId, null, dataMap);
+        dataMap.put("student", student);
+
+        return succeed(dataMap);
+    }
+
     @ApiOperation(value = "分部云教练学员数据预览")
     @GetMapping("/organStudentOverView")
     public HttpResponseResult<List<EduOrganStudentDataDto>> organStudentOverView() throws Exception {

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentManageService.java

@@ -221,4 +221,13 @@ public interface StudentManageService {
     PageInfo<CloudTeacherActiveWapper.Result> cloudTeacherActive(CloudTeacherActiveWapper.Query queryInfo);
 
     CloudTeacherActiveWapper.ResultMap cloudTeacherActiveStatistics(CloudTeacherActiveWapper.Query queryInfo);
+
+    /**
+     * 获取学员信息
+     * @param userId 学员id
+     * @param user 当前用户
+     * @param datas 附加数据
+     * @return 学员信息
+     */
+    Student getStudentUserInfo(Integer userId, SysUser user, Map<String, Object> datas);
 }

+ 72 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -121,6 +121,9 @@ public class StudentManageServiceImpl implements StudentManageService {
     @Autowired
     private SubjectService subjectService;
 
+    @Autowired
+    private MemberRankSettingService memberRankSettingService;
+
     @Override
     public PageInfo<StudentManageListDto> findStudentsByOrganId(StudentManageQueryInfo queryInfo) {
         PageInfo<StudentManageListDto> pageInfo = new PageInfo<StudentManageListDto>(queryInfo.getPage(), queryInfo.getRows());
@@ -1258,4 +1261,73 @@ public class StudentManageServiceImpl implements StudentManageService {
         resultMap.setStatistics(statistics);
         return resultMap;
     }
+
+    /**
+     * 获取学员信息
+     * @param userId 学员id
+     * @param user 用户信息
+     * @param datas 附加数据
+     * @return 学员信息
+     */
+    @Override
+    public Student getStudentUserInfo(Integer userId, SysUser user, Map<String, Object> datas) {
+
+        // 获取学员信息
+        if (Objects.isNull(user)) {
+            user = teacherDao.getUser(userId);
+
+            if (Objects.isNull(user)) {
+                throw new BizException("学员信息不存在");
+            }
+        }
+
+        // 基本信息填充
+        Student student = studentService.get(user.getId());
+        student.setId(user.getId());
+        student.setUsername(user.getUsername());
+        student.setAvatar(user.getAvatar());
+        student.setPhone(user.getPhone());
+        student.setCurrentClass(user.getCurrentClass());
+        student.setCurrentGrade(user.getCurrentGrade());
+        student.setBirthdate(user.getBirthdate());
+        student.setGender(user.getGender());
+        student.setRealName(user.getRealName());
+        student.setIdCardNo(user.getIdCardNo());
+        student.setImToken(user.getImToken());
+        student.setOrganId(user.getOrganId());
+
+        // 学员其他基础信息
+        SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.HOMEWORK_OPEN_FLAG);
+        if (sysConfig == null) {
+            datas.put("homeworkOpenFlag", 0);
+        } else {
+            datas.put("homeworkOpenFlag", Integer.parseInt(sysConfig.getParanValue()));
+        }
+
+        // 获取会员等级图标
+        MemberRankSetting memberRankSetting = memberRankSettingService.get(student.getMemberRankSettingId());
+        if (memberRankSetting != null) {
+            student.setMemberRankImg(memberRankSetting.getIcon());
+        }
+
+        //是否是试用会员
+        if(student.getExperienceMemberRankSettingId() == null){
+            datas.put("isExperience", 0);
+        }else {
+            int i = DateUtil.daysBetween(student.getExperienceMembershipEndTime(),student.getMembershipEndTime());
+            if(i > 0){
+                datas.put("isExperience", 0);
+            }else {
+                datas.put("isExperience", 1);
+                if (memberRankSetting != null) {
+                    student.setMemberRankImg(memberRankSetting.getExperienceIcon());
+                }
+            }
+        }
+
+        // 学员会员信息
+        datas.put("vipInfo", cloudTeacherOrderService.getEffectiveCloudTeacherOrder(Lists.newArrayList(student.getUserId())));
+
+        return student;
+    }
 }