在springboot中,按照检索条件查询内容,并实现分页
Controller
/**
* 查询用户信息-全部
*/
@GetMapping("/getUserInfoAll")
@ApiOperation(value = "查询用户信息-全部")
public IPage<UserInfo> getUserInfoAll(BindingAwareModelMap conditions, @RequestParam(value = "current", defaultValue = "1", required = false) int current,
@RequestParam(value = "size", defaultValue = "10", required = false) int size,Integer zxzt,
@RequestParam(required = false)String yhxm,@RequestParam(required = false)String yhxb,@RequestParam(required = false)String yhzc,
@RequestParam(required = false)String yddh,@RequestParam(required = false)String dlzh,@RequestParam(required = false)String jgid) {
if (zxzt.equals(0)){
return userInfoService.selectDeleteUserInforPage(conditions, current, size,yhxm,yhxb,yhzc,yddh,dlzh,jgid);
}else {
return userInfoService.selectUserInfoPage(conditions, current, size,yhxm,yhxb,yhzc,yddh,dlzh,jgid);
}
}
Service
/**
* 查询用户信息分页
*
* @param current 当前页
* @param size 每页显示
* @return 用户信息列表
*/
IPage<UserInfo> selectUserInfoPage(Map<String,Object> conditions, long current, long size,String yhxm,String yhxb,String yhzc,String yddh,String dlzh,String jgid);
IPage<UserInfo> selectDeleteUserInforPage(Map<String,Object> conditions,long current,long size,String yhxm,String yhxb,String yhzc,String yddh,String dlzh,String jgid);
ServiceImpl
@Override
public IPage<UserInfo> selectUserInfoPage(Map<String,Object> conditions, long current, long size,String yhxm,String yhxb,String yhzc,String yddh,String dlzh,String jgid) {
QueryWrapper<UserInfo> query = Wrappers.query();
boolean all = false;
if (conditions.containsKey("zhzt") && "1".equals(conditions.get("zhzt"))) {
all = true;
}
conditions.remove("zhzt");
conditions.forEach((key, value) -> {
query.like(key, value);
});
Page<UserInfo> userInfoPage = new Page<>(current, size);
IPage<UserInfo> page = null;
if (all) {
} else {
if (jgid != null){
page = baseMapper.selectJgmc(userInfoPage,query,jgid);
}else{
page = baseMapper.selectUserWithOutStatus(userInfoPage, query,yhxm,yhxb,yhzc,yddh,dlzh,jgid);
}
}
return page;
}
@Override
public IPage<UserInfo> selectDeleteUserInforPage(Map<String, Object> conditions, long current, long size,String yhxm,String yhxb,String yhzc,String yddh,String dlzh,String jgid) {
QueryWrapper<UserInfo> query = Wrappers.query();
boolean all = false;
if(conditions.containsKey("zhzt")&& "1".equals(conditions.get("zhzt"))) {
all = true;
}
conditions.remove("zhzt");
conditions.forEach((key,value)->{
query.like(key,value);
});
Page<UserInfo> userInfoPage = new Page<>(current, size);
IPage<UserInfo> page = null;
if(all){
}else {
if (jgid != null){
page = baseMapper.selectJgmc(userInfoPage,query,jgid);
}else{
page = baseMapper.selectDeleteUserWithOutStatus(userInfoPage, query,yhxm,yhxb,yhzc,yddh,dlzh,jgid);
}
}
return page;
}
Mapper
/**
* 查询所有的用户信息(包括已经被逻辑删除的)
* @param page
* @param queryWrapper
* @return
*/
IPage<UserInfo> selectUserWithOutStatus(IPage<UserInfo> page, @Param(Constants.WRAPPER) Wrapper<UserInfo> queryWrapper,
@Param("YHXM")String yhxm,@Param("YHXB")String yhxb,@Param("YHZC")String yhzc,
@Param("YDDH")String yddh,@Param("DLZH")String dlzh,@Param("JGBMXXBID")String jgid);
IPage<UserInfo> selectDeleteUserWithOutStatus(IPage<UserInfo> page,@Param(Constants.WRAPPER)Wrapper<UserInfo> queryWrapper,
@Param("YHXM")String yhxm,@Param("YHXB")String yhxb,@Param("YHZC")String yhzc,
@Param("YDDH")String yddh,@Param("DLZH")String dlzh,@Param("JGBMXXBID")String jgid);
xml
<?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="com.zhicheng.javaplat.modular.user.dao.UserInfoMapper">
<sql id="baseField" >
yhxx.YHZHXXBID
,yhxx.YHXM
,yhxx.YHXB
,yhxx.SFZH
,yhxx.YHZC
,yhxx.YDDH
,yhxx.GLYBS
,yhxx.SFSQ
,yhxx.DLZH
,yhxx.DLMM
,yhxx.ZHZT
,yhxx.SHSJ
,yhxx.SHRYID
,yhxx.SHJL
,yhxx.SHWTGYY
,yhxx.CJSJ
,yhxx.CJRYID
,yhxx.JGID
,yhxx.BMID
</sql>
<select id="selectUserWithOutStatus" resultType="com.zhicheng.javaplat.modular.user.entity.UserInfo">
select YHXM,YHXB,YDDH,DLZH,ZHZT,CJSJ,cjrmc,sfsq,sfzh,glybs,YHZHXXBID,listagg(JGBMMC,',') within group (order by JGBMMC) JGBMMC,listagg(jgbms,',') within group (order by jgbms) jgbms
from
(select distinct jgbm.JGBMXXBID jgbms,yhxx.YHZHXXBID,yhxx.CJSJ,yhxx.CJRYID,yhjg.ZXZT,jgbm.JGBMMC
,cjrxx.yhxm cjrmc,yhxx.YHXM ,yhxx.YHXB,yhxx.YDDH ,yhxx.DLZH,yhxx.YHZC,yhxx.zhzt,yhxx.sfsq,yhxx.sfzh,yhxx.glybs
from qx_yhzhxxb yhxx
left join qx_yhzh_jgbm yhjg on yhxx.yhzhxxbid = yhjg.yhzhxxbid
left join qx_jgbmxxb jgbm on yhjg.jgbmxxbid = jgbm.jgbmxxbid
left join QX_YHZHXXB cjrxx on yhxx.yhxm = cjrxx.yhxm
where (yhjg.ZXZT=0 or yhjg.zxzt is null)
<if test='YHXM!=null and YHXM != ""'>
AND yhxx.YHXM like concat(concat('%',#{YHXM}), '%')
</if>
<if test='YHXB!=null and YHXB != ""'>
AND yhxx.YHXB like concat(concat('%',#{YHXB}), '%')
</if>
<if test='YHZC!=null and YHZC != ""'>
AND yhxx.YHZC like concat(concat('%',#{YHZC}), '%')
</if>
<if test='YDDH!=null and YDDH != ""'>
AND yhxx.YDDH like concat(concat('%',#{YDDH}), '%')
</if>
<if test='DLZH!=null and DLZH != ""'>
AND yhxx.DLZH like concat(concat('%',#{DLZH}), '%')
</if>
<if test='JGBMXXBID!=null and JGBMXXBID != ""'>
AND yhjg.JGBMXXBID=#{JGID}
</if>)
group by YHZHXXBID,YHXM,YHXB,YDDH,DLZH,ZHZT,CJSJ,cjrmc,sfsq,sfzh,glybs order by cjsj desc
</select>
<select id="selectDeleteUserWithOutStatus" resultType="com.zhicheng.javaplat.modular.user.entity.UserInfo">
SELECT distinct
YHXM,YHXB,YDDH,DLZH,ZHZT,CJSJ,cjrmc,YHZHXXBID,JGBMMC,jgbms,sfsq,sfzh,glybs
FROM
(select YHXM,YHXB,YDDH,DLZH,ZHZT,CJSJ,cjrmc,sfsq,sfzh,glybs,YHZHXXBID,listagg(JGBMMC,',') within group (order by JGBMMC) JGBMMC,listagg(jgbms,',') within group (order by jgbms) jgbms
from
(select distinct jgbm.JGBMXXBID jgbms,yhxx.YHZHXXBID,yhxx.CJSJ,yhxx.CJRYID,yhjg.ZXZT,jgbm.JGBMMC
,cjrxx.yhxm cjrmc,yhxx.YHXM ,yhxx.YHXB,yhxx.YDDH ,yhxx.DLZH,yhxx.YHZC,yhxx.zhzt,yhxx.sfsq,yhxx.sfzh,yhxx.glybs
from qx_yhzhxxb yhxx
left join qx_yhzh_jgbm yhjg on yhxx.yhzhxxbid = yhjg.yhzhxxbid
left join qx_jgbmxxb jgbm on yhjg.jgbmxxbid = jgbm.jgbmxxbid
left join QX_YHZHXXB cjrxx on yhxx.yhxm = cjrxx.yhxm
where (yhjg.ZXZT=0 or yhjg.zxzt is null)
<if test='YHXM!=null and YHXM != ""'>
AND yhxx.YHXM like concat(concat('%',#{YHXM}), '%')
</if>
<if test='YHXB!=null and YHXB != ""'>
AND yhxx.YHXB like concat(concat('%',#{YHXB}), '%')
</if>
<if test='YHZC!=null and YHZC != ""'>
AND yhxx.YHZC like concat(concat('%',#{YHZC}), '%')
</if>
<if test='YDDH!=null and YDDH != ""'>
AND yhxx.YDDH like concat(concat('%',#{YDDH}), '%')
</if>
<if test='DLZH!=null and DLZH != ""'>
AND yhxx.DLZH like concat(concat('%',#{DLZH}), '%')
</if>
<if test='JGBMXXBID!=null and JGBMXXBID != ""'>
AND yhjg.JGBMXXBID=#{JGID}
</if>)
group by YHZHXXBID,YHXM,YHXB,YDDH,DLZH,ZHZT,CJSJ,cjrmc,sfsq,sfzh,glybs order by cjsj desc) where ZHZT=0 order by cjsj desc
</select>
<select id="selectOneWithOrg" resultType="com.zhicheng.javaplat.modular.user.entity.UserInfo">
SELECT
<include refid="baseField" />
,jgxx.jgbmmc jgmc
,bmxx.jgbmmc bmmc
FROM
QX_YHZHXXB yhxx
left join QX_JGBMXXB jgxx on yhxx.jgid = jgxx.jgbmxxbid
left join QX_JGBMXXB bmxx on yhxx.bmid = bmxx.jgbmxxbid and bmxx.JGBMLX = 1
where yhxx.zhzt=0
and yhxx.dlzh = #{userName}
</select>
<select id="selectUserWithOutList" resultType="com.zhicheng.javaplat.modular.user.entity.UserInfo">
SELECT distinct
<include refid="baseField" />
,cjrxx.yhxm cjrmc
FROM
QX_YHZHXXB yhxx
left join QX_YHZHXXB cjrxx on yhxx.yhxm = cjrxx.yhxm
where yhxx.zhzt=0
order by yhxx.cjsj desc
</select>
<select id="selectJgmc" resultType="com.zhicheng.javaplat.modular.user.entity.UserInfo">
select yhjg.JGBMXXBID,yhjg.YHZHXXBID,yhjg.CJSJ,yhjg.CJRYID,yhjg.ZXZT,yhjg.ZXSJ,yhjg.ZXRYID,jgxx.JGBMMC
,cjrxx.yhxm cjrmc,yhxx.YHXM ,yhxx.YHXB,yhxx.YDDH ,yhxx.DLZH
from QX_YHZH_JGBM yhjg
left join QX_YHZHXXB yhxx on yhxx.YHZHXXBID = yhjg.YHZHXXBID
left join QX_JGBMXXB jgxx on jgxx.JGBMXXBID = yhjg.JGBMXXBID
left join QX_YHZHXXB cjrxx on yhxx.yhxm = cjrxx.yhxm
where yhjg.ZXZT = 0 and yhjg.JGBMXXBID=#{JGID}
</select>
<select id="selectUserWithoutJg" resultType="com.zhicheng.javaplat.modular.user.entity.UserInfo">
SELECT <include refid="baseField" />
,jgxx.jgbmmc jgbms
,bmxx.jgbmmc
,cjrxx.yhxm cjrmc
FROM
QX_YHZHXXB yhxx
left join QX_YHZHXXB cjrxx on yhxx.yhxm = cjrxx.yhxm
left join QX_JGBMXXB jgxx on yhxx.jgid = jgxx.jgbmxxbid
left join QX_JGBMXXB bmxx on yhxx.bmid = bmxx.jgbmxxbid and bmxx.JGBMLX = 1
where yhxx.zhzt=0
<if test='YHXM!=null and YHXM != ""'>
AND yhxx.YHXM like concat(concat('%',#{YHXM}), '%')
</if>
<if test='YHXB!=null and YHXB != ""'>
AND yhxx.YHXB like concat(concat('%',#{YHXB}), '%')
</if>
<if test='YHZC!=null and YHZC != ""'>
AND yhxx.YHZC like concat(concat('%',#{YHZC}), '%')
</if>
<if test='YDDH!=null and YDDH != ""'>
AND yhxx.YDDH like concat(concat('%',#{YDDH}), '%')
</if>
<if test='DLZH!=null and DLZH != ""'>
AND yhxx.DLZH like concat(concat('%',#{DLZH}), '%')
</if>
</select>
</mapper>
在Oracle查询中将结果列按分组用逗号隔开,拼接成一行使用(listagg函数)
来源:CSDN
作者:qq_40061245
链接:https://blog.csdn.net/qq_40061245/article/details/103765586