BBusiWishUniversitiesServiceImpl.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. package com.ruoyi.syzy.service.impl;
  2. import com.google.common.collect.Maps;
  3. import com.ruoyi.common.core.domain.entity.SysUser;
  4. import com.ruoyi.common.utils.CommonUtils;
  5. import com.ruoyi.common.utils.SecurityUtils;
  6. import com.ruoyi.sy.domain.SyMajor;
  7. import com.ruoyi.sy.service.ISyMajorService;
  8. import com.ruoyi.syzy.domain.*;
  9. import com.ruoyi.syzy.dto.UniversityDetailDTO;
  10. import com.ruoyi.syzy.mapper.*;
  11. import com.ruoyi.syzy.service.IBBusiWishUniversitiesEnrollBrochureService;
  12. import com.ruoyi.syzy.service.IBBusiWishUniversitiesService;
  13. import com.ruoyi.system.service.ISysDictTypeService;
  14. import com.ruoyi.util.ConstantUtil;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Service;
  17. import java.util.*;
  18. import java.util.stream.Collectors;
  19. /**
  20. * 院校库Service业务层处理
  21. *
  22. * @author mingxue
  23. * @date 2021-07-29
  24. */
  25. @Service
  26. public class BBusiWishUniversitiesServiceImpl implements IBBusiWishUniversitiesService {
  27. @Autowired
  28. private BBusiWishUniversitiesMapper bBusiWishUniversitiesMapper;
  29. @Autowired
  30. private ISyMajorService syMajorService;
  31. @Autowired
  32. private BBusiWishUniversitiesEmploymentreportMapper universitiesEmploymentreportMapper;
  33. @Autowired
  34. private BBusiWishUniversitiesDepartmentMapper universitiesDepartmentMapper;
  35. @Autowired
  36. private BBusiWishUniversitiesProfessionMapper universitiesProfessionMapper;
  37. @Autowired
  38. private BBusiWishUniversitiesSubjectMapper universitiesSubjectMapper;
  39. @Autowired
  40. private IBBusiWishUniversitiesEnrollBrochureService universitiesEnrollBrochureService;
  41. @Autowired
  42. private ISysDictTypeService dictTypeService;
  43. @Override
  44. public List<BBusiWishUniversities> listMyByPage(String customerCode) {
  45. return bBusiWishUniversitiesMapper.listMyByPage(customerCode);
  46. }
  47. @Override
  48. public BBusiWishUniversities selectBBusiWishUniversitiesById(Long universityId) {
  49. return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesById(universityId);
  50. }
  51. @Override
  52. public BBusiWishUniversities selectBBusiWishUniversitiesByCode(String code) {
  53. BBusiWishUniversities result = bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesByCode(code);
  54. if(result != null){
  55. // 如果tier有值,则从字典dict_type=tier_type中取到值并将label赋值给tierName
  56. if(result.getTier() != null){
  57. String tierName = dictTypeService.getDictDataByType("tier_type", String.valueOf(result.getTier()));
  58. if(tierName != null && !tierName.isEmpty()){
  59. result.setTierName(tierName);
  60. }
  61. }
  62. }
  63. return result;
  64. }
  65. /**
  66. * 查询院校库列表
  67. *
  68. * @param bBusiWishUniversities 院校库
  69. * @return 院校库
  70. */
  71. @Override
  72. public List<BBusiWishUniversities> selectBBusiWishUniversitiesList(BBusiWishUniversities bBusiWishUniversities) {
  73. return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesList(bBusiWishUniversities);
  74. }
  75. @Override
  76. public List<BBusiWishUniversitiesProfession> selectBBusiWishUniversitiesProfessionByCode(String collegeCode) {
  77. return universitiesProfessionMapper.selectBBusiWishUniversitiesProfessionByCode(collegeCode);
  78. }
  79. @Override
  80. public List<BBusiWishUniversities> selectBBusiWishUniversitiesListSimpleByMap(Map cond) {
  81. return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesListSimpleByMap(cond);
  82. }
  83. @Override
  84. public List<BBusiWishUniversities> selectMajorWishUniversitiesListSimpleByMap(Map cond) {
  85. return bBusiWishUniversitiesMapper.selectMajorWishUniversitiesListSimpleByMap(cond);
  86. }
  87. @Override
  88. public List<BBusiWishUniversities> selectMajorWishUniversitiesListSimpleByMap2(Map cond) {
  89. return bBusiWishUniversitiesMapper.selectMajorWishUniversitiesListSimpleByMap2(cond);
  90. }
  91. @Override
  92. public List<BBusiWishUniversities> selectBBusiWishUniversitiesLocations(String entranceType) {
  93. return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesLocations(entranceType);
  94. }
  95. @Override
  96. public List<BBusiWishUniversities> selectBBusiWishUniversitiesTypes(String entranceType) {
  97. return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesTypes(entranceType);
  98. }
  99. @Override
  100. public List<BBusiWishUniversities> selectBBusiWishUniversitiesNatureTypes(String entranceType) {
  101. return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesNatureTypes(entranceType);
  102. }
  103. @Override
  104. public List<BBusiWishUniversities> selectBBusiWishUniversitiesListSimple(BBusiWishUniversities bBusiWishUniversities) {
  105. return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesListSimple(bBusiWishUniversities);
  106. }
  107. @Override
  108. public List<BBusiWishUniversities> selectBBusiWishUniversitiesFeatures(String entranceType) {
  109. return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesFeatures(entranceType);
  110. }
  111. @Override
  112. public List<BBusiWishUniversities> selectBBusiWishUniversitiesBxTypes(String entranceType) {
  113. return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesBxTypes(entranceType);
  114. }
  115. @Override
  116. public List<BBusiWishUniversities> selectBBusiWishUniversitiesLevels(String entranceType) {
  117. return bBusiWishUniversitiesMapper.selectBBusiWishUniversitiesLevels(entranceType);
  118. }
  119. /**
  120. * 修改院校库
  121. *
  122. * @param bBusiWishUniversities 院校库
  123. * @return 结果
  124. */
  125. @Override
  126. public int updateBBusiWishUniversities(BBusiWishUniversities bBusiWishUniversities) {
  127. return bBusiWishUniversitiesMapper.updateBBusiWishUniversities(bBusiWishUniversities);
  128. }
  129. @Override
  130. public int updateCollect(Long id, Integer collect) {
  131. return bBusiWishUniversitiesMapper.updateCollect(id, collect);
  132. }
  133. @Override
  134. public UniversityDetailDTO detail(String code, Integer year) {
  135. UniversityDetailDTO data = new UniversityDetailDTO();
  136. //基础信息
  137. data.setBaseInfo(selectBBusiWishUniversitiesByCode(code));
  138. //院校院系 b_busi_wish_universities_department;院校院系专业 b_busi_wish_universities_department_major
  139. List<BBusiWishUniversitiesDepartment> departmentList=universitiesDepartmentMapper.selectBBusiWishUniversitiesDepartmentList(new BBusiWishUniversitiesDepartment().setCollegeCode(code));
  140. data.setDepartments(departmentList);
  141. //院校特色专业 b_busi_wish_universities_profession
  142. SysUser u = SecurityUtils.getLoginUser().getUser();
  143. Map cond = Maps.newHashMap();
  144. String examTypeData = ConstantUtil.getExamTypeData(u.getExamType().title());
  145. cond.put("year", year);
  146. cond.put("collegeCode", code);
  147. cond.put("examineeType", u.getExamType().title());
  148. cond.put("examType", examTypeData);
  149. cond.put("examMajor", u.getExamMajor());
  150. /****/
  151. List<BBusiWishUniversitiesProfession> professionList = universitiesProfessionMapper.selectEnrollPlanProfessionByCode(cond);
  152. //设置数量
  153. Map<String,Integer> codeCountMap = syMajorService.selectSyMajorByLevel(examTypeData, 3).stream().collect(Collectors.toMap(t -> t.getCode(), SyMajor::getChildCount));
  154. professionList.stream().forEach(ll->{
  155. if(codeCountMap.containsKey(ll.getCode())){
  156. ll.setCount(codeCountMap.get(ll.getCode()));
  157. }
  158. });
  159. data.setProfessions(professionList);
  160. //院校重点&双一流 b_busi_wish_universities_subject
  161. // Map<String,List<BBusiWishUniversitiesSubject>> subjectMap = universitiesSubjectMapper.selectBBusiWishUniversitiesSubjectList(new BBusiWishUniversitiesSubject().setCollegeCode(code)).stream().collect(Collectors.groupingBy(entity -> entity.getDataType()));
  162. // data.setSubjects(subjectMap);
  163. //学科评估
  164. // List<BBusiWishUniversitiesSubjectevaluate> subjectevaluateList =universitiesSubjectevaluateMapper.selectBBusiWishUniversitiesSubjectevaluateList(new BBusiWishUniversitiesSubjectevaluate().setCollegeCode(code));
  165. // data.setSubjectevaluates(subjectevaluateList);
  166. //就业报告
  167. // List<BBusiWishUniversitiesEmploymentreport> employmentreportList =universitiesEmploymentreportMapper.selectBBusiWishUniversitiesEmploymentreportList(new BBusiWishUniversitiesEmploymentreport().setCollegeCode(code));
  168. // data.setEmploymentreports(employmentreportList);
  169. //最新动态、招生简章
  170. BBusiWishUniversitiesEnrollBrochure query = new BBusiWishUniversitiesEnrollBrochure();
  171. query.setCollegeCode(code);
  172. List<BBusiWishUniversitiesEnrollBrochure> list = universitiesEnrollBrochureService.selectBBusiWishUniversitiesEnrollBrochureList(query);
  173. data.setEnrollBrochures(list);
  174. return data;
  175. }
  176. @Override
  177. public List<String> getLocations(String entranceType){
  178. return CommonUtils.sortByChina(selectBBusiWishUniversitiesLocations(entranceType).stream().map(BBusiWishUniversities::getLocation).collect(Collectors.toList()));
  179. }
  180. @Override
  181. public List<String> getTypes(String entranceType){
  182. Set<String> types = new HashSet<>();
  183. selectBBusiWishUniversitiesTypes(entranceType).forEach(ll->{
  184. types.addAll(Arrays.asList(com.ruoyi.common.utils.StringUtils.split(ll.getType(),",")));
  185. });
  186. return CommonUtils.sortByChina(new ArrayList<String>(types));
  187. }
  188. /**
  189. * natureType
  190. * @return
  191. */
  192. @Override
  193. public List<String> getNatureTypeCN(String entranceType){
  194. return CommonUtils.sortByChina(selectBBusiWishUniversitiesNatureTypes(entranceType).stream().map(BBusiWishUniversities::getNatureTypeCN).collect(Collectors.toList()));
  195. }
  196. @Override
  197. public List<String> getFeatures(String entranceType){
  198. Set<String> features = new HashSet<>();
  199. selectBBusiWishUniversitiesFeatures(entranceType).forEach(ll->{
  200. features.addAll(Arrays.asList(com.ruoyi.common.utils.StringUtils.split(ll.getFeatures(), ",")));
  201. });
  202. return CommonUtils.sortByChina(new ArrayList<String>(features));
  203. }
  204. @Override
  205. public List<String> getBxTypes(String entranceType){
  206. Set<String> features = new HashSet<>();
  207. selectBBusiWishUniversitiesBxTypes(entranceType).forEach(ll->{
  208. features.addAll(Arrays.asList(com.ruoyi.common.utils.StringUtils.split(ll.getBxType(), ",")));
  209. });
  210. return CommonUtils.sortByChina(new ArrayList<String>(features));
  211. }
  212. @Override
  213. public List<String> getLevels(String entranceType){
  214. Set<String> levels = new HashSet<>();
  215. selectBBusiWishUniversitiesLevels(entranceType).forEach(ll->{
  216. levels.addAll(Arrays.asList(com.ruoyi.common.utils.StringUtils.split(ll.getLevel(), "//")));
  217. });
  218. return CommonUtils.sortByChina(new ArrayList<String>(levels));
  219. }
  220. }