管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2022-10-12 31f2753edb02f784b7c82aa07073fff17bf26bfe
1
已修改3个文件
61 ■■■■■ 文件已修改
data/db.sql 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/sys/UserService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/sys/UserMapper.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data/db.sql
@@ -1034,13 +1034,41 @@
  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;
src/main/java/com/lf/server/service/sys/UserService.java
@@ -1,6 +1,7 @@
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;
@@ -20,6 +21,8 @@
    @Override
    public Integer selectCount(String uname) {
        uname = "%" + (StringHelper.isNull(uname) ? "" : uname.trim()) + "%";
        return userMapper.selectCount(uname);
    }
@@ -40,6 +43,8 @@
    @Override
    public List<UserEntity> selectByPage(String uname, Integer limit, Integer offset) {
        uname = "%" + (StringHelper.isNull(uname) ? "" : uname.trim()) + "%";
        return userMapper.selectByPage(uname, limit, offset);
    }
src/main/resources/mapper/sys/UserMapper.xml
@@ -14,7 +14,7 @@
        select count(*) from lf.sys_user
        <where>
            <if test="uname != null">
                uname = #{uname}
                uname like #{uname}
            </if>
        </where>
    </select>
@@ -23,7 +23,27 @@
        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