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

行业网站策划帝国cms小说网站模板下载

行业网站策划,帝国cms小说网站模板下载,wordpress 提高速度,网站开发是先做前段还是后台结构性模式-外观模式 门面模式 适用场景:如果你需要一个指向复杂子系统的直接接口, 且该接口的功能有限, 则可以使用外观模式。 不用关心后面的查询具体操作 /*** 聚合查询接口*/ 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.15wanjia.com/news/179208.html

相关文章:

  • 网站上面的小图标怎么做的旅游景区规划设计公司
  • 个人网站模板王wordpress编辑器哪个好用吗
  • devexpress做网站四大门户网站的区别
  • 汶上网站建设公司ip38域名信息查询网站
  • 梧州网站建设厂家深圳装修公司上市的有哪几家
  • 网站后台英文哈尔滨模版网站建设
  • 免费发广告的网站大全网站空间大小 论坛
  • 上海网站建设网站制云南省工程建设造价协会网站
  • 长沙微网站建设公司wordpress 字体
  • 网站广告弹窗代码科技作品
  • 网站搜索引擎优化wordpress 当前栏目id
  • 怎样装修公司网站重庆网站建设哪家有
  • wordpress 插件库亚马逊seo是什么意思
  • 网站开发逻辑图怎么看别人网站是哪里做的
  • 网站设计制作需要多少钱洛阳网络推广
  • 中小型网站建设资讯集团有限公司成立条件
  • 网站在线开放端口wordpress 极简模板
  • 网页设计与网站建设的理解有赞商城商家版
  • 长沙 网站开发报价如何做网站广告图片
  • 对网站的赏析郑州建设工程招标信息网
  • 百度云建网站昭通网站seo优化
  • 云南网站建设公司排行做网站怎么去找客户
  • 广州金将令做网站怎么样wordpress 外贸 模板
  • 零基础网站开发设计搜索引擎优化的基本方法
  • 网站首眉怎么做陕西住房建设部网站
  • 局域网内个人网站建设购物网站开发需求文档
  • 手机网站怎么制作内容网络销售渠道
  • 做直播网站用什么语言网站企划设计公司
  • 网站设计怎么做明信片作文网app
  • 网站建设的好处论文如何做网站运营呢