package com.ruoyi.syzy.service.impl; import com.google.common.collect.Maps; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.CommonUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.sy.domain.SyMajor; import com.ruoyi.sy.service.ISyMajorService; import com.ruoyi.syzy.domain.*; import com.ruoyi.syzy.dto.UniversityDetailDTO; import com.ruoyi.syzy.mapper.*; import com.ruoyi.syzy.service.IBBusiWishUniversitiesEnrollBrochureService; import com.ruoyi.syzy.service.IBBusiWishUniversitiesService; import com.ruoyi.util.ConstantUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; import java.util.stream.Collectors; /** * 院校库Service业务层处理 * * @author mingxue * @date 2021-07-29 */ @Service public class BBusiWishUniversitiesServiceImpl implements IBBusiWishUniversitiesService { @Autowired private BBusiWishUniversitiesMapper bBusiWishUniversitiesMapper; @Autowired private ISyMajorService syMajorService; @Autowired private BBusiWishUniversitiesEmploymentreportMapper universitiesEmploymentreportMapper; @Autowired private BBusiWishUniversitiesDepartmentMapper universitiesDepartmentMapper; @Autowired private BBusiWishUniversitiesProfessionMapper universitiesProfessionMapper; @Autowired private BBusiWishUniversitiesSubjectMapper universitiesSubjectMapper; @Autowired private IBBusiWishUniversitiesEnrollBrochureService universitiesEnrollBrochureService; @Override public List listMyByPage(String customerCode) { return bBusiWishUniversitiesMapper.listMyByPage(customerCode); } @Override public BBusiWishUniversities selectBBusiWishUniversitiesById(Long universityId) { return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesById(universityId); } @Override public BBusiWishUniversities selectBBusiWishUniversitiesByCode(String code) { return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesByCode(code); } /** * 查询院校库列表 * * @param bBusiWishUniversities 院校库 * @return 院校库 */ @Override public List selectBBusiWishUniversitiesList(BBusiWishUniversities bBusiWishUniversities) { return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesList(bBusiWishUniversities); } @Override public List selectBBusiWishUniversitiesProfessionByCode(String collegeCode) { return universitiesProfessionMapper.selectBBusiWishUniversitiesProfessionByCode(collegeCode); } @Override public List selectBBusiWishUniversitiesListSimpleByMap(Map cond) { return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesListSimpleByMap(cond); } @Override public List selectMajorWishUniversitiesListSimpleByMap(Map cond) { return bBusiWishUniversitiesMapper.selectMajorWishUniversitiesListSimpleByMap(cond); } @Override public List selectMajorWishUniversitiesListSimpleByMap2(Map cond) { return bBusiWishUniversitiesMapper.selectMajorWishUniversitiesListSimpleByMap2(cond); } @Override public List selectBBusiWishUniversitiesLocations(String entranceType) { return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesLocations(entranceType); } @Override public List selectBBusiWishUniversitiesTypes(String entranceType) { return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesTypes(entranceType); } @Override public List selectBBusiWishUniversitiesNatureTypes(String entranceType) { return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesNatureTypes(entranceType); } @Override public List selectBBusiWishUniversitiesListSimple(BBusiWishUniversities bBusiWishUniversities) { return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesListSimple(bBusiWishUniversities); } @Override public List selectBBusiWishUniversitiesFeatures(String entranceType) { return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesFeatures(entranceType); } @Override public List selectBBusiWishUniversitiesBxTypes(String entranceType) { return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesBxTypes(entranceType); } @Override public List selectBBusiWishUniversitiesLevels(String entranceType) { return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesLevels(entranceType); } /** * 修改院校库 * * @param bBusiWishUniversities 院校库 * @return 结果 */ @Override public int updateBBusiWishUniversities(BBusiWishUniversities bBusiWishUniversities) { return bBusiWishUniversitiesMapper.updateBBusiWishUniversities(bBusiWishUniversities); } @Override public int updateCollect(Long id, Integer collect) { return bBusiWishUniversitiesMapper.updateCollect(id, collect); } @Override public UniversityDetailDTO detail(String code, Integer year) { UniversityDetailDTO data = new UniversityDetailDTO(); //基础信息 data.setBaseInfo(selectBBusiWishUniversitiesByCode(code)); //院校院系 b_busi_wish_universities_department;院校院系专业 b_busi_wish_universities_department_major // List departmentList=universitiesDepartmentMapper.selectBBusiWishUniversitiesDepartmentList(new BBusiWishUniversitiesDepartment().setCollegeCode(code)); // data.setDepartments(departmentList); //院校特色专业 b_busi_wish_universities_profession SysUser u = SecurityUtils.getLoginUser().getUser(); Map cond = Maps.newHashMap(); String examTypeData = ConstantUtil.getExamTypeData(u.getExamType().title()); cond.put("year", year); cond.put("collegeCode", code); cond.put("examineeType", u.getExamType().title()); cond.put("examType", examTypeData); cond.put("examMajor", u.getExamMajor()); List professionList = universitiesProfessionMapper.selectEnrollPlanProfessionByCode(cond); //设置数量 Map codeCountMap = syMajorService.selectSyMajorByLevel(examTypeData, 3).stream().collect(Collectors.toMap(t -> t.getCode(), SyMajor::getChildCount)); professionList.stream().forEach(ll->{ if(codeCountMap.containsKey(ll.getCode())){ ll.setCount(codeCountMap.get(ll.getCode())); } }); data.setProfessions(professionList); //院校重点&双一流 b_busi_wish_universities_subject // Map> subjectMap = universitiesSubjectMapper.selectBBusiWishUniversitiesSubjectList(new BBusiWishUniversitiesSubject().setCollegeCode(code)).stream().collect(Collectors.groupingBy(entity -> entity.getDataType())); // data.setSubjects(subjectMap); //学科评估 // List subjectevaluateList =universitiesSubjectevaluateMapper.selectBBusiWishUniversitiesSubjectevaluateList(new BBusiWishUniversitiesSubjectevaluate().setCollegeCode(code)); // data.setSubjectevaluates(subjectevaluateList); //就业报告 // List employmentreportList =universitiesEmploymentreportMapper.selectBBusiWishUniversitiesEmploymentreportList(new BBusiWishUniversitiesEmploymentreport().setCollegeCode(code)); // data.setEmploymentreports(employmentreportList); //最新动态、招生简章 BBusiWishUniversitiesEnrollBrochure query = new BBusiWishUniversitiesEnrollBrochure(); query.setCollegeCode(code); List list = universitiesEnrollBrochureService.selectBBusiWishUniversitiesEnrollBrochureList(query); data.setEnrollBrochures(list); return data; } @Override public List getLocations(String entranceType){ return CommonUtils.sortByChina(selectBBusiWishUniversitiesLocations(entranceType).stream().map(BBusiWishUniversities::getLocation).collect(Collectors.toList())); } @Override public List getTypes(String entranceType){ Set types = new HashSet<>(); selectBBusiWishUniversitiesTypes(entranceType).forEach(ll->{ types.addAll(Arrays.asList(com.ruoyi.common.utils.StringUtils.split(ll.getType(),","))); }); return CommonUtils.sortByChina(new ArrayList(types)); } /** * natureType * @return */ @Override public List getNatureTypeCN(String entranceType){ return CommonUtils.sortByChina(selectBBusiWishUniversitiesNatureTypes(entranceType).stream().map(BBusiWishUniversities::getNatureTypeCN).collect(Collectors.toList())); } @Override public List getFeatures(String entranceType){ Set features = new HashSet<>(); selectBBusiWishUniversitiesFeatures(entranceType).forEach(ll->{ features.addAll(Arrays.asList(com.ruoyi.common.utils.StringUtils.split(ll.getFeatures(), ","))); }); return CommonUtils.sortByChina(new ArrayList(features)); } @Override public List getBxTypes(String entranceType){ Set features = new HashSet<>(); selectBBusiWishUniversitiesBxTypes(entranceType).forEach(ll->{ features.addAll(Arrays.asList(com.ruoyi.common.utils.StringUtils.split(ll.getBxType(), ","))); }); return CommonUtils.sortByChina(new ArrayList(features)); } @Override public List getLevels(String entranceType){ Set levels = new HashSet<>(); selectBBusiWishUniversitiesLevels(entranceType).forEach(ll->{ levels.addAll(Arrays.asList(com.ruoyi.common.utils.StringUtils.split(ll.getLevel(), "//"))); }); return CommonUtils.sortByChina(new ArrayList(levels)); } }