xuhy
2025-01-03 b6373daa40c3dc17ca107f3666fd252f3b6b0778
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));