@Override public StudentManagerDTO saveStudent(String name, String classId, String schoolId) { UserDTO userDTO = new UserDTO(); userDTO.setRealName(name); userDTO.setIdentityId(IdentityIdConstants.STUDENT); userDTO.setIdentityDescription("学生"); userDTO.setSchoolId(schoolId); userDTO.setArea(mSchoolMapper.selectByPrimaryKey(schoolId).getArea()); UserDTO users = userService.saveUser(userDTO); MClass mclass = classMapper.selectByPrimaryKey(classId, schoolId); StudentDTO studentDTO = new StudentDTO(); studentDTO.setUserId(users.getUserId()); studentDTO.setSchoolId(mclass.getSchoolId()); studentDTO.setSchoolName(mclass.getSchoolName()); studentDTO.setClassName(mclass.getName()); studentDTO.setClassId(classId); studentDTO.setClassAliasName(mclass.getAliasName()); studentDTO.setJoinClass(new Date()); MStudent mStudent = new MStudent(); BeanUtils.copyProperties(studentDTO, mStudent); studentMapper.insert(mStudent); MStudentManager studentManager = studentMapper.selectStudentByUserId(mStudent.getUserId(), schoolId); StudentManagerDTO studentManagerDTO = new StudentManagerDTO(); BeanUtils.copyProperties(studentManager, studentManagerDTO); studentManagerDTO.setClassAliasName( ClassNameUtil.getFullName(studentManager.getYears(), studentManager.getClassAliasName())); return studentManagerDTO; }
/** 导出学生信息 */ @Override public List<ExcelInfo> queryExcelInfo(StudentPageRequest studentPageRequest) { Map<Integer, ExcelInfo> map = new TreeMap<>(); String schoolId = studentPageRequest.getSchoolId(); if (schoolId == null) { schoolId = userService.getSchoolId(studentPageRequest.getUserId()); studentPageRequest.setSchoolId(schoolId); } // 获取学生信息的总条数 MStudentManager studentManager = new MStudentManager(); BeanUtils.copyProperties(studentPageRequest, studentManager); List<MStudentManager> mStudentList = studentMapper.selectStudents_export(studentManager); for (MStudentManager students : mStudentList) { List<List<Object>> data; List<Object> row = new ArrayList<>(); row.add(students.getRealName()); if (students.getYears() != null) { int grade = ClassNameUtil.getGradeNum(students.getYears()); ExcelInfo excelInfo = map.get(grade); if (excelInfo == null) { excelInfo = new ExcelInfo(); data = new ArrayList<>(); excelInfo.setData(data); excelInfo.setSheetName(grade + "年级"); excelInfo.setHeaders(new String[] {"学生姓名", "所在班级", "登录账号", "上线情况"}); excelInfo.setColumnWidth(20); map.put(grade, excelInfo); } else { data = excelInfo.getData(); } row.add(grade + "年级" + students.getClassAliasName()); } else { ExcelInfo excelInfo = map.get(0); if (excelInfo == null) { excelInfo = new ExcelInfo(); data = new ArrayList<>(); excelInfo.setData(data); excelInfo.setSheetName("无班级"); excelInfo.setColumnWidth(20); excelInfo.setHeaders(new String[] {"学生姓名", "所在班级", "登录账号", "上线情况"}); map.put(0, excelInfo); } else { data = excelInfo.getData(); } row.add("无班级"); } row.add(students.getUserId()); row.add(DateUtil.getLogin_date(students.getLastLoginDate())); data.add(row); } return new ArrayList<>(map.values()); }
/** 根据学生ID获取学生信息 */ @Override public MyMessageDTO getMyMessageStudent(String userId) { String schoolId = userService.getSchoolId(userId); MStudentInfo studentInfo = studentMapper.getStudentInfo(userId, schoolId); if (studentInfo == null) { throw new MemberException("该学生不存在"); } MyMessageDTO studentInfoDTO = new MyMessageDTO(); BeanUtils.copyProperties(studentInfo, studentInfoDTO); if (studentInfo.getClassId() != null) { studentInfoDTO.setClassName( ClassNameUtil.getFullName(studentInfo.getYear(), studentInfo.getClassName())); } return studentInfoDTO; }
/** APP接口、WEB平台:根据学生名称查询学生信息 */ @Override public List<StudentManagerDTO> queryStudentByRealName(String realName, String userId) { if (StringUtils.isEmpty(userId)) { logger.debug("userId 不能为空"); return null; } String schoolId = userService.getSchoolId(userId); List<MStudentManager> userList = studentMapper.selectStudentByRealName(realName, schoolId); List<StudentManagerDTO> userDTOList = new ArrayList<>(); for (MStudentManager u : userList) { StudentManagerDTO userDTO = new StudentManagerDTO(); BeanUtils.copyProperties(u, userDTO); userDTOList.add(userDTO); } return userDTOList; }
/** APP接口:根据学生ID获取该学生所在的班级信息 */ @Override public ClassInfoDTO queryUserClass(String userId) { String schoolId = userService.getSchoolId(userId); MClassInfo studentClass = studentMapper.getStudentClass(userId, schoolId); ClassInfoDTO tcdto = new ClassInfoDTO(); if (studentClass != null) { BeanUtils.copyProperties(studentClass, tcdto); // 设置年级号 tcdto.setGradeNum(ClassNameUtil.getGradeNum(studentClass.getYear())); // 设置学期 tcdto.setSemester(ClassNameUtil.getSemester()); // 设置班级名称 年级+班级 tcdto.setClassName( ClassNameUtil.getFullName(studentClass.getYear(), studentClass.getClassName())); } return tcdto; }
/** 通知用 根据学生Id查询家庭成员 */ @Override public List<FamilyRelationDTO> queryFamilyByStudent(String userId) { String key = MessageFormat.format(CacheConstants.KEY_PARENT_OF_KID, userId); List<FamilyRelationDTO> list = cacheService.get(key); if (list != null) { return list; } List<FamilyRelationDTO> familyRelationDTOs = new ArrayList<>(); List<MFamilyRelation> mFamilyRelations = famillyRelationMapper.queryFamilyByStudent(userId, userService.getSchoolId(userId)); for (MFamilyRelation fr : mFamilyRelations) { FamilyRelationDTO familyRelationDTO = new FamilyRelationDTO(); BeanUtils.copyProperties(fr, familyRelationDTO); familyRelationDTOs.add(familyRelationDTO); } cacheService.set(key, familyRelationDTOs, CacheConstants.CACHE_SEVEN_DAY, TimeUnit.DAYS); return familyRelationDTOs; }
@Override public StudentDTO queryStudentForAPP(String userId, String schoolId) { UserDTO mUsers = userService.getByUserId(userId); if (mUsers == null) { logger.debug("未找到学乐号为" + userId + "的学生用户"); return null; } MStudent mStudent = studentMapper.selectByPrimaryKey(userId, schoolId); if (mStudent == null) { logger.debug("未找到学生id为" + userId + "的学生"); throw new MemberException("未找到学生id为" + userId + "的学生"); } // 学生信息 StudentDTO studentDTO = new StudentDTO(); studentDTO.setUserId(userId); studentDTO.setRealName(mUsers.getRealName()); studentDTO.setSchoolId(mStudent.getSchoolId()); studentDTO.setSchoolName(mStudent.getSchoolName()); studentDTO.setClassId(mStudent.getClassId()); studentDTO.setClassName(mStudent.getClassName()); studentDTO.setMobile(mUsers.getMobile()); studentDTO.setEmail(mUsers.getEmail()); // 学校所在区域信息 MSchool mSchool = mSchoolMapper.selectByPrimaryKey(mUsers.getSchoolId()); if (mSchool == null) { logger.debug("未找到学乐号为" + userId + "的学生用户所在的学校"); return null; } studentDTO.setAreaCode(mSchool.getArea()); studentDTO.setAreaName(mSchool.getAreaName()); // 班级信息 MClass mClass = classMapper.selectByPrimaryKey(mStudent.getClassId(), schoolId); if (mClass == null) { logger.debug("未找到学乐号为" + userId + "的学生用户所在的班级"); return null; } studentDTO.setGradeNum(getGradeNum(mClass.getYears())); studentDTO.setYear(mClass.getYears()); return studentDTO; }
/** 查询学生信息分页 */ @Override public PageResponse<StudentManagerDTO> queryStudentPage(StudentPageRequest studentPageRequest) { String schoolId = studentPageRequest.getSchoolId(); if (schoolId == null) { schoolId = userService.getSchoolId(studentPageRequest.getUserId()); studentPageRequest.setSchoolId(schoolId); } // 获取学生信息的总条数 MStudentManager studentManager = new MStudentManager(); BeanUtils.copyProperties(studentPageRequest, studentManager); long count = studentMapper.selectCount(studentManager); // 获取当前页的信息 Page page = PageUtils.buildPage(studentPageRequest); List<MStudentManager> mStudentList = studentMapper.selectMStudentManagerPage(page, studentManager); /* 给返回接口赋值 */ List<StudentManagerDTO> studentManagerDTOs = new ArrayList<>(); for (MStudentManager mstudents : mStudentList) { StudentManagerDTO studentManagerDTO = new StudentManagerDTO(); BeanUtils.copyProperties(mstudents, studentManagerDTO); studentManagerDTO.setLastLoginDate( mstudents.getLastLoginDate() == null ? "从未登录" : DateFormatUtils.format(mstudents.getLastLoginDate(), "yyyy-MM-dd HH:mm")); if (mstudents.getYears() != null) { studentManagerDTO.setClassAliasName( getGrade(mstudents.getYears()) + studentManagerDTO.getClassAliasName()); } else { studentManagerDTO.setClassAliasName("无班级"); } studentManagerDTOs.add(studentManagerDTO); } // 返回对象 PageResponse<StudentManagerDTO> pageResponse = new PageResponse<>(); PageUtils.buldPageResponse(studentPageRequest, pageResponse); pageResponse.setRows(studentManagerDTOs); pageResponse.setRecords(count); return pageResponse; }
/** 修改学生信息 */ @Override public StudentManagerDTO updateStudentInfo(String userId, String realName, String classId) { String schoolId = userService.getSchoolId(userId); // 更换用户名称 usersMapper.updateUserName(userId, realName, schoolId); // 更换班级 MClass mClass = classMapper.selectByPrimaryKey(classId, schoolId); studentMapper.updateStudentMessage(userId, mClass); // 修改家庭关系表中用户名称 familyRelationService.updateName(userId, realName); MStudentManager studentManager = studentMapper.selectStudentByUserId(userId, schoolId); StudentManagerDTO studentManagerDTO = new StudentManagerDTO(); BeanUtils.copyProperties(studentManager, studentManagerDTO); studentManagerDTO.setClassAliasName( getGrade(mClass.getYears()) + studentManagerDTO.getClassAliasName()); // 修改孩子名称,班级信息,删除缓存数据 deleteRedisOfParent(userId, schoolId); cacheService.delete(MessageFormat.format(CacheConstants.KEY_USER, userId)); return studentManagerDTO; }
@Override public StudentDTO updateStudentForAPP(StudentDTO studentDTO) { // 更新联系方式 UserDTO userDTO = new UserDTO(); boolean isAllNot = true; // 学生姓名 String name = studentDTO.getRealName(); if (!StringUtils.isEmpty(name)) { userDTO.setRealName(name); isAllNot = false; } String school = studentDTO.getSchoolId(); if (school != null) { userDTO.setSchoolId(school); isAllNot = false; } else { logger.warn("schoolId不能为空"); return null; } String userId = studentDTO.getUserId(); if (!StringUtils.isEmpty(userId)) { userDTO.setUserId(userId); } else { logger.warn("userId不能为空"); return null; } String mobile = studentDTO.getMobile(); if (!StringUtils.isEmpty(mobile)) { userDTO.setMobile(mobile); isAllNot = false; } String email = studentDTO.getEmail(); if (!StringUtils.isEmpty(email)) { userDTO.setEmail(email); isAllNot = false; } if (!isAllNot) { userService.updateByUserId(userDTO); } // 更新班级 String schoolId = userService.getSchoolId(userId); if (StringUtils.isEmpty(schoolId)) { throw new MemberException("该学生没有学校"); } MSchool mSchool = mSchoolMapper.selectByPrimaryKey(schoolId); String classId = studentDTO.getClassId(); if (!StringUtils.isEmpty(classId)) { MClass mClass = classMapper.selectByPrimaryKey(classId, schoolId); if (mClass == null) { logger.warn("找不到班级号为" + classId + "的班级"); return null; } MStudent mStudent = new MStudent(); mStudent.setUserId(studentDTO.getUserId()); mStudent.setClassName(mClass.getName()); mStudent.setClassId(classId); mStudent.setSchoolId(schoolId); studentMapper.updateByPrimaryKey(mStudent); } studentDTO.setClassId(classId); studentDTO.setSchoolId(schoolId); studentDTO.setSchoolName(mSchool.getName()); return studentDTO; }