From 86e0beb515365c938348ec09290dfe4765e2b3ae Mon Sep 17 00:00:00 2001 From: xuhy <3313886187@qq.com> Date: 星期五, 13 十二月 2024 23:18:41 +0800 Subject: [PATCH] 修改 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TIndexMenuController.java | 199 ++++++++++++++++++++++++++++++++++++------------- 1 files changed, 145 insertions(+), 54 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 10a5ee5..888218f 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,8 +19,11 @@ 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.*; +import java.util.stream.Collectors; /** * <p> @@ -80,19 +83,16 @@ public R getByProvinceName() { List<TRegion> list1 = regionService.lambdaQuery().groupBy(TRegion::getProvinceName).list(); for (TRegion tRegion : list1) { - - - List<TRegion> list = regionService.lambdaQuery().eq(TRegion::getProvinceName, tRegion.getProvinceName()).list(); - List<Integer> regionIds = new ArrayList<>(); - list.forEach(region -> regionIds.add(region.getId())); - if (!regionIds.isEmpty()) { - Long count = consultationService.lambdaQuery().in(TConsultation::getRegionId, regionIds).count(); - - - tRegion.setCount(count); - }else { - tRegion.setCount(0L); - } + List<TRegion> list = regionService.lambdaQuery().eq(TRegion::getProvinceName, tRegion.getProvinceName()).list(); + List<Integer> regionIds = new ArrayList<>(); + list.forEach(region -> regionIds.add(region.getId())); + if (!regionIds.isEmpty()) { + Long count = consultationService.lambdaQuery().in(TConsultation::getRegionId, regionIds) + .in(TConsultation::getClassificationId,Arrays.asList(1,2,3)).count(); + tRegion.setCount(count); + }else { + tRegion.setCount(0L); + } } return R.ok(list1); @@ -128,27 +128,75 @@ @ApiOperation(value = "定制推荐-2政策3公示",tags = {"web-首页"}) @PostMapping(value = "/consultation/list") - public R<List<TConsultation>> consultationlist(@RequestParam Integer type) { - //获取当前登录人id - Long userId = tokenService.getLoginUser().getUserId(); - TUserChange one = changeService.lambdaQuery().eq(TUserChange::getUserId, userId).orderByDesc(TUserChange::getCreateTime).last("limit 1").one(); - List<TConsultation> notices = new ArrayList<>(); - 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()).list(); - notices.addAll(list1); - } - notices.sort(Comparator.comparing(TConsultation::getCreateTime).reversed()); - }else { - // 创建 LambdaQueryWrapper 并设置查询条件 - + public R<List<TConsultation>> consultationlist(@RequestParam Integer type, @RequestParam(required = false) Integer regionId, HttpServletRequest request) { + String token = request.getHeader("Authorization"); + TUserChange one =null; + if(StringUtils.isNotEmpty(token)){ + //获取当前登录人id + Long userId = tokenService.getLoginUser().getUserId(); + one = changeService.lambdaQuery().eq(TUserChange::getUserId, userId).orderByDesc(TUserChange::getCreateTime).last("limit 1").one(); } - List<TConsultation> list1 = consultationService.lambdaQuery().eq(TConsultation::getClassificationId,type).last("ORDER BY RAND() LIMIT 16").list(); - notices.addAll(list1); - if (notices.size() > 16) { - // 只保留前 16 条记录 - notices = new ArrayList<>(notices.subList(0, 16)); + 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()) + .orderByDesc(TConsultation::getClassificationSort,TConsultation::getCreateTime).list(); + notices.addAll(list1); + } + notices.sort(Comparator.comparing(TConsultation::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<TConsultation> list1 = consultationService.lambdaQuery().eq(TConsultation::getClassificationId,type) + .in(TConsultation::getRegionId,regionIds) + .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() > 2) { + // 只保留前 16 条记录 + notices = new ArrayList<>(notices.subList(0, 2)); + } + }else { + 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()).list(); + notices.addAll(list1); + } + notices.sort(Comparator.comparing(TConsultation::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<TConsultation> list1 = consultationService.lambdaQuery().eq(TConsultation::getClassificationId,type) + .in(TConsultation::getRegionId,regionIds) + .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).last("ORDER BY RAND() LIMIT 16").list(); +// notices.addAll(list1); + if (notices.size() > 2) { + // 只保留前 16 条记录 + notices = new ArrayList<>(notices.subList(0, 2)); + } } return R.ok(notices); } @@ -185,13 +233,21 @@ @PostMapping(value = "/allert") public R allert() { Long userId = tokenService.getLoginUser().getUserId(); - Object cacheObject = redisCache.getCacheObject("ALLERT:"+userId); - - if (cacheObject!=null){ - return R.ok(cacheObject); + TAppUser byId = appUserService.getById(userId); + Long cacheObject = redisCache.getCacheObject("ALLERT:"+userId); + if (cacheObject!=null && byId.getIsSetPreference() == 1){ + return R.ok(cacheObject == 1); }else { return R.ok(false); } + } + + @ApiOperation(value = "取消顶部提示",tags = {"web-取消顶部提示"}) + @PostMapping(value = "/cancelAllert") + public R cancelAllert() { + Long userId = tokenService.getLoginUser().getUserId(); + redisCache.deleteObject("ALLERT:"+userId); + return R.ok(); } @@ -204,7 +260,7 @@ Long payCount = courseCount -courseFreeCount; Long recordsCount = generatedRecordsService.lambdaQuery().count(); Long infoCount = informationService.lambdaQuery().count(); - Long infoFreeCount = informationService.lambdaQuery().count(); + Long infoFreeCount = informationService.lambdaQuery().eq(TInformation::getInformationPrice,new BigDecimal(0)).count(); Long infoPayCount = infoCount-infoFreeCount; ManageCountDto manageCountDto = new ManageCountDto(); manageCountDto.setUserCount(userCount); @@ -214,6 +270,7 @@ manageCountDto.setRecordsCount(recordsCount); manageCountDto.setInfoFreeCount(infoFreeCount); manageCountDto.setInfoPayCount(infoPayCount); + manageCountDto.setInfoCount(infoCount); return R.ok(manageCountDto); } @@ -246,9 +303,7 @@ @ApiOperation(value = "订单统计1",tags = {"后台-统计"}) @PostMapping(value = "/order/count1") public R<List<Map<String,String>>> ordercount1(@RequestBody OrderCountQuery orderCountQuery) { - List<Map<String,String>> map = new ArrayList<>(); - map = indexMenuService.count1(orderCountQuery.getStartDate(),orderCountQuery.getEndDate(),orderCountQuery.getPaymentStatus(),orderCountQuery.getDayType()); - + List<Map<String,String>> map = indexMenuService.count1(orderCountQuery.getStartDate(),orderCountQuery.getEndDate(),orderCountQuery.getPaymentStatus(),orderCountQuery.getDayType()); return R.ok(map); } @@ -256,10 +311,17 @@ @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(); @@ -268,14 +330,29 @@ notices.addAll(list1); } 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 条记录 notices = new ArrayList<>(notices.subList(0, 16)); + } + notices = notices.stream().distinct().collect(Collectors.toList()); + Set<Long> cacheSet = redisCache.getCacheSet("INFORMATION:" + userId); + for (TInformation notice : notices) { + notice.setIsCollect(cacheSet.contains(notice.getId())?1:0); } return R.ok(notices); } @@ -283,10 +360,18 @@ @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(); @@ -297,10 +382,16 @@ 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