管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2023-01-30 6b13c28539ae366e0eebc92d9148eb92140a7c30
1
已添加1个文件
已修改3个文件
145 ■■■■■ 文件已修改
data/fn.sql 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data/update.sql 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/data/UploadService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/templates/login.html 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
data/fn.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,134 @@
----------------------------------------------------------------------------------------------------- d.GUID生成函数
create or replace function new_guid()
returns "pg_catalog"."varchar" as $body$
declare
  v_seed_value varchar(32);
begin
  select md5(inet_client_addr()::varchar || timeofday() || inet_server_addr()::varchar || to_hex(inet_client_port()))
    into v_seed_value;
  return (substr(v_seed_value,1,8) || '-' ||
          substr(v_seed_value,9,4) || '-' ||
          substr(v_seed_value,13,4) || '-' ||
          substr(v_seed_value,17,4) || '-' ||
          substr(v_seed_value,21,12));
end;
$body$ language 'plpgsql' volatile security definer;
select new_guid();
----------------------------------------------------------------------------------------------------- e.递归查询函数
-- drop function rec_query_dep(id integer, tab varchar);
create or replace function fn_rec_query(id integer, tab varchar)
returns varchar as $$
  declare
    str varchar = '';
    rec varchar = '';
  begin
    if (id is null or tab is null) then
      return '';
    end if;
    for rec in execute 'with recursive rs as(' ||
      'select id,pid,name from lf.sys_' || tab || ' where id=' || id ||
      ' union select a.id,a.pid,a.name from lf.sys_' || tab || ' a, rs b where a.id=b.pid '||
      ') select name from rs order by id'
    loop
      str = str || '\' || rec;
    end loop;
    if (char_length(str) > 1) then
      str = substring(str, 2);
    end if;
    return str;
  end;
$$ language plpgsql;
select fn_rec_query(1, 'dep');
----------------------------------------------------------------------------------------------------- f.查询用户名
-- execute format('select uname from lf.sys_user where id = %s', id) into str;
-- drop function fn_uname(id integer);
create or replace function fn_uname(id integer)
returns varchar as $$
  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(1);
----------------------------------------------------------------------------------------------------- g.查询版本名
-- drop function fn_ver(id integer);
create or replace function fn_ver(id integer)
returns varchar as $$
  declare
    str varchar;
  begin
      if (id is null) then
        return null;
    end if;
    execute 'select name from lf.sys_ver where id = ' || id into str;
    return str;
  end;
$$ language plpgsql;
select fn_ver(0);
----------------------------------------------------------------------------------------------------- h.递归查询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 fn_rec_array(10, 'dir');
----------------------------------------------------------------------------------------------------- i.获取实体名
create or replace function fn_get_entity(tab varchar)
returns varchar as $$
  declare
  begin
    if (tab is null) then
      return '';
    end if;
    return replace(tab, '_', '');
  end;
$$ language plpgsql;
select fn_get_entity('dlg_25w_boua_s');
----------------------------------------------------------------------------------------------------- j.FME日志触发器 *
create or replace function fn_meta_insert() returns trigger as $$
  begin
    update lf.sys_meta set tab = new.pg_ns || '.' || new.tcdm, layer = new.tcmc, rows = new.count where eventid = new.parentid;
    return new;
  end;
$$ language plpgsql;
create or replace trigger fme_log_trigger after insert on lf.sys_fme_log
for each row execute procedure fn_meta_insert();
select * from lf.sys_meta;
-----------------------------------------------------------------------------------------------------
data/update.sql
@@ -4,7 +4,7 @@
alter table lf.sys_meta add column layer varchar(50);
comment on column lf.sys_meta.layer is '图层';
select * from lf.sys_fme_log;
select * from lf.sys_meta order by id;
select * from lf.sys_meta order by guid;
-- delete from lf.sys_meta; alter sequence lf.sys_meta_id_seq1 restart with 1;
select * from lf.sys_token where create_time < '2023-01-10';
src/main/java/com/lf/server/service/data/UploadService.java
@@ -127,9 +127,8 @@
        MetaEntity old = metaService.selectByGuid(mf.getGuid(), tabName);
        if (old != null) {
            mf.setPath(old.getPath());
            mf.setTab(old.getTab());
            mf.setEntity(old.getLayer());
            mf.setTab(old.getTab());
            mf.setRows(old.getRows());
            return;
        }
@@ -303,6 +302,7 @@
        MetaEntity old = metaService.selectByGuid(mf.getGuid(), null);
        if (null != old) {
            mf.setPath(old.getPath());
            FileHelper.deleteFiles(file);
            return;
        }
@@ -336,7 +336,7 @@
     */
    private String findPathByGuid(List<MetaFileEntity> list, MetaFileEntity mf) {
        for (MetaFileEntity meta : list) {
            if (meta.getGuid().equals(mf.getGuid()) && !meta.getPath().equals(mf.getPath())) {
            if (meta.getGuid().equals(mf.getGuid()) && !meta.getEventid().equals(mf.getEventid())) {
                return meta.getPath();
            }
        }
src/main/resources/templates/login.html
@@ -217,7 +217,8 @@
      autoResize();
      getPublicKey();
      $(window).on("resize", autoResize);
      document.getElementById('username').focus();
      //document.getElementById('username').focus();
      document.getElementById('inputCode').focus();
    }
  </script>
  <script>