| | |
| | | declare |
| | | str varchar; |
| | | begin |
| | | if (id is null) then |
| | | return null; |
| | | end if; |
| | | |
| | | execute 'select uname from lf.sys_user where id = ' || id into str; |
| | | |
| | | return str; |
| | | end; |
| | | $$ language plpgsql; |
| | | |
| | | select fn_uname(0); |
| | | select fn_uname(null); |
| | | select uname from lf.sys_user where id = 1 limit 1; |
| | | ----------------------------------------------------------------------------------------------------- |
| | | ----------------------------------------------------------------------------------------------------- f.递归查询ID数组 |
| | | -- drop function fn_rec_array(id integer, tab varchar); |
| | | create or replace function fn_rec_array(id integer, tab varchar) |
| | | returns integer[] as $$ |
| | | declare |
| | | ids integer[]; |
| | | sid integer; |
| | | begin |
| | | for sid in execute 'with recursive rs as(' || |
| | | 'select id,pid from lf.sys_' || tab || ' where id=' || id || |
| | | ' union select a.id,a.pid from lf.sys_' || tab || ' a, rs b where a.pid=b.id '|| |
| | | ') select id from rs order by id' |
| | | loop |
| | | select array_append(ids, sid) into ids; |
| | | end loop; |
| | | |
| | | return ids; |
| | | end; |
| | | $$ language plpgsql; |
| | | |
| | | select fn_rec_array(1, 'dep'); |
| | | select * from lf.sys_user a where a.depid=ANY(fn_rec_array(15,'dep')); |
| | | |
| | | select fn_rec_array(10, 'dir'); |
| | | ----------------------------------------------------------------------------------------------------- |
| | | select a.*,fn_uname(a.create_user) createUserName,fn_uname(a.update_user) updateUserName from lf.sys_blacklist a order by a.id; |
| | |
| | | package com.lf.server.service.sys; |
| | | |
| | | import com.lf.server.entity.sys.UserEntity; |
| | | import com.lf.server.helper.StringHelper; |
| | | import com.lf.server.mapper.sys.UserMapper; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | |
| | | @Override |
| | | public Integer selectCount(String uname) { |
| | | uname = "%" + (StringHelper.isNull(uname) ? "" : uname.trim()) + "%"; |
| | | |
| | | return userMapper.selectCount(uname); |
| | | } |
| | | |
| | |
| | | |
| | | @Override |
| | | public List<UserEntity> selectByPage(String uname, Integer limit, Integer offset) { |
| | | uname = "%" + (StringHelper.isNull(uname) ? "" : uname.trim()) + "%"; |
| | | |
| | | return userMapper.selectByPage(uname, limit, offset); |
| | | } |
| | | |
| | |
| | | select count(*) from lf.sys_user |
| | | <where> |
| | | <if test="uname != null"> |
| | | uname = #{uname} |
| | | uname like #{uname} |
| | | </if> |
| | | </where> |
| | | </select> |
| | |
| | | select a.*, fn_rec_query(a.depid, 'dep') depName from lf.sys_user a |
| | | <where> |
| | | <if test="uname != null"> |
| | | uname = #{uname} |
| | | uname like #{uname} |
| | | </if> |
| | | </where> |
| | | order by a.id |
| | | limit #{limit} offset #{offset} |
| | | </select> |
| | | |
| | | <select id="selectCountForRole" resultType="java.lang.Integer" parameterType="java.lang.String"> |
| | | select count(*) from lf.sys_user |
| | | <where> |
| | | <if test="uname != null"> |
| | | uname like #{uname} |
| | | </if> |
| | | </where> |
| | | </select> |
| | | |
| | | <select id="selectByPageForRole" resultMap="resultMap" resultType="com.lf.server.entity.sys.UserEntity"> |
| | | select a.*, fn_rec_query(a.depid, 'dep') depName from lf.sys_user a |
| | | <where> |
| | | <if test="uname != null"> |
| | | uname like #{uname} |
| | | </if> |
| | | </where> |
| | | order by a.id |