FrontUniversitiesController.java 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446
  1. package com.ruoyi.web.controller.front;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.google.common.collect.Lists;
  4. import com.google.common.collect.Maps;
  5. import com.google.common.collect.Sets;
  6. import com.ruoyi.common.core.controller.BaseController;
  7. import com.ruoyi.common.core.domain.AjaxResult;
  8. import com.ruoyi.common.core.domain.AjaxResult2;
  9. import com.ruoyi.common.core.domain.entity.SysDictData;
  10. import com.ruoyi.common.core.domain.entity.SysUser;
  11. import com.ruoyi.common.core.page.TableDataInfo;
  12. import com.ruoyi.common.utils.SecurityUtils;
  13. import com.ruoyi.common.utils.StringUtils;
  14. import com.ruoyi.common.core.content.VistorContextHolder;
  15. import com.ruoyi.system.service.ISysDictTypeService;
  16. import com.ruoyi.syzy.domain.*;
  17. import com.ruoyi.syzy.dto.UniversitiesCondDTO;
  18. import com.ruoyi.syzy.dto.UniversityDetailDTO;
  19. import com.ruoyi.syzy.service.*;
  20. import com.ruoyi.util.ConstantUtil;
  21. import com.ruoyi.web.domain.Constant;
  22. import com.ruoyi.web.service.CommService;
  23. import com.ruoyi.web.service.VoluntaryService;
  24. import io.swagger.annotations.Api;
  25. import io.swagger.annotations.ApiOperation;
  26. import io.swagger.annotations.ApiParam;
  27. import org.apache.commons.collections.CollectionUtils;
  28. import org.apache.commons.lang3.math.NumberUtils;
  29. import org.apache.commons.lang3.tuple.Pair;
  30. import org.springframework.beans.factory.annotation.Autowired;
  31. import org.springframework.web.bind.annotation.*;
  32. import java.util.*;
  33. import java.util.stream.Collectors;
  34. import java.util.stream.Stream;
  35. @RestController
  36. @Api(tags = "前端-三库-院校库")
  37. @RequestMapping("front/university")
  38. public class FrontUniversitiesController extends BaseController {
  39. @Autowired
  40. private IBBusiWishUniversitiesImageService universitiesImageService;
  41. @Autowired
  42. private IBBusiWishUniversitiesEnrollBrochureService universitiesEnrollBrochureService;
  43. @Autowired
  44. private IBBusiWishUniversitiesService universitiesService;
  45. @Autowired
  46. private IBBusiWishUniversitiesRankingService universitiesRankingService;
  47. @Autowired
  48. public ISysDictTypeService dictTypeService;
  49. @Autowired
  50. private IBCustomerUniversitiesService customerUniversitiesService;
  51. @Autowired
  52. private VoluntaryService voluntaryService;
  53. @Autowired
  54. private IBBusiWishUniversitySubmitMarjorsService wishUniversitySubmitMarjorsService;
  55. @Autowired
  56. private IBBusiWishUniversitySubmitRecruitPlanService wishUniversitySubmitRecruitPlanService;
  57. @Autowired
  58. private CommService commService;
  59. private final Map<String, String> tierDescMap = Maps.newHashMap();
  60. public FrontUniversitiesController() {
  61. tierDescMap.put("1", "文化分280分以上");
  62. tierDescMap.put("2", "文化分270分以上");
  63. tierDescMap.put("3", "文化分260分以上");
  64. tierDescMap.put("4", "文化分250分以上");
  65. tierDescMap.put("5", "文化分240分以上");
  66. tierDescMap.put("6", "文化分230分以上");
  67. }
  68. @GetMapping("filters")
  69. @ApiOperation("00 院校列表数据筛选项")
  70. public AjaxResult filters() {
  71. String entranceType = ConstantUtil.getExamTypeData(VistorContextHolder.getExamType().title());
  72. JSONObject data = new JSONObject(true);
  73. data.put("locations", universitiesService.getLocations(entranceType));
  74. data.put("natureTypes", universitiesService.getNatureTypeCN(entranceType));//办学性质:公办民办
  75. data.put("types", universitiesService.getTypes(entranceType));//院校类别
  76. // data.put("levels", universitiesService.getLevels());
  77. data.put("features", universitiesService.getFeatures(entranceType));//等级
  78. data.put("bxTypes", universitiesService.getBxTypes(entranceType));//双高院校
  79. //竞争力星级
  80. Map<String,String> map = dictTypeService.selectDictDataByType("university_stars")
  81. .stream().collect(Collectors.toMap(t -> t.getDictValue(), SysDictData::getDictLabel));
  82. map.entrySet().stream().sorted(Map.Entry.comparingByKey());
  83. data.put("stars", map);
  84. //梯次
  85. Map<String,String> tierMap = dictTypeService.selectDictDataByType("tier_type")
  86. .stream().collect(Collectors.toMap(t -> t.getDictValue(), SysDictData::getDictLabel));
  87. map.entrySet().stream().sorted(Map.Entry.comparingByKey());
  88. data.put("tiers", tierMap);
  89. return AjaxResult.success(data);
  90. }
  91. @GetMapping("locations")
  92. @ApiOperation("00 院校列表数据筛选项-地域 回传location")
  93. public AjaxResult locations() {
  94. return AjaxResult.success(universitiesService.getLocations(ConstantUtil.getExamTypeData(VistorContextHolder.getExamType().title())));
  95. }
  96. @GetMapping("natureTypes")
  97. @ApiOperation("00 院校列表数据筛选项-主管机构类型 回传natureTypeCN")
  98. public AjaxResult natureTypes() {
  99. return AjaxResult.success(universitiesService.getNatureTypeCN(ConstantUtil.getExamTypeData(VistorContextHolder.getExamType().title())));
  100. }
  101. @GetMapping("types")
  102. @ApiOperation("00 院校列表数据筛选项-院校类型 回传type")
  103. public AjaxResult types() {
  104. return AjaxResult.success(universitiesService.getTypes(ConstantUtil.getExamTypeData(VistorContextHolder.getExamType().title())));
  105. }
  106. @GetMapping("levels")
  107. @ApiOperation("00 院校列表数据筛选项-学历层次 回传level")
  108. public AjaxResult levels() {
  109. return AjaxResult.success(universitiesService.getLevels(ConstantUtil.getExamTypeData(VistorContextHolder.getExamType().title())));
  110. }
  111. @GetMapping("features")
  112. @ApiOperation("00 院校列表数据筛选项-院校类型 回传features")
  113. public AjaxResult features() {
  114. return AjaxResult.success(universitiesService.getFeatures(ConstantUtil.getExamTypeData(VistorContextHolder.getExamType().title())));
  115. }
  116. @GetMapping("listNoToken")
  117. @ApiOperation("01 院校列表")
  118. public TableDataInfo listNoToken(UniversitiesCondDTO cond, @ApiParam(value = "页数", example = "1") @RequestParam Integer pageNum,
  119. @ApiParam(value = "页大小", example = "15") @RequestParam Integer pageSize) {
  120. return getDataTable(getUniversitiesList(cond,null, pageNum, pageSize));
  121. }
  122. @GetMapping("listByTier")
  123. @ApiOperation("01 分级院校列表")
  124. public AjaxResult2<List<JSONObject>> listByTier(UniversitiesCondDTO cond) {
  125. String location = VistorContextHolder.getLocation();
  126. if(StringUtils.isNotBlank(location)){
  127. location = location+",全国";
  128. }
  129. List<JSONObject> tierList = Lists.newArrayList();
  130. List<BBusiWishUniversities> arr = getUniversitiesList(cond,location, -1, 15);
  131. Map<Integer, List<BBusiWishUniversities>> tierMap = arr.stream().filter(t -> null != t.getTier())
  132. .collect(Collectors.groupingBy(BBusiWishUniversities::getTier, Collectors.toList()));
  133. List<SysDictData> tierTypeList = dictTypeService.selectDictDataByType("tier_type");
  134. Set<String> tierSet = Sets.newHashSet(Arrays.asList((StringUtils.isBlank(cond.getTiers()) ? "1,2,3,4" : cond.getTiers()).split(",")));
  135. for(SysDictData dd : tierTypeList) {
  136. if(!tierSet.contains(dd.getDictValue())) {
  137. continue;
  138. }
  139. List<BBusiWishUniversities> uList = tierMap.get(NumberUtils.toInt(dd.getDictValue()));
  140. JSONObject tierUniversities = new JSONObject();
  141. tierUniversities.put("typeName", dd.getDictLabel());
  142. tierUniversities.put("typeValue", dd.getDictValue());
  143. tierUniversities.put("desc", tierDescMap.get(dd.getDictValue()));
  144. tierUniversities.put("list", uList);
  145. tierList.add(tierUniversities);
  146. }
  147. return AjaxResult2.success(tierList);
  148. }
  149. @GetMapping("list")
  150. @ApiOperation("01 院校列表")
  151. public TableDataInfo list(UniversitiesCondDTO cond, @ApiParam(value = "页数", example = "1") @RequestParam Integer pageNum,
  152. @ApiParam(value = "页大小", example = "15") @RequestParam Integer pageSize) {
  153. String location = VistorContextHolder.getLocation();
  154. if(StringUtils.isNotBlank(location)){
  155. location = location+",全国";
  156. }
  157. return getDataTable(getUniversitiesList(cond,location, pageNum, pageSize));
  158. }
  159. public List<BBusiWishUniversities> getUniversitiesList(UniversitiesCondDTO cond,String location, Integer pageNum,Integer pageSize){
  160. if (StringUtils.isNumber(cond.getName())) {
  161. cond.setCode(cond.getName());
  162. cond.setName(null);
  163. }
  164. SysUser user = SecurityUtils.getLoginUser().getUser();
  165. cond.setEnrollLocation(user.getLocation());
  166. if (null != pageNum && pageNum >= 0) {
  167. startPage();
  168. }
  169. List<BBusiWishUniversities> arr;
  170. Integer planYear = voluntaryService.getPlanYear(user);
  171. if(Constant.EXAM_TYPE_ZG.equals(user.getExamType().title())) {
  172. //职高对口
  173. arr = universitiesService.selectMajorWishUniversitiesListSimpleByMap2(cond.toCondMap(planYear, user.getExamType().title(), user.getExamMajor(), user.getLocation(),cond.getTier())); // TODO MF
  174. } else {
  175. arr = universitiesService.selectMajorWishUniversitiesListSimpleByMap(cond.toCondMap(planYear, Constant.EXAM_TYPE_PG, null, user.getLocation(),cond.getTier()));
  176. }
  177. //处理院校星级竞争力
  178. arr.stream().forEach(t -> {
  179. if(StringUtils.isNotEmpty(t.getStar())){
  180. t.setStar(dictTypeService.getDictDataByType("university_stars",t.getStar()));
  181. }
  182. });
  183. return arr;
  184. }
  185. @GetMapping("detail")
  186. @ApiOperation("02 院校详情")
  187. public AjaxResult detail(@ApiParam("学校code") @RequestParam String code) {
  188. commService.requireVip();
  189. SysUser sysUser = SecurityUtils.getLoginUser().getUser();
  190. UniversityDetailDTO data = universitiesService.detail(code, voluntaryService.getPlanYear(sysUser));
  191. if(StringUtils.isNotEmpty(data.getBaseInfo().getStar())){
  192. data.getBaseInfo().setStar(dictTypeService.getDictDataByType("university_stars",data.getBaseInfo().getStar()));
  193. }
  194. Long universityId = data.getBaseInfo().getId();
  195. BCustomerUniversities cond = new BCustomerUniversities();
  196. cond.setUniversityId(universityId);
  197. cond.setCustomerCode(sysUser.getCode());
  198. cond.setStatus(1L);
  199. List<BCustomerUniversities> list = customerUniversitiesService.selectBCustomerUniversitiesList(cond);
  200. data.getBaseInfo().setCollected(CollectionUtils.isNotEmpty(list));
  201. this.saveUniversitiesClicks(code);
  202. if(Constant.EXAM_TYPE_ZG.equals(sysUser.getExamType().title())) {
  203. Integer examMajor = sysUser.getExamMajor();
  204. BBusiWishUniversitySubmitRecruitPlan planCond = new BBusiWishUniversitySubmitRecruitPlan();
  205. planCond.setUniversityId(universityId);
  206. planCond.setLocation(sysUser.getLocation());
  207. planCond.setLiberalScience(examMajor);
  208. List<UniversityDetailDTO.WishPlan> planList = wishUniversitySubmitRecruitPlanService.selectBBusiWishUniversitySubmitRecruitPlanList(planCond).stream().map(t -> new UniversityDetailDTO.WishPlan(t)).collect(Collectors.toList());
  209. data.setPlanHistories(planList);
  210. BBusiWishUniversitySubmitMarjors submitCond = new BBusiWishUniversitySubmitMarjors();
  211. submitCond.setUniversityId(universityId);
  212. submitCond.setLocation(sysUser.getLocation());
  213. submitCond.setLiberalScience(examMajor);
  214. List<UniversityDetailDTO.WishSubmit> submitList = wishUniversitySubmitMarjorsService.selectBBusiWishUniversitySubmitMarjorsList(submitCond).stream().map(t -> new UniversityDetailDTO.WishSubmit(t)).collect(Collectors.toList());
  215. data.setEnrollHistories(submitList);
  216. } else if(Constant.EXAM_TYPE_PG.equals(sysUser.getExamType().title()) || Constant.EXAM_TYPE_ZZ.equals(sysUser.getExamType().title())) {
  217. Pair<List<UniversityDetailDTO.WishPlan>, List<UniversityDetailDTO.WishSubmit>> pair = voluntaryService.getUniversityHistory(universityId, sysUser.getLocation(), sysUser.getExamType().title());
  218. data.setPlanHistories(pair.getLeft());
  219. data.setEnrollHistories(pair.getRight());
  220. }
  221. return AjaxResult.success(data);
  222. }
  223. /**
  224. * 新接口:202560110
  225. * @param code
  226. * @param title
  227. * @return
  228. */
  229. @GetMapping("getUniversityDetail")
  230. @ApiOperation("12 院校详情")
  231. public AjaxResult getUniversityDetail(@ApiParam("学校code") @RequestParam String code) {
  232. commService.requireVip();
  233. SysUser sysUser = SecurityUtils.getLoginUser().getUser();
  234. UniversityDetailDTO data = universitiesService.detail(code, voluntaryService.getPlanYear(sysUser));
  235. if(StringUtils.isNotEmpty(data.getBaseInfo().getStar())){
  236. data.getBaseInfo().setStar(dictTypeService.getDictDataByType("university_stars",data.getBaseInfo().getStar()));
  237. }
  238. Long universityId = data.getBaseInfo().getId();
  239. BCustomerUniversities cond = new BCustomerUniversities();
  240. cond.setUniversityId(universityId);
  241. cond.setCustomerCode(sysUser.getCode());
  242. cond.setStatus(1L);
  243. List<BCustomerUniversities> list = customerUniversitiesService.selectBCustomerUniversitiesList(cond);
  244. data.getBaseInfo().setCollected(CollectionUtils.isNotEmpty(list));
  245. this.saveUniversitiesClicks(code);
  246. if(Constant.EXAM_TYPE_ZG.equals(sysUser.getExamType().title())) {
  247. Integer examMajor = sysUser.getExamMajor();
  248. BBusiWishUniversitySubmitRecruitPlan planCond = new BBusiWishUniversitySubmitRecruitPlan();
  249. planCond.setUniversityId(universityId);
  250. planCond.setLocation(sysUser.getLocation());
  251. planCond.setLiberalScience(examMajor);
  252. List<UniversityDetailDTO.WishPlan> planList = wishUniversitySubmitRecruitPlanService.selectBBusiWishUniversitySubmitRecruitPlanList(planCond).stream().map(t -> new UniversityDetailDTO.WishPlan(t)).collect(Collectors.toList());
  253. data.setPlanHistories(planList);
  254. BBusiWishUniversitySubmitMarjors submitCond = new BBusiWishUniversitySubmitMarjors();
  255. submitCond.setUniversityId(universityId);
  256. submitCond.setLocation(sysUser.getLocation());
  257. submitCond.setLiberalScience(examMajor);
  258. List<UniversityDetailDTO.WishSubmit> submitList = wishUniversitySubmitMarjorsService.selectBBusiWishUniversitySubmitMarjorsList(submitCond).stream().map(t -> new UniversityDetailDTO.WishSubmit(t)).collect(Collectors.toList());
  259. data.setEnrollHistories(submitList);
  260. } else if(Constant.EXAM_TYPE_PG.equals(sysUser.getExamType().title()) || Constant.EXAM_TYPE_ZZ.equals(sysUser.getExamType().title())) {
  261. Pair<List<UniversityDetailDTO.WishPlan>, List<UniversityDetailDTO.WishSubmit>> pair = voluntaryService.getUniversityHistory(universityId, sysUser.getLocation(), sysUser.getExamType().title());
  262. data.setPlanHistories(pair.getLeft());
  263. data.setEnrollHistories(pair.getRight());
  264. }
  265. return AjaxResult.success(data);
  266. }
  267. @GetMapping("getUniversitiesEnrollBrochure")
  268. @ApiOperation("03 招生简章")
  269. public TableDataInfo getUniversitiesEnrollBrochure(@ApiParam("学校code") @RequestParam String code,
  270. @ApiParam("学校code") String title) {
  271. BBusiWishUniversitiesEnrollBrochure query = new BBusiWishUniversitiesEnrollBrochure();
  272. query.setCollegeCode(code);
  273. query.setTitle(title);
  274. startPage();
  275. List<BBusiWishUniversitiesEnrollBrochure> list = universitiesEnrollBrochureService.selectBBusiWishUniversitiesEnrollBrochureList(query);
  276. return getDataTable(list);
  277. }
  278. @GetMapping("getUniversitiesEnrollBrochureDetail")
  279. @ApiOperation("03-2 招生简章详情")
  280. public AjaxResult getUniversitiesEnrollBrochure(@ApiParam("简章id") @RequestParam Long id) {
  281. return AjaxResult.success(universitiesEnrollBrochureService.selectBBusiWishUniversitiesEnrollBrochureById(id));
  282. }
  283. @PostMapping("saveUniversitiesEnrollBrochureHits")
  284. @ApiOperation("04-2 保存招生简章热度/点击")
  285. public AjaxResult saveUniversitiesEnrollBrochureHits(@ApiParam("ID") @RequestParam Long id){
  286. BBusiWishUniversitiesEnrollBrochure result = universitiesEnrollBrochureService.selectBBusiWishUniversitiesEnrollBrochureById(id);
  287. result.setHits(null==result.getHits()?1:(result.getHits()+1));
  288. universitiesEnrollBrochureService.updateBBusiWishUniversitiesEnrollBrochure(result);
  289. return AjaxResult.success("保存成功");
  290. }
  291. // @PostMapping("saveUniversitiesHits")
  292. // @ApiOperation("04 保存院校热度/点击")
  293. public AjaxResult saveUniversitiesClicks(@ApiParam("学校code") @RequestParam String code) {
  294. BBusiWishUniversities result = universitiesService.selectBBusiWishUniversitiesByCode(code);
  295. if(null==result){
  296. return AjaxResult.error("学校[ "+code+" ]不存在");
  297. }
  298. BBusiWishUniversities update = new BBusiWishUniversities();
  299. update.setId(result.getId());
  300. update.setHits(null==result.getHits()?1:(result.getHits()+1));
  301. universitiesService.updateBBusiWishUniversities(update);
  302. return AjaxResult.success();
  303. }
  304. @GetMapping("getUniversitiesHitsTopCount")
  305. @ApiOperation("05 获取院校热度/点击 Top count")
  306. public AjaxResult getUniversitiesHits(Integer count) {
  307. BBusiWishUniversities exam = new BBusiWishUniversities();
  308. exam.getParams().put("orderBy", "hits desc");
  309. exam.getParams().put("limit", null==count?8:count);
  310. List<BBusiWishUniversities> arr = universitiesService.selectBBusiWishUniversitiesListSimple(exam);
  311. return AjaxResult.success(arr);
  312. }
  313. @GetMapping("getUniversitiesStyle")
  314. @ApiOperation("06 获取院校风采")
  315. public AjaxResult getUniversitiesStyle(@ApiParam("学校code") @RequestParam String code) {
  316. BBusiWishUniversitiesImage query = new BBusiWishUniversitiesImage();
  317. query.setCollegeCode(code);
  318. // query.getParams().put("orderBy", "collegeCode,sort");
  319. List<BBusiWishUniversitiesImage> list = universitiesImageService.selectBBusiWishUniversitiesImageList(query);
  320. return AjaxResult.success(list);
  321. }
  322. @GetMapping("getUniversitiesRankingFilter")
  323. @ApiOperation("07-1 获取院校排名筛选条件")
  324. public AjaxResult getUniversitiesRankingFilter(String type) {
  325. JSONObject result = new JSONObject();
  326. result.put("types",universitiesRankingService.selectBBusiWishUniversitiesRankingTypes());
  327. result.put("years",universitiesRankingService.selectBBusiWishUniversitiesRankingYears(type));
  328. return AjaxResult.success(result);
  329. }
  330. @GetMapping("getUniversitiesRankingFilterYears")
  331. @ApiOperation("07-1-1 获取院校排名筛选条件年份")
  332. public AjaxResult getUniversitiesRankingFilterYears(String type) {
  333. JSONObject result = new JSONObject();
  334. result.put("years",universitiesRankingService.selectBBusiWishUniversitiesRankingYears(type));
  335. return AjaxResult.success(result);
  336. }
  337. @GetMapping("getUniversitiesRanking")
  338. @ApiOperation("07-2 获取院校排名")
  339. public TableDataInfo getUniversitiesRanking(@ApiParam("排名类型") @RequestParam String type,
  340. @ApiParam("年份") @RequestParam Integer year,@ApiParam("学校名称") String collegeName) {
  341. return getUniversitiesRankingList(type, year, collegeName);
  342. }
  343. @GetMapping("getUniversitiesRankingNoToken")
  344. @ApiOperation("07-2 获取院校排名")
  345. public TableDataInfo getUniversitiesRankingNoToken(@ApiParam("排名类型") @RequestParam String type,
  346. @ApiParam("年份") @RequestParam Integer year,@ApiParam("学校名称") String collegeName) {
  347. return getUniversitiesRankingList(type, year, collegeName);
  348. }
  349. private TableDataInfo getUniversitiesRankingList(String type,Integer year,String collegeName){
  350. BBusiWishUniversitiesRanking query = new BBusiWishUniversitiesRanking();
  351. query.setType(type);
  352. query.setYear(year);
  353. if(StringUtils.isNotBlank(collegeName)){
  354. query.setCollegeName(collegeName);
  355. }
  356. // query.getParams().put("orderBy", " ranking");
  357. startPage();
  358. //取到学校数据
  359. List<BBusiWishUniversitiesRanking> list = universitiesRankingService.selectBBusiWishUniversitiesRankingList(query);
  360. return getDataTable(list);
  361. }
  362. @GetMapping("getUniversitiesRankingByTypes")
  363. @ApiOperation("07-3 获取院校排名->APP使用")
  364. public TableDataInfo getUniversitiesRankingByTypes(@ApiParam("排名类型") @RequestParam String type) {
  365. Integer year = universitiesRankingService.selectUniversitiesRankingMaxYearByType(type);
  366. if(null==year){
  367. return getDataTable(new ArrayList<>());
  368. }
  369. BBusiWishUniversitiesRanking query = new BBusiWishUniversitiesRanking();
  370. query.setType(type);
  371. query.setYear(year);
  372. //取到最新一年的学校排名数据
  373. startPage();
  374. List<BBusiWishUniversitiesRanking> list = universitiesRankingService.selectBBusiWishUniversitiesRankingList(query);
  375. List<String> collegeCodes = list.stream().map(t->t.getCollegeCode()).collect(Collectors.toList());
  376. query = new BBusiWishUniversitiesRanking();
  377. query.setType(type);
  378. query.setCollegeCodes(collegeCodes);
  379. query.getParams().put("maxYear", year-1);
  380. query.getParams().put("minYear", year-2);
  381. //取最近两年对应学校的数据
  382. List<BBusiWishUniversitiesRanking> historyList = universitiesRankingService.selectBBusiWishUniversitiesRankingList(query);
  383. Map<String,Integer> yearCodeRankingMap = historyList.stream().collect(Collectors.toMap(e -> (e.getYear()+e.getCollegeCode()),e -> e.getRanking()));
  384. // Map<String, BBusiWishUniversitiesRanking> importMap = historyList.stream().collect(Collectors.toMap(BBusiWishUniversitiesRanking::getCollegeCode, Function.identity()));
  385. //填充过去2年数据
  386. for (BBusiWishUniversitiesRanking ll : list) {
  387. //去年
  388. String key = (ll.getYear() - 1) + ll.getCollegeCode();
  389. if (yearCodeRankingMap.containsKey(key)) {
  390. ll.setLastRanking1(yearCodeRankingMap.get(key));
  391. }
  392. //前年
  393. key = (ll.getYear() - 2) + ll.getCollegeCode();
  394. if (yearCodeRankingMap.containsKey(key)) {
  395. ll.setLastRanking2(yearCodeRankingMap.get(key));
  396. }
  397. }
  398. return getDataTable(list);
  399. }
  400. }