BBusiWishUniversitiesServiceImpl.java 13 KB

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