From b6373daa40c3dc17ca107f3666fd252f3b6b0778 Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期五, 03 一月 2025 18:34:52 +0800 Subject: [PATCH] 代码 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TIndexMenuController.java | 194 +++++++++++++++++++++++++++++++----------------- 1 files changed, 125 insertions(+), 69 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TIndexMenuController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TIndexMenuController.java index bb54fbd..5b898ac 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TIndexMenuController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TIndexMenuController.java @@ -19,6 +19,7 @@ import oshi.driver.mac.net.NetStat; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.time.LocalDate; import java.util.*; @@ -80,8 +81,8 @@ @ApiOperation(value = "根据省名字获取悬停框内统计数",tags = {"web-政策数据中心"}) @PostMapping(value = "/getByProvinceName/count") public R getByProvinceName() { - List<TRegion> list1 = regionService.lambdaQuery().groupBy(TRegion::getProvinceName).list(); - for (TRegion tRegion : list1) { + List<TRegion> regions = regionService.lambdaQuery().groupBy(TRegion::getProvinceName).list(); + for (TRegion tRegion : regions) { List<TRegion> list = regionService.lambdaQuery().eq(TRegion::getProvinceName, tRegion.getProvinceName()).list(); List<Integer> regionIds = new ArrayList<>(); list.forEach(region -> regionIds.add(region.getId())); @@ -93,8 +94,7 @@ tRegion.setCount(0L); } } - return R.ok(list1); - + return R.ok(regions); } @@ -103,20 +103,20 @@ public R<List<TDeclareNotice>> noticelist(@RequestBody ConsultationQuery informationQuery) { //获取当前登录人id Long userId = tokenService.getLoginUser().getUserId(); - TUserChange one = changeService.lambdaQuery().eq(TUserChange::getUserId, userId).orderByDesc(TUserChange::getCreateTime).last("limit 1").one(); + TUserChange userChange = changeService.lambdaQuery().eq(TUserChange::getUserId, userId).orderByDesc(TUserChange::getCreateTime).last("limit 1").one(); List<TDeclareNotice> notices = new ArrayList<>(); - if (one!=null){ - List<TUserChangeDetail> list = changeDetailService.lambdaQuery().eq(TUserChangeDetail::getChangeId, one.getId()).list(); - for (TUserChangeDetail tUserChangeDetail : list) { - List<TDeclareNotice> list1 = declareNoticeService.lambdaQuery().eq(TDeclareNotice::getRegionId,tUserChangeDetail.getRegionId()).eq(TDeclareNotice::getMajorId, tUserChangeDetail.getMajorId()).eq(TDeclareNotice::getLevel, tUserChangeDetail.getLevelId()).list(); - notices.addAll(list1); + if (userChange!=null){ + List<TUserChangeDetail> userChangeDetails = changeDetailService.lambdaQuery().eq(TUserChangeDetail::getChangeId, userChange.getId()).list(); + for (TUserChangeDetail tUserChangeDetail : userChangeDetails) { + List<TDeclareNotice> declareNotices = declareNoticeService.lambdaQuery().eq(TDeclareNotice::getRegionId,tUserChangeDetail.getRegionId()).eq(TDeclareNotice::getMajorId, tUserChangeDetail.getMajorId()).eq(TDeclareNotice::getLevel, tUserChangeDetail.getLevelId()).list(); + notices.addAll(declareNotices); } notices.sort(Comparator.comparing(TDeclareNotice::getCreateTime).reversed()); }else { // 创建 LambdaQueryWrapper 并设置查询条件 - List<TDeclareNotice> list1 = declareNoticeService.lambdaQuery() + List<TDeclareNotice> declareNotices = declareNoticeService.lambdaQuery() .last(" ORDER BY RAND() LIMIT 16").list(); - notices.addAll(list1); + notices.addAll(declareNotices); } if (notices.size() > 16) { // 只保留前 16 条记录 @@ -127,23 +127,32 @@ @ApiOperation(value = "定制推荐-2政策3公示",tags = {"web-首页"}) @PostMapping(value = "/consultation/list") - public R<List<TConsultation>> consultationlist(@RequestParam Integer type,@RequestParam(required = false) Integer regionId) { - //获取当前登录人id - Long userId = tokenService.getLoginUser().getUserId(); - TUserChange one = changeService.lambdaQuery().eq(TUserChange::getUserId, userId).orderByDesc(TUserChange::getCreateTime).last("limit 1").one(); + public R<List<TConsultation>> consultationlist(@RequestParam Integer type, @RequestParam(required = false) Integer regionId, HttpServletRequest request) { + String token = request.getHeader("Authorization"); + TUserChange userChange =null; + if(StringUtils.isNotEmpty(token)){ + //获取当前登录人id + Long userId = tokenService.getLoginUser().getUserId(); + userChange = changeService.lambdaQuery().eq(TUserChange::getUserId, userId).orderByDesc(TUserChange::getCreateTime).last("limit 1").one(); + } List<TConsultation> notices = new ArrayList<>(); if (type==1){ - if (one!=null){ - List<TUserChangeDetail> list = changeDetailService.lambdaQuery().eq(TUserChangeDetail::getChangeId, one.getId()).list(); - for (TUserChangeDetail tUserChangeDetail : list) { - List<TConsultation> list1 = consultationService.lambdaQuery().eq(TConsultation::getClassificationId,type) - .eq(TConsultation::getRegionId,tUserChangeDetail.getRegionId()) - .eq(TConsultation::getMajorId, tUserChangeDetail.getMajorId()) - .eq(TConsultation::getLevel, tUserChangeDetail.getLevelId()) - .eq(TConsultation::getIsRecommend,1) - .orderByDesc(TConsultation::getClassificationSort,TConsultation::getCreateTime).list(); - notices.addAll(list1); + if (userChange!=null){ + List<TUserChangeDetail> userChangeDetails = changeDetailService.lambdaQuery().eq(TUserChangeDetail::getChangeId, userChange.getId()).list(); + List<TConsultation> consultations = consultationService.lambdaQuery().eq(TConsultation::getClassificationId, type) + .orderByDesc(TConsultation::getClassificationSort,TConsultation::getCreateTime).list(); + for (TUserChangeDetail tUserChangeDetail : userChangeDetails) { + List<TConsultation> consultationList = consultations.stream().filter(e -> e.getRegionId().equals(tUserChangeDetail.getRegionId()) + && e.getMajorId().equals(tUserChangeDetail.getMajorId()) + && e.getLevel().equals(tUserChangeDetail.getLevelId()) + ).collect(Collectors.toList()); +// List<TConsultation> consultations = consultationService.lambdaQuery().eq(TConsultation::getClassificationId,type) +// .eq(TConsultation::getRegionId,tUserChangeDetail.getRegionId()) +// .eq(TConsultation::getMajorId, tUserChangeDetail.getMajorId()) +// .eq(TConsultation::getLevel, tUserChangeDetail.getLevelId()) +// .orderByDesc(TConsultation::getClassificationSort,TConsultation::getCreateTime).list(); + notices.addAll(consultationList); } notices.sort(Comparator.comparing(TConsultation::getCreateTime).reversed()); }else { @@ -154,26 +163,27 @@ List<Integer> regionIds = regions.stream().map(TRegion::getId).collect(Collectors.toList()); List<TConsultation> list1 = consultationService.lambdaQuery().eq(TConsultation::getClassificationId,type) .in(TConsultation::getRegionId,regionIds) - .eq(TConsultation::getIsRecommend,1) .orderByDesc(TConsultation::getCreateTime,TConsultation::getClassificationSort).list(); notices.addAll(list1); notices.sort(Comparator.comparing(TConsultation::getCreateTime).reversed()); } - List<TConsultation> list1 = consultationService.lambdaQuery().eq(TConsultation::getClassificationId,type).eq(TConsultation::getIsRecommend,1).last("ORDER BY RAND() LIMIT 16").list(); - notices.addAll(list1); - if (notices.size() > 16) { +// List<TConsultation> list1 = consultationService.lambdaQuery().eq(TConsultation::getClassificationId,type).eq(TConsultation::getIsRecommend,1).last("ORDER BY RAND() LIMIT 16").list(); +// notices.addAll(list1); + if (notices.size() > 2) { // 只保留前 16 条记录 - notices = new ArrayList<>(notices.subList(0, 16)); + notices = new ArrayList<>(notices.subList(0, 2)); } }else { - if (one!=null){ - List<TUserChangeDetail> list = changeDetailService.lambdaQuery().eq(TUserChangeDetail::getChangeId, one.getId()).list(); + if (userChange!=null){ + List<TUserChangeDetail> list = changeDetailService.lambdaQuery().eq(TUserChangeDetail::getChangeId, userChange.getId()).list(); + List<TConsultation> consultations = consultationService.lambdaQuery().eq(TConsultation::getClassificationId, type).list(); for (TUserChangeDetail tUserChangeDetail : list) { - List<TConsultation> list1 = consultationService.lambdaQuery().eq(TConsultation::getClassificationId,type) - .eq(TConsultation::getRegionId,tUserChangeDetail.getRegionId()) - .eq(TConsultation::getMajorId, tUserChangeDetail.getMajorId()) - .eq(TConsultation::getLevel, tUserChangeDetail.getLevelId()).list(); - notices.addAll(list1); + List<TConsultation> consultationList = consultations.stream().filter(e -> e.getRegionId().equals(tUserChangeDetail.getRegionId()) + && e.getMajorId().equals(tUserChangeDetail.getMajorId()) + && e.getLevel().equals(tUserChangeDetail.getLevelId()) + && e.getClassificationId().equals(type) + ).collect(Collectors.toList()); + notices.addAll(consultationList); } notices.sort(Comparator.comparing(TConsultation::getCreateTime).reversed()); }else { @@ -188,11 +198,11 @@ notices.addAll(list1); notices.sort(Comparator.comparing(TConsultation::getCreateTime).reversed()); } - List<TConsultation> list1 = consultationService.lambdaQuery().eq(TConsultation::getClassificationId,type).last("ORDER BY RAND() LIMIT 16").list(); - notices.addAll(list1); - if (notices.size() > 16) { +// List<TConsultation> list1 = consultationService.lambdaQuery().eq(TConsultation::getClassificationId,type).last("ORDER BY RAND() LIMIT 16").list(); +// notices.addAll(list1); + if (notices.size() > 2) { // 只保留前 16 条记录 - notices = new ArrayList<>(notices.subList(0, 16)); + notices = new ArrayList<>(notices.subList(0, 2)); } } return R.ok(notices); @@ -204,15 +214,15 @@ @ApiOperation(value = "全国政策数据",tags = {"web-首页"}) @PostMapping(value = "/total/count") public R<CountTotalDto> totalcount() { - Long count1 = consultationService.lambdaQuery().eq(TConsultation::getClassificationId, 1).count(); - Long count2 = consultationService.lambdaQuery().eq(TConsultation::getClassificationId, 2).count(); - Long count3 = consultationService.lambdaQuery().eq(TConsultation::getClassificationId, 3).count(); + Long noticeCount = consultationService.lambdaQuery().eq(TConsultation::getClassificationId, 1).count(); + Long fileCount = consultationService.lambdaQuery().eq(TConsultation::getClassificationId, 2).count(); + Long infoCount = consultationService.lambdaQuery().eq(TConsultation::getClassificationId, 3).count(); CountTotalDto countTotalDto = new CountTotalDto(); - countTotalDto.setNoticeCount(count1); - countTotalDto.setFileCount(count2); - countTotalDto.setInfoCount(count3); - Long count4 = committeeService.lambdaQuery().count(); - countTotalDto.setCommitteeCount(count4); + countTotalDto.setNoticeCount(noticeCount); + countTotalDto.setFileCount(fileCount); + countTotalDto.setInfoCount(infoCount); + Long committeeCount = committeeService.lambdaQuery().count(); + countTotalDto.setCommitteeCount(committeeCount); return R.ok(countTotalDto); } @@ -230,9 +240,9 @@ @PostMapping(value = "/allert") public R allert() { Long userId = tokenService.getLoginUser().getUserId(); - TAppUser byId = appUserService.getById(userId); + TAppUser appUser = appUserService.getById(userId); Long cacheObject = redisCache.getCacheObject("ALLERT:"+userId); - if (cacheObject!=null && byId.getIsSetPreference() == 1){ + if (cacheObject!=null && appUser.getIsSetPreference() == 1){ return R.ok(cacheObject == 1); }else { return R.ok(false); @@ -308,22 +318,48 @@ @ApiOperation(value = "推荐资料",tags = {"web-首页"}) @PostMapping(value = "/information/list") - public R<List<TInformation>> information() { - //获取当前登录人id - Long userId = tokenService.getLoginUser().getUserId(); - TUserChange one = changeService.lambdaQuery().eq(TUserChange::getUserId, userId).orderByDesc(TUserChange::getCreateTime).last("limit 1").one(); + public R<List<TInformation>> information(@RequestParam(required = false) Integer regionId, HttpServletRequest request) { + String token = request.getHeader("Authorization"); + TUserChange one =null; + Long userId; + if(StringUtils.isNotEmpty(token)){ + //获取当前登录人id + userId = tokenService.getLoginUser().getUserId(); + one = changeService.lambdaQuery().eq(TUserChange::getUserId, userId).orderByDesc(TUserChange::getCreateTime).last("limit 1").one(); + }else { + userId = -1L; + } List<TInformation> notices = new ArrayList<>(); if (one!=null){ List<TUserChangeDetail> list = changeDetailService.lambdaQuery().eq(TUserChangeDetail::getChangeId, one.getId()).list(); + List<TInformation> informations = informationService.lambdaQuery().list(); for (TUserChangeDetail tUserChangeDetail : list) { - List<TInformation> list1 = informationService.lambdaQuery().eq(TInformation::getRegionId,tUserChangeDetail.getRegionId()).eq(TInformation::getMajorId, tUserChangeDetail.getMajorId()).eq(TInformation::getLevel, tUserChangeDetail.getLevelId()).list(); - notices.addAll(list1); + List<TInformation> informationsList = informations.stream().filter(e -> + e.getRegionId().equals(tUserChangeDetail.getRegionId()) + && e.getMajorId().equals(tUserChangeDetail.getMajorId()) + && e.getLevel().equals(tUserChangeDetail.getLevelId()) + ).collect(Collectors.toList()); +// List<TInformation> informationsList = informationService.lambdaQuery() +// .eq(TInformation::getRegionId,tUserChangeDetail.getRegionId()) +// .eq(TInformation::getMajorId, tUserChangeDetail.getMajorId()) +// .eq(TInformation::getLevel, tUserChangeDetail.getLevelId()).list(); + notices.addAll(informationsList); } notices.sort(Comparator.comparing(TInformation::getCreateTime).reversed()); - } + }else { // 创建 LambdaQueryWrapper 并设置查询条件 - List<TInformation> list1 = informationService.lambdaQuery().last("ORDER BY RAND() LIMIT 16").list(); + TRegion region = regionService.getById(regionId); + List<TRegion> regions = regionService.list(Wrappers.lambdaQuery(TRegion.class) + .eq(TRegion::getProvinceName, region.getProvinceName())); + List<Integer> regionIds = regions.stream().map(TRegion::getId).collect(Collectors.toList()); + List<TInformation> list1 = informationService.lambdaQuery() + .in(TInformation::getRegionId,regionIds).list(); notices.addAll(list1); + notices.sort(Comparator.comparing(TInformation::getCreateTime).reversed()); + } + // 创建 LambdaQueryWrapper 并设置查询条件 +// List<TInformation> list1 = informationService.lambdaQuery().last("ORDER BY RAND() LIMIT 16").list(); +// notices.addAll(list1); if (notices.size() > 16) { // 只保留前 16 条记录 @@ -340,24 +376,44 @@ @ApiOperation(value = "推荐课程",tags = {"web-首页"}) @PostMapping(value = "/course/list") - public R<List<TCourse>> course() { - //获取当前登录人id - Long userId = tokenService.getLoginUser().getUserId(); - TUserChange one = changeService.lambdaQuery().eq(TUserChange::getUserId, userId).orderByDesc(TUserChange::getCreateTime).last("limit 1").one(); + public R<List<TCourse>> course(@RequestParam(required = false) Integer regionId, HttpServletRequest request) { + String token = request.getHeader("Authorization"); + TUserChange one =null; + Long userId; + if(StringUtils.isNotEmpty(token)){ + //获取当前登录人id + //获取当前登录人id + userId = tokenService.getLoginUser().getUserId(); + one = changeService.lambdaQuery().eq(TUserChange::getUserId, userId).orderByDesc(TUserChange::getCreateTime).last("limit 1").one(); + }else { + userId = -1L; + } List<TCourse> notices = new ArrayList<>(); if (one!=null){ List<TUserChangeDetail> list = changeDetailService.lambdaQuery().eq(TUserChangeDetail::getChangeId, one.getId()).list(); + List<TCourse> courses = courseService.lambdaQuery().list(); for (TUserChangeDetail tUserChangeDetail : list) { - List<TCourse> list1 = courseService.lambdaQuery().eq(TCourse::getRegionId,tUserChangeDetail.getRegionId()).eq(TCourse::getMajorId, tUserChangeDetail.getMajorId()).eq(TCourse::getLevel, tUserChangeDetail.getLevelId()).list(); - notices.addAll(list1); + List<TCourse> coursesList = courses.stream().filter(e -> + e.getRegionId().equals(tUserChangeDetail.getRegionId()) + && e.getMajorId().equals(tUserChangeDetail.getMajorId()) + && e.getLevel().equals(tUserChangeDetail.getLevelId()) + ).collect(Collectors.toList()); + + notices.addAll(coursesList); } notices.sort(Comparator.comparing(TCourse::getCreateTime).reversed()); }else { // 创建 LambdaQueryWrapper 并设置查询条件 - + TRegion region = regionService.getById(regionId); + List<TRegion> regions = regionService.list(Wrappers.lambdaQuery(TRegion.class) + .eq(TRegion::getProvinceName, region.getProvinceName())); + List<Integer> regionIds = regions.stream().map(TRegion::getId).collect(Collectors.toList()); + List<TCourse> list1 = courseService.lambdaQuery().in(TCourse::getRegionId,regionIds).list(); + notices.addAll(list1); + notices.sort(Comparator.comparing(TCourse::getCreateTime).reversed()); } - List<TCourse> list1 = courseService.lambdaQuery().last("ORDER BY RAND() LIMIT 16").list(); - notices.addAll(list1); +// List<TCourse> list1 = courseService.lambdaQuery().last("ORDER BY RAND() LIMIT 16").list(); +// notices.addAll(list1); if (notices.size() > 16) { // 只保留前 16 条记录 notices = new ArrayList<>(notices.subList(0, 16)); -- Gitblit v1.7.1