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/TConsultationController.java | 137 +++++++++++++++++++++++++++++++++++---------- 1 files changed, 105 insertions(+), 32 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TConsultationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TConsultationController.java index dcaf558..21b28ea 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TConsultationController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TConsultationController.java @@ -15,14 +15,17 @@ import com.ruoyi.web.controller.query.ConsultationQuery; import com.ruoyi.web.controller.query.InformationQuery; import io.swagger.annotations.ApiOperation; +import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; /** * <p> @@ -74,7 +77,6 @@ appUserQuery.setRegionId1(Long.valueOf(information.getRegionId())); appUserQuery.setLevelId1(information.getLevel()); - List<Long> newIds = appUserService.getNewIds(appUserQuery); for (Long newId : newIds) { redisCache.setCacheObject("ALLERT:"+newId,information.getClassificationId()); @@ -117,27 +119,96 @@ public R<Page<TConsultation>> list(@RequestBody ConsultationQuery informationQuery) { Long userId = tokenService.getLoginUser().getUserId(); - Page<TConsultation> page = informationService.lambdaQuery() - .like(!StringUtils.isEmpty(informationQuery.getClassificationName()), TConsultation::getClassificationName, informationQuery.getClassificationName()) - .eq(informationQuery.getRegionId() != null, TConsultation::getRegionId, informationQuery.getRegionId()) - .eq(informationQuery.getTechnicalId() != null, TConsultation::getTitleId, informationQuery.getTechnicalId()) - .eq(informationQuery.getClassificationId() != null, TConsultation::getClassificationId, informationQuery.getClassificationId()) - .eq(informationQuery.getMajorId() != null, TConsultation::getMajorId, informationQuery.getMajorId()) - .eq(informationQuery.getLevel() != null, TConsultation::getLevel, informationQuery.getLevel()) - .orderByDesc(TConsultation::getClassificationSort) - .orderByDesc(TConsultation::getPubTime) - .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize())); + Page<TConsultation> page; + if(StringUtils.isEmpty(informationQuery.getProvinceName())){ + if(informationQuery.getSortType()==1){ + page = informationService.lambdaQuery() + .like(!StringUtils.isEmpty(informationQuery.getClassificationName()), TConsultation::getClassificationName, informationQuery.getClassificationName()) + .eq(informationQuery.getRegionId() != null, TConsultation::getRegionId, informationQuery.getRegionId()) + .eq(informationQuery.getTechnicalId() != null, TConsultation::getTitleId, informationQuery.getTechnicalId()) + .eq(informationQuery.getClassificationId() != null, TConsultation::getClassificationId, informationQuery.getClassificationId()) + .eq(informationQuery.getMajorId() != null, TConsultation::getMajorId, informationQuery.getMajorId()) + .eq(informationQuery.getLevel() != null, TConsultation::getLevel, informationQuery.getLevel()) + .orderByDesc(TConsultation::getCreateTime) + .orderByDesc(TConsultation::getPubTime) + .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize())); + }else { + page = informationService.lambdaQuery() + .like(!StringUtils.isEmpty(informationQuery.getClassificationName()), TConsultation::getClassificationName, informationQuery.getClassificationName()) + .eq(informationQuery.getRegionId() != null, TConsultation::getRegionId, informationQuery.getRegionId()) + .eq(informationQuery.getTechnicalId() != null, TConsultation::getTitleId, informationQuery.getTechnicalId()) + .eq(informationQuery.getClassificationId() != null, TConsultation::getClassificationId, informationQuery.getClassificationId()) + .eq(informationQuery.getMajorId() != null, TConsultation::getMajorId, informationQuery.getMajorId()) + .eq(informationQuery.getLevel() != null, TConsultation::getLevel, informationQuery.getLevel()) + .orderByDesc(TConsultation::getClassificationSort) + .orderByDesc(TConsultation::getPubTime) + .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize())); + } + }else { + List<TRegion> list; + // 查询省份下的市 + if(informationQuery.getProvinceName().equals("直辖市")){ + List<String> cityList = new ArrayList<>(); + cityList.add("北京市"); + cityList.add("天津市"); + cityList.add("重庆市"); + cityList.add("上海市"); + list = regionService.lambdaQuery().in(TRegion::getProvinceName, cityList).list(); + }else { + list = regionService.lambdaQuery().eq(TRegion::getProvinceName, informationQuery.getProvinceName()).list(); + } + List<Integer> ids = list.stream().map(TRegion::getId).collect(Collectors.toList()); + if(informationQuery.getSortType()==1){ + page = informationService.lambdaQuery() + .like(!StringUtils.isEmpty(informationQuery.getClassificationName()), TConsultation::getClassificationName, informationQuery.getClassificationName()) + .in( TConsultation::getRegionId, ids) + .eq(informationQuery.getTechnicalId() != null, TConsultation::getTitleId, informationQuery.getTechnicalId()) + .eq(informationQuery.getClassificationId() != null, TConsultation::getClassificationId, informationQuery.getClassificationId()) + .eq(informationQuery.getMajorId() != null, TConsultation::getMajorId, informationQuery.getMajorId()) + .eq(informationQuery.getLevel() != null, TConsultation::getLevel, informationQuery.getLevel()) + .orderByDesc(TConsultation::getCreateTime) + .orderByDesc(TConsultation::getPubTime) + .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize())); + }else { + page = informationService.lambdaQuery() + .like(!StringUtils.isEmpty(informationQuery.getClassificationName()), TConsultation::getClassificationName, informationQuery.getClassificationName()) + .in( TConsultation::getRegionId, ids) + .eq(informationQuery.getTechnicalId() != null, TConsultation::getTitleId, informationQuery.getTechnicalId()) + .eq(informationQuery.getClassificationId() != null, TConsultation::getClassificationId, informationQuery.getClassificationId()) + .eq(informationQuery.getMajorId() != null, TConsultation::getMajorId, informationQuery.getMajorId()) + .eq(informationQuery.getLevel() != null, TConsultation::getLevel, informationQuery.getLevel()) + .orderByDesc(TConsultation::getClassificationSort) + .orderByDesc(TConsultation::getPubTime) + .page(Page.of(informationQuery.getPageNum(), informationQuery.getPageSize())); + } + } + List<TConsultation> records = page.getRecords(); + if(CollectionUtils.isEmpty(records)){ + return R.ok(new Page<>()); + } Set<Long> cacheSet = redisCache.getCacheSet("Consultation:" + userId); - for (TConsultation record : page.getRecords()) { - TRegion byId = regionService.getById(record.getRegionId()); - record.setRegionName(byId.getProvinceName()+"-"+byId.getName()); - TTechnicalTitle byId1 = tTechnicalTitleService.getById(record.getTitleId()); - TTitleMajor byId2 = majorService.getById(record.getMajorId()); - record.setTechnicalName(byId1.getTitileName()+"-"+byId2.getMajorName()); - TConsultationClassification byId3 = consultationClassificationService.getById(record.getClassificationId()); - record.setTConsultationClassificationName(byId3.getConsultationName()); + List<Integer> regionIds = records.stream().map(TConsultation::getRegionId).collect(Collectors.toList()); + List<TRegion> regions = regionService.lambdaQuery().in(TRegion::getId, regionIds).list(); + + List<Long> technicalIds = records.stream().map(TConsultation::getTitleId).collect(Collectors.toList()); + List<TTechnicalTitle> tTechnicalTitles = tTechnicalTitleService.lambdaQuery().in(TTechnicalTitle::getId, technicalIds).list(); + + List<Long> majorIds = records.stream().map(TConsultation::getMajorId).collect(Collectors.toList()); + List<TTitleMajor> tTitleMajors = majorService.lambdaQuery().in(TTitleMajor::getId, majorIds).list(); + + List<Long> classificationIds = records.stream().map(TConsultation::getClassificationId).collect(Collectors.toList()); + List<TConsultationClassification> consultationClassifications = consultationClassificationService.lambdaQuery().in(TConsultationClassification::getId, classificationIds).list(); + + for (TConsultation record : records) { + TRegion region = regions.stream().filter(e -> e.getId().equals(record.getRegionId())).findFirst().orElse(null); + TTechnicalTitle tTechnicalTitle = tTechnicalTitles.stream().filter(e -> e.getId().equals(record.getTitleId())).findFirst().orElse(null); + TTitleMajor tTitleMajor = tTitleMajors.stream().filter(e -> e.getId().equals(record.getMajorId())).findFirst().orElse(null); + record.setRegionName(region.getProvinceName()+"-"+region.getName()); + record.setTechnicalName(tTechnicalTitle.getTitileName()+"-"+tTitleMajor.getMajorName()); + TConsultationClassification tConsultationClassification = consultationClassifications.stream().filter(e -> e.getId().equals(record.getClassificationId())).findFirst().orElse(null); + record.setTConsultationClassificationName(tConsultationClassification.getConsultationName()); if (cacheSet!=null){ if (cacheSet.contains(record.getId())){ record.setIsCollect(1); @@ -156,25 +227,27 @@ @ApiOperation(value = "详情",tags = {"后台-咨询管理-咨询列表","web-咨询查询"}) @PostMapping(value = "/detail") public R<TConsultation> detail(@RequestParam Long id ) { - TConsultation byId = informationService.getById(id); - TTechnicalTitle byId1 = tTechnicalTitleService.getById(byId.getTitleId()); - byId.setTechnicalName(byId1.getTitileName()); - TTitleMajor byId2 = majorService.getById(byId.getMajorId()); - byId.setMajorName(byId2.getMajorName()); - TLevel byId3 = levelService.getById(byId.getLevel()); - byId.setLevelName(byId3.getName()); - TRegion byId4 = regionService.getById(byId.getRegionId()); - byId.setTRegion(byId4); - return R.ok(byId); + TConsultation consultation = informationService.getById(id); + consultation.setWatchNum(consultation.getWatchNum()+1); + informationService.updateById(consultation); + TTechnicalTitle tTechnicalTitle = tTechnicalTitleService.getById(consultation.getTitleId()); + consultation.setTechnicalName(tTechnicalTitle.getTitileName()); + TTitleMajor tTitleMajor = majorService.getById(consultation.getMajorId()); + consultation.setMajorName(tTitleMajor.getMajorName()); + TLevel level = levelService.getById(consultation.getLevel()); + consultation.setLevelName(level.getName()); + TRegion region = regionService.getById(consultation.getRegionId()); + consultation.setTRegion(region); + return R.ok(consultation); } @ApiOperation(value = "观看",tags = {"web-咨询查询"}) @PostMapping(value = "/watch") public R watch(@RequestParam Long id ) { - TConsultation byId = informationService.getById(id); - byId.setWatchNum(byId.getWatchNum()+1); - informationService.updateById(byId); + TConsultation consultation = informationService.getById(id); + consultation.setWatchNum(consultation.getWatchNum()+1); + informationService.updateById(consultation); return R.ok(); } -- Gitblit v1.7.1