当前位置: 首页 > news >正文

盘锦公司做网站网站收录下降

盘锦公司做网站,网站收录下降,在线图片编辑制作,西安知名网络推广公司结构性模式-外观模式 门面模式 适用场景:如果你需要一个指向复杂子系统的直接接口, 且该接口的功能有限, 则可以使用外观模式。 不用关心后面的查询具体操作 /*** 聚合查询接口*/ RestController RequestMapping("/search") Slf…

结构性模式-外观模式

门面模式

适用场景:如果你需要一个指向复杂子系统的直接接口, 且该接口的功能有限, 则可以使用外观模式。

image-20241129210823339

不用关心后面的查询具体操作

/*** 聚合查询接口*/
@RestController
@RequestMapping("/search")
@Slf4j
public class SearchController {@Resourceprivate SearchFacade searchFacade;@PostMapping("/all")public BaseResponse<SearchVo> searchAll(@RequestBody SearchQueryRequest searchQueryRequest, HttpServletRequest httpServletRequest) {SearchVo searchVo = searchFacade.searchAll(searchQueryRequest, httpServletRequest);return ResultUtils.success(searchVo);}
}

复杂查询逻辑放在SearchFacade里面

package com.xiaofei.site.search.controller;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xiaofei.site.search.common.BaseResponse;
import com.xiaofei.site.search.common.ResultUtils;
import com.xiaofei.site.search.model.dto.image.ImageQueryRequest;
import com.xiaofei.site.search.model.dto.post.PostQueryRequest;
import com.xiaofei.site.search.model.dto.search.SearchQueryRequest;
import com.xiaofei.site.search.model.dto.user.UserQueryRequest;
import com.xiaofei.site.search.model.entity.Image;
import com.xiaofei.site.search.model.enums.SearchTypeEnum;
import com.xiaofei.site.search.model.vo.PostVO;
import com.xiaofei.site.search.model.vo.SearchVo;
import com.xiaofei.site.search.model.vo.UserVO;
import com.xiaofei.site.search.service.ImageService;
import com.xiaofei.site.search.service.PostService;
import com.xiaofei.site.search.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody;import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;/*** @author tuaofei* @description 查询-门面模式* @date 2024/11/29*/
@Component
@Slf4j
public class SearchFacade {@Resourceprivate PostService postService;@Resourceprivate UserService userService;@Resourceprivate ImageService imageService;@ResourceThreadPoolTaskExecutor threadPoolTaskExecutor;public SearchVo searchAll(@RequestBody SearchQueryRequest searchQueryRequest, HttpServletRequest httpServletRequest) {SearchVo searchVo = new SearchVo();if (searchQueryRequest == null) {return searchVo;}String searchText = searchQueryRequest.getSearchText();String searchType = searchQueryRequest.getSearchType();if (StringUtils.isBlank(searchType)) {CompletableFuture<Page<PostVO>> postTask = CompletableFuture.supplyAsync(() -> {PostQueryRequest postQueryRequest = new PostQueryRequest();postQueryRequest.setSearchText(searchText);Page<PostVO> postVOPage = postService.listPostVoPage(postQueryRequest, httpServletRequest);return postVOPage;}, threadPoolTaskExecutor);CompletableFuture<Page<UserVO>> userTask = CompletableFuture.supplyAsync(() -> {UserQueryRequest userQueryRequest = new UserQueryRequest();userQueryRequest.setUserName(searchText);Page<UserVO> userVOPage = userService.listUserVoPage(userQueryRequest);return userVOPage;}, threadPoolTaskExecutor);CompletableFuture<Page<Image>> imageTask = CompletableFuture.supplyAsync(() -> {ImageQueryRequest imageQueryRequest = new ImageQueryRequest();imageQueryRequest.setSearchText(searchText);Page<Image> imagePage = imageService.getImageByPage(imageQueryRequest);return imagePage;}, threadPoolTaskExecutor);CompletableFuture.allOf(postTask, userTask, imageTask);try {Page<PostVO> postVOPage = postTask.get();searchVo.setPostList(postVOPage.getRecords());Page<UserVO> userVOPage = userTask.get();searchVo.setUserList(userVOPage.getRecords());Page<Image> imagePage = imageTask.get();searchVo.setImageList(imagePage.getRecords());} catch (InterruptedException | ExecutionException e) {e.printStackTrace();}} else {SearchTypeEnum searchTypeEnum = SearchTypeEnum.getEnumByValue(searchType);switch (searchTypeEnum) {case POST:PostQueryRequest postQueryRequest = new PostQueryRequest();postQueryRequest.setSearchText(searchText);Page<PostVO> postVOPage = postService.listPostVoPage(postQueryRequest, httpServletRequest);searchVo.setPostList(postVOPage.getRecords());break;case USER:UserQueryRequest userQueryRequest = new UserQueryRequest();userQueryRequest.setUserName(searchText);Page<UserVO> userVOPage = userService.listUserVoPage(userQueryRequest);searchVo.setUserList(userVOPage.getRecords());break;case IMAGE:ImageQueryRequest imageQueryRequest = new ImageQueryRequest();imageQueryRequest.setSearchText(searchText);Page<Image> imagePage = imageService.getImageByPage(imageQueryRequest);searchVo.setImageList(imagePage.getRecords());break;default:break;}}return searchVo;}
}
http://www.yayakq.cn/news/987256/

相关文章:

  • 网站关键词优化系统vue做网站前端
  • 怎样做网站代理百度seo培训公司
  • 建材团购网站建设方案绿化信息网站建设
  • 百度云 做视频网站企业h5网站建设
  • 福州seo网站推广网站建设找哪家公司
  • 旅游网站功能厦门网站建设多少钱
  • 哪个网站可以做免费宣传wordpress 中的函数
  • 网站访问量很大怎么办互联网备案服务平台
  • 网站建设与管理总结网站设计风格及色彩搭配技巧 -
  • 深圳建网站兴田德润实惠福永网站优化
  • 做网站注意哪些方面软文推广做得比较好的推广平台
  • 个人网站怎么做微信支付xml做网站源码
  • php开源企业网站系统wordpress二次元主体
  • 常州网站建设外包短故事网站模板
  • 网站建设的完整流程包括哪些单位邮箱一般用什么邮箱
  • 重庆网站建设重庆wordpress缺少style
  • 建站工具有哪些怎么做网站设计
  • 快速搭建网站后天台推广营销平台排名
  • 外贸网站建设的意义房产网贷平台
  • 做网站外国的服务器搜集关键词的网站
  • 2018做网站 工具深圳一元购网站建设
  • 江苏营销型网站公司wordpress simplicity
  • 东莞建设网站培训模板网站代码
  • 如何免费自己建网站浏览器网址
  • 网站都能做响应式苏州建站推广定制
  • 深圳建站工作室设计官网需要的流程
  • 做网站做软件怎么赚钱河北定制网站建设调试
  • 山东平台网站建设企业网站使用授权书
  • 有网站建设的虚拟主机管理系统wordpress4.9教程pdf
  • 东莞网站建设模具南宁网