Преглед на файлове

添加一个全局搜索功能

wuweihao преди 4 месеца
родител
ревизия
734ba1440b

+ 3 - 0
README.md

@@ -9,4 +9,7 @@
 # 部署-sit
    service: D:\java\army_chongqing_college_8005   win service2008
    doc:http://192.168.0.245:8005/doc.html
+   
+# dev
+127.0.0.1:8006/doc.html  
             

+ 1 - 1
gis_application/src/main/resources/application.properties

@@ -1,4 +1,4 @@
-server.port=8005
+server.port=8006
 
 spring.profiles.active=dev
 

+ 41 - 0
gis_cms/src/main/java/com/gis/cms/controller/WebController.java

@@ -1,10 +1,18 @@
 package com.gis.cms.controller;
 
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gis.admin.entity.po.SysUserEntity;
 import com.gis.cms.entity.dto.*;
 import com.gis.cms.entity.po.GoodsEntity;
 import com.gis.cms.entity.po.VideoEntity;
+import com.gis.cms.entity.vo.SearchVo;
+import com.gis.cms.mapper.ImgMapper;
 import com.gis.cms.service.*;
 import com.gis.common.base.aop.WebControllerLog;
+import com.gis.common.base.entity.dto.PageDto;
+import com.gis.common.base.service.impl.IBaseService;
+import com.gis.common.util.RegexUtil;
 import com.gis.common.util.Result;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -57,6 +65,13 @@ public class WebController {
     @Autowired
     CommentService commentService;
 
+    @Autowired
+    ImgMapper imgMapper;
+
+    @Autowired
+    IBaseService iBaseService;
+
+
 
 
 
@@ -67,6 +82,32 @@ public class WebController {
 //        return webService.clearCache();
 //    }
 
+
+    @ApiOperation(value = "全局搜索-分页")
+    @PostMapping("/search")
+    public Result search(@RequestBody PageDto param) {
+        // 学校宣传片、美丽校园、军歌嘹亮、学籍查询
+        StringBuilder builder = new StringBuilder();
+        String searchKey = param.getSearchKey();
+        if (StrUtil.isBlank(searchKey)){
+            return Result.success();
+        }
+        searchKey = RegexUtil.sqlReplaceSpecialStr(searchKey);
+        builder.append(StrUtil.format("SELECT id, name, thumb, 'img' as type, null as file_path from tb_img WHERE is_delete=0 and display=1 and name like '%{}%'", searchKey));
+        builder.append(" UNION ALL ");
+        builder.append(StrUtil.format("SELECT id, name, thumb,  'video' as type, file_path from tb_video WHERE is_delete=0 and display=1 and name like '%{}%'", searchKey));
+        builder.append(" UNION ALL ");
+        builder.append(StrUtil.format("SELECT id, name, thumb, 'student' as type, null as file_path from tb_student WHERE is_delete=0 and display=1 and name like '%{}%'", searchKey));
+        builder.append(" UNION ALL ");
+        builder.append(StrUtil.format("SELECT id, name, thumb, 'music' as type, file_path from tb_music WHERE is_delete=0 and display=1 and name like '%{}%'", searchKey));
+
+        Page<SearchVo> res = imgMapper.webSearch(builder.toString(), iBaseService.initPage(param));
+
+
+        return Result.success(res);
+    }
+
+
     @ApiOperation(value = "文物列表")
     @PostMapping("goodList")
     public Result goodList(@Valid @RequestBody GoodsPageDto param) {

+ 37 - 0
gis_cms/src/main/java/com/gis/cms/entity/vo/SearchVo.java

@@ -0,0 +1,37 @@
+package com.gis.cms.entity.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 园区(整体)概况
+ */
+@Data
+public class SearchVo {
+
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "类型")
+    private String type;
+
+    @ApiModelProperty(value = "缩略图")
+    private String thumb ;
+
+    @ApiModelProperty(value = "文件地址")
+    private String filePath;
+
+
+
+
+
+
+
+
+
+}

+ 6 - 0
gis_cms/src/main/java/com/gis/cms/mapper/ImgMapper.java

@@ -3,11 +3,14 @@ package com.gis.cms.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gis.cms.entity.dto.SortPageDto;
 import com.gis.cms.entity.po.ImgEntity;
 import com.gis.cms.entity.po.VideoEntity;
+import com.gis.cms.entity.vo.SearchVo;
 import com.gis.cms.mapper.provider.ImgProvider;
 import com.gis.cms.mapper.provider.VideoProvider;
+import com.gis.common.base.mapper.provider.BaseProvider;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.SelectProvider;
 import org.apache.ibatis.annotations.Update;
@@ -29,4 +32,7 @@ public interface ImgMapper extends BaseMapper<ImgEntity> {
 
     @Update("update tb_img set visit = visit+1 , update_time = NOW() where is_delete=0 and id = #{id} ")
     void setVisit(Long id);
+
+    @SelectProvider(type = BaseProvider.class, method = "runSql")
+    Page<SearchVo> webSearch(String sqlStr, Page initPage);
 }

+ 19 - 0
gis_common/src/main/java/com/gis/common/base/mapper/provider/BaseProvider.java

@@ -0,0 +1,19 @@
+package com.gis.common.base.mapper.provider;
+
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * Created by owen on 2022/2/9.
+ */
+@Slf4j
+public class BaseProvider {
+
+    public String runSql(String sqlStr){
+        log.info("sqlStr: {}", sqlStr);
+        return sqlStr;
+    }
+
+
+
+}

+ 22 - 1
gis_common/src/main/java/com/gis/common/base/service/impl/IBaseService.java

@@ -1,5 +1,7 @@
 package com.gis.common.base.service.impl;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gis.common.base.entity.dto.PageDto;
 import com.gis.common.util.JwtUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -10,7 +12,7 @@ import javax.servlet.http.HttpServletRequest;
  * Created by owen on 2021/12/29 0029 14:12
  */
 @Component
-public class IBaseService {
+public class IBaseService<T> {
 
     @Autowired
     HttpServletRequest request;
@@ -26,6 +28,25 @@ public class IBaseService {
        return JwtUtil.getUserId(getToken());
     }
 
+    private static void startPage(PageDto param){
+        Integer pageNum = param.getPageNum();
+        Integer pageSize = param.getPageSize();
+        if (pageNum == null || pageNum <= 0) {
+            param.setPageNum(0);
+        }
+        if (pageSize == null || pageSize <= 0) {
+            param.setPageSize(10);
+        }
+    }
+
+
+    /**初始化分页*/
+    public Page<T> initPage(PageDto param){
+        startPage(param);
+        Page<T> of = Page.of(param.getPageNum(), param.getPageSize());
+        return of;
+    }
+
 
 
 }