消息接口分页修改pom.xml增加了个插件 方便双表联查拼接

综合搜索和综合搜索的历史记录搜索和清除历史记录
增加了新表ocr_search_history  综合搜索历史表
pull/1/head
ljt 1 year ago
parent c6a549a046
commit 8202e5526e

@ -61,6 +61,13 @@
<artifactId>flowable-ui-modeler-logic</artifactId>
</dependency>
<!-- 分页插件pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency>
<!-- 分页插件pagehelper -->
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-rest</artifactId>

@ -8,9 +8,11 @@ import cn.jyjz.xiaoyao.oa.from.dataobject.Candidateuser;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrMsg;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrMsgRead;
import cn.jyjz.xiaoyao.ocr.service.IOcrMsgService;
import cn.jyjz.xiaoyao.ocr.util.PageRequest;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageInfo;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.PathVariable;
@ -52,32 +54,29 @@ public class OcrMsgReadController {
/**
*
* @param map
* @param map start
* @param map limit 10
* @return
*/
@ApiOperation(value = "系统消息分页", notes = "系统消息分页")
@RequestMapping(value = "/systempage", method = RequestMethod.GET)
public ResponseEntity<?> systempage(HttpServletRequest request,@RequestBody Map<String, String> map) {
@RequestMapping(value = "/systemPage", method = RequestMethod.GET)
public ResponseEntity<?> systemPage(HttpServletRequest request,
@RequestParam(value = "pageNo", required = false, defaultValue = "1") int pageNo,
@RequestParam(value = "pageSize", required = false, defaultValue = "10") int pageSize,
@RequestParam(value = "msgCategory", required = false) String msgCategory) {
IPage<OcrMsg> iPage = new Page<>(Integer.valueOf(map.get("pageNo")),Integer.valueOf(map.get("pageSize")));
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
QueryWrapper<OcrMsg> wrapper = new QueryWrapper<>();
wrapper.select("id","titile","sender","bus_json","send_time").eq("msg_category",map.get("msgCategory")).eq("send_status","1").apply("FIND_IN_SET('"+userToken.getUsername()+"',receive_user_ids) UNION ALL select id,titile,bus_json,send_time from ocr_msg where receive_user_type='2' ");
// .select("id","titile","sender","bus_json","send_time").eq("send_status","2");
// if(!StringUtils.isEmpty(map.get("productsId"))) {
// }
//执行查询方法
//条件查询
PageRequest pageQuery=new PageRequest();
pageQuery.setPageNum(pageNo);
pageQuery.setPageSize(pageSize);
IPage<OcrMsg> page = this.iocrmsgservice.page(iPage,wrapper);
PageInfo<List<Map<Object, String>>> findPage = iocrmsgservice.selectPage(pageQuery,userToken.getUserid(),msgCategory);
return new ResponseEntity<Object>(page,HttpStatus.OK);
//执行查询方法
return new ResponseEntity<Object>(findPage, HttpStatus.OK);
}
@ -94,7 +93,7 @@ public class OcrMsgReadController {
public ResponseEntity<?> msgOne(@RequestParam(value = "id", required = false)String id) {
QueryWrapper<OcrMsg> wrapper = new QueryWrapper<>();
wrapper.select("titile","msg_content","sender","msg_category","send_time");
wrapper.select("titile","msg_content as msgContent","sender","msg_category as msgCategory","send_time as sendTime");
wrapper.eq("id", id);
//执行查询方法
OcrMsg one = iocrmsgservice.getOne(wrapper);
@ -114,7 +113,7 @@ public class OcrMsgReadController {
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
QueryWrapper<OcrMsg> wrapperlist = new QueryWrapper<>();
wrapperlist.select("id").eq("msg_category",msgCategory).eq("send_status","1").apply("FIND_IN_SET('"+userToken.getUsername()+"',receive_user_ids)");
wrapperlist.select("id").eq("msg_category",msgCategory).eq("send_status","1").apply("FIND_IN_SET('"+userToken.getUserid()+"',receive_user_ids)");
QueryWrapper<OcrMsgRead> wrapperone = new QueryWrapper<>();
@ -122,9 +121,9 @@ public class OcrMsgReadController {
List<OcrMsg> list = iocrmsgservice.list(wrapperlist);
for (OcrMsg msg:list){
wrapperone.eq("msg_id", msg.getId()).eq("user_id",userToken.getUsername());
wrapperone.eq("msg_id", msg.getId()).eq("user_id",userToken.getUserid());
OcrMsgRead one = ocrMsgReadService.getOne(wrapperone);
if(null!=one) {
if(null==one) {
OcrMsgRead ocrmsgread=new OcrMsgRead();
ocrmsgread.setId(Long.valueOf(sdf.format(System.currentTimeMillis())));
ocrmsgread.setMsgId(msg.getId());
@ -135,7 +134,7 @@ public class OcrMsgReadController {
}
}
//此处需要手工处理 返回需要将修改后的数据返回
return new ResponseEntity<Object>(HttpStatus.OK);
return new ResponseEntity<Object>("true",HttpStatus.OK);
}
@ApiOperation(value = "消除未读单个", notes = "消除未读单个")
@ -157,7 +156,7 @@ public class OcrMsgReadController {
boolean save = ocrMsgReadService.save(ocrmsgread);
//此处需要手工处理 返回需要将修改后的数据返回
return new ResponseEntity<Object>(save,HttpStatus.CREATED);
return new ResponseEntity<Object>(save,HttpStatus.OK);
}
}

@ -9,8 +9,11 @@ import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil;
import cn.jyjz.xiaoyao.common.redis.cache.ICacheManager;
import cn.jyjz.xiaoyao.common.redis.cache.constants.CacheConstants;
import cn.jyjz.xiaoyao.framework.security.service.SmsLoginService;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrMsg;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrSUserT;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture;
import cn.jyjz.xiaoyao.ocr.service.OcrISUserTService;
import cn.jyjz.xiaoyao.ocr.service.OcrTaskchildPictureService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import io.swagger.annotations.ApiOperation;
@ -54,6 +57,9 @@ public class OcrSUserTController {
@Resource
ICacheManager iCacheManager;
@Autowired
OcrTaskchildPictureService ocrtaskchildpictureservice;
/**
*/
@ApiOperation(value = "重置密码", notes = "重置密码")
@ -100,7 +106,7 @@ public class OcrSUserTController {
}
@ApiOperation(value = "忘记密码", notes = "忘记密码")
@RequestMapping(value = "/selectSUser", method = RequestMethod.GET)
@RequestMapping(value = "/selectSUser", method = RequestMethod.POST)
public ResponseEntity<?> selectSUser(@RequestBody Map<String,Object> map) {
if(null!=map.get("loginname")){
@ -161,4 +167,5 @@ public class OcrSUserTController {
}
}

@ -0,0 +1,94 @@
package cn.jyjz.xiaoyao.ocr.controller;
import cn.jyjz.xiaoyao.common.base.service.UserTokenService;
import cn.jyjz.xiaoyao.common.base.util.RequestBaseUtil;
import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrMsgRead;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrSearchHistory;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest;
import cn.jyjz.xiaoyao.ocr.service.IOcrSearchHistoryService;
import java.util.List;
/**
* ocr
*
* @author
* @Date 2024-03-15 19:53:30
*/
@CrossOrigin
@RestController
@RequestMapping("/ocr/history")
public class OcrSearchHistoryController {
@Autowired
private IOcrSearchHistoryService ocrSearchHistoryService;
@Autowired
private UserTokenService userTokenService;
/**
*
* @param request
* @return
*/
@RequestMapping(value = "/searchList", method = RequestMethod.GET)
public ResponseEntity<?> searchList(HttpServletRequest request,
@RequestParam(value = "search", required = false) String search) {
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
//执行查询方法
List<String> selectsearch = ocrSearchHistoryService.selectsearch(search, userToken.getUsername());
OcrSearchHistory ocrsearchhistory =new OcrSearchHistory();
ocrsearchhistory.setHistoryname(search);
ocrsearchhistory.setUserid(Long.valueOf(userToken.getUserid()));
ocrsearchhistory.setCreatedate(System.currentTimeMillis());
ocrSearchHistoryService.save(ocrsearchhistory);
return new ResponseEntity<Object>(selectsearch, HttpStatus.OK);
}
/**
*
* @param request
* @return
*/
@RequestMapping(value = "/searchdelete", method = RequestMethod.DELETE)
public ResponseEntity<?> searchdelete(HttpServletRequest request) {
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
QueryWrapper<OcrSearchHistory> wrapper = new QueryWrapper<>();
wrapper.eq("userid",userToken.getUserid());
//根据具体情况 判断 是否需要 进行数据返回, 默认不返回数据
ocrSearchHistoryService.remove(wrapper);
return new ResponseEntity<Object>("true",HttpStatus.OK);
}
/**
*
*
* @param request
* @return
*/
@RequestMapping(value = "/historySearch", method = RequestMethod.GET)
public ResponseEntity<?> historySearch(HttpServletRequest request) {
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
QueryWrapper<OcrSearchHistory> wrapper = new QueryWrapper<>();
wrapper.select("historyname","createdate").eq("userid",userToken.getUserid()).orderByDesc("createdate").last("limit 8");
List<OcrSearchHistory> list = ocrSearchHistoryService.list(wrapper);
return new ResponseEntity<List<OcrSearchHistory>>(list, HttpStatus.OK);
}
}

@ -4,6 +4,10 @@ package cn.jyjz.xiaoyao.ocr.dataDao;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrMsg;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* <p>
@ -15,5 +19,5 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface OcrMsgMapper extends BaseMapper<OcrMsg> {
List<List<Map<Object, String>>> selectPage(@Param("userid")String userid,@Param("msgCategory")String msgCategory);
}

@ -0,0 +1,23 @@
package cn.jyjz.xiaoyao.ocr.dataDao;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrSearchHistory;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import liquibase.pro.packaged.S;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* Mapper
* </p>
*
* @author 123
* @since 2024-03-15
*/
@Mapper
public interface OcrSearchHistoryMapper extends BaseMapper<OcrSearchHistory> {
List<String> selectsearch(@Param("search")String search,@Param("assignee") String assignee);
}

@ -0,0 +1,90 @@
package cn.jyjz.xiaoyao.ocr.dataobject;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.io.Serializable;
/**
* <p>
*
* </p>
*
* @author 123
* @since 2024-03-15
*/
@TableName("ocr_search_history")
public class OcrSearchHistory extends Model<OcrSearchHistory> {
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
*
*/
private String historyname;
public Long getUserid() {
return userid;
}
public void setUserid(Long userid) {
this.userid = userid;
}
/**
*
*/
private Long userid;
/**
*
*/
private Long createdate;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getHistoryname() {
return historyname;
}
public void setHistoryname(String historyname) {
this.historyname = historyname;
}
public Long getCreatedate() {
return createdate;
}
public void setCreatedate(Long createdate) {
this.createdate = createdate;
}
@Override
public Serializable pkVal() {
return this.id;
}
@Override
public String toString() {
return "OcrSearchHistory{" +
"id=" + id +
", historyname=" + historyname +
", userid=" + userid +
", createdate=" + createdate +
"}";
}
}

@ -3,6 +3,11 @@ package cn.jyjz.xiaoyao.ocr.service;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrMsg;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import cn.jyjz.xiaoyao.ocr.util.PageRequest;
import java.util.List;
import java.util.Map;
/**
* <p>
@ -14,4 +19,13 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IOcrMsgService extends IService<OcrMsg> {
/**
*
* , MyBatisJPA
* ORMORM
*
* @param pageRequest
* @return PageResult
*/
PageInfo<List<Map<Object,String>>> selectPage(PageRequest pageRequest,String userid, String msgCategory);
}

@ -0,0 +1,20 @@
package cn.jyjz.xiaoyao.ocr.service;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrSearchHistory;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author 123
* @since 2024-03-15
*/
public interface IOcrSearchHistoryService extends IService<OcrSearchHistory> {
List<String> selectsearch(String search,String assignee);
}

@ -4,8 +4,16 @@ import cn.jyjz.xiaoyao.ocr.dataDao.OcrMsgMapper;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrMsg;
import cn.jyjz.xiaoyao.ocr.service.IOcrMsgService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.jyjz.xiaoyao.ocr.util.PageRequest;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* <p>
*
@ -17,4 +25,17 @@ import org.springframework.stereotype.Service;
@Service
public class OcrMsgServiceImpl extends ServiceImpl<OcrMsgMapper, OcrMsg> implements IOcrMsgService {
@Resource
OcrMsgMapper ocrmsgmapper;
@Override
public PageInfo<List<Map<Object,String>>> selectPage(PageRequest pageRequest,String userid, String msgCategory) {
int pageNum = pageRequest.getPageNum();
int pageSize = pageRequest.getPageSize();
PageHelper.startPage(pageNum, pageSize);
List<List<Map<Object, String>>> selectPage = ocrmsgmapper.selectPage(userid,msgCategory);
return new PageInfo<List<Map<Object,String>>>(selectPage);
}
}

@ -0,0 +1,31 @@
package cn.jyjz.xiaoyao.ocr.service.impl;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrSearchHistory;
import cn.jyjz.xiaoyao.ocr.service.IOcrSearchHistoryService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import cn.jyjz.xiaoyao.ocr.dataDao.OcrSearchHistoryMapper;
import javax.annotation.Resource;
import java.util.Collection;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author 123
* @since 2024-03-15
*/
@Service
public class OcrSearchHistoryServiceImpl extends ServiceImpl<OcrSearchHistoryMapper, OcrSearchHistory> implements IOcrSearchHistoryService {
@Resource
OcrSearchHistoryMapper ocrsearchhistorymapper;
@Override
public List<String> selectsearch(String search, String assignee) {
return ocrsearchhistorymapper.selectsearch(search,assignee);
}
}

@ -0,0 +1,27 @@
package cn.jyjz.xiaoyao.ocr.util;
/**
*
*/
public class PageRequest {
/**
*
*/
private int pageNum;
/**
*
*/
private int pageSize;
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
}

@ -28,4 +28,69 @@
id, titile, msg_content AS msgContent, sender, msg_category AS msgCategory, receive_user_type AS receiveUserType, bus_json AS busJson, create_time AS createTime, create_by AS createBy, update_time AS updateTime, update_by AS updateBy, receive_user_ids AS receiveUserIds, open_type AS openType, open_page AS openPage, send_status AS sendStatus, send_time AS sendTime, cancel_time AS cancelTime
</sql>
<select id="selectPage" resultType="map">
<if test='msgCategory == "2" '>
SELECT
id,
titile,
"系统管理员" as userNcame,
bus_json as busJson,
send_time as sendTime
FROM
ocr_msg
WHERE
msg_category = '2'
AND
receive_user_type = '1'
AND FIND_IN_SET( ""#{userid}"", receive_user_ids )
UNION ALL
SELECT
id,
titile,
"系统管理员" as userNcame,
bus_json as busJson,
send_time as sendTime
FROM
ocr_msg
WHERE
msg_category = '2'
AND
receive_user_type = '2'
</if>
<if test='msgCategory == "1" '>
SELECT
m.id as id,
m.titile as titile,
u.USERNAME as userName,
m.bus_json as busJson,
m.send_time as sendTime
FROM
ocr_msg m LEFT JOIN s_user_t u ON m.sender=u.ID
WHERE
m.msg_category = '1'
AND
m.receive_user_type = '1'
AND FIND_IN_SET( ""#{userid}"", m.receive_user_ids )
UNION ALL
SELECT
m.id as id,
m.titile as titile,
u.USERNAME as userName,
m.bus_json as busJson,
m.send_time as sendTime
FROM
ocr_msg m LEFT JOIN s_user_t u ON m.sender=u.ID
WHERE
m.msg_category = '1'
AND
m.receive_user_type = '2'
</if>
</select>
</mapper>

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.jyjz.xiaoyao.ocr.dataDao.OcrSearchHistoryMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.jyjz.xiaoyao.ocr.dataobject.OcrSearchHistory">
<id column="id" property="id" />
<result column="historyname" property="historyname" />
<result column="userid" property="userid" />
<result column="createdate" property="createdate" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, historyname, userid, createdate
</sql>
<select id="selectsearch" resultType="map">
SELECT
CONCAT_WS("-",r.FROMTASKNAME,t.planName) as name
FROM
ocr_taskchild_picture r
LEFT JOIN ocr_picture t ON r.PICTUREID = t.ID
WHERE
r.STATES='1'
and
r.ASSIGNEE=#{assignee}
AND
r.FROMTASKID like "%"#{search}"%"
OR r.FROMTASKNAME like "%"#{search}"%"
OR t.field1 like "%"#{search}"%"
ORDER BY r.CREATEDATE DESC
LIMIT 3
</select>
</mapper>
Loading…
Cancel
Save