Browse Source

页面图标文件

weijianghai 1 day ago
parent
commit
7cc1a1d1c0
4 changed files with 453 additions and 0 deletions
  1. BIN
      doc/public.zip
  2. 4 0
      doc/rollback.sh
  3. 5 0
      doc/update.sh
  4. 444 0
      doc/正式环境部署.md

BIN
doc/public.zip


+ 4 - 0
doc/rollback.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+
+rm -rf dist
+mv dist-bak dist

+ 5 - 0
doc/update.sh

@@ -0,0 +1,5 @@
+#!/bin/bash
+
+unzip dist-new.zip
+mv dist dist-bak
+mv dist-new dist

+ 444 - 0
doc/正式环境部署.md

@@ -0,0 +1,444 @@
+# 正式环境部署
+
+## 安装gp客户端
+
+**top用户信息是通过gpload到数据库的,是在192.168.70.125上安装gp客户端还是把同步top用户信息的代码抽出来部署到192.168.70.130?**
+
+把同步top用户信息的代码抽出来部署到192.168.70.130
+
+
+
+## 投诉web入口前端部署位置
+
+70.125
+
+要加白名单
+
+
+
+## 安装minio
+
+**minio 部署位置?**
+
+10.7
+
+
+
+**操作日志和登录日志导出文件永久保存还是过期删除?**
+
+14天过期删除
+
+
+
+```sh
+docker load < minio
+docker run \
+--name minio \
+--restart=always \
+-p 19000:19000 \
+-p 19001:19001 \
+-v minio-data:/data \
+-v /etc/timezone:/etc/timezone:ro \
+-v /etc/localtime:/etc/localtime:ro \
+-e "MINIO_ROOT_USER=admin" \
+-e "MINIO_ROOT_PASSWORD=8#tGE3Y)ZTPinQCbX,ZY" \
+-d minio/minio:RELEASE.2022-12-12T19-27-27Z server /data --address ":19000" --console-address ":19001"
+```
+
+nginx配置
+
+```nginx
+    #新页面(投诉web入口)
+    server {
+        listen 12041 ssl;
+        server_name 192.168.70.125;
+
+        #listen 443 ssl;
+        ssl_certificate /usr/local/ssl/server-nopassword.crt;
+        ssl_certificate_key /usr/local/ssl/server-nopassword.key;
+        ssl_ciphers AESGCM:ALL:!DH:!EXPORT:!RC4:+HIGH:!MEDIUM:!LOW:!aNULL:!eNULL;
+        ssl_prefer_server_ciphers on;
+        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
+
+        # 页面
+        location / {
+            root /data/doweb_new/dist;
+            index index.html index.htm;
+        }
+        # 后端
+        location /api {
+            proxy_buffer_size 1024k;
+            proxy_buffers 16 1024k;
+            proxy_busy_buffers_size 2048k;
+            proxy_temp_file_write_size 10m;
+
+            #rewrite ^/api/(.*)$ /$1 break;
+            proxy_pass http://192.168.70.125:12128;
+        }
+        # minio
+        location /oss {
+            proxy_pass http://ip:19000;
+            proxy_http_version 1.1;
+            proxy_redirect off;
+            proxy_set_header Host $http_host;
+            proxy_set_header X-Forwarded-Proto $scheme;
+            proxy_set_header X-Real-IP $remote_addr;
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+        }
+        error_page 500 502 503 504 /50x.html;
+        location = /50x.html {
+            root html;
+        }
+    }
+```
+
+文件桶访问策略配置,public文件夹公共读
+
+```json
+{
+    "Version": "2012-10-17",
+    "Statement": [
+        {
+            "Effect": "Allow",
+            "Principal": {
+                "AWS": [
+                    "*"
+                ]
+            },
+            "Action": [
+                "s3:GetObject"
+            ],
+            "Resource": [
+                "arn:aws:s3:::oss-acl-tousu-prod/public/*"
+            ]
+        }
+    ]
+}
+```
+
+
+
+## 停止程序
+
+```shell
+sh stop.sh
+```
+
+
+
+## 备份数据库
+
+ ```sql
+ create table sqmdb_rpt.acl_area_bak as select * from sqmdb_rpt.acl_area;
+ create table sqmdb_rpt.acl_function_bak as select * from sqmdb_rpt.acl_function;
+ create table sqmdb_rpt.acl_role_bak as select * from sqmdb_rpt.acl_role;
+ create table backups.acl_user_202310311520 as select * from sqmdb_rpt.acl_user;
+ create table backups.acl_user_function_202310311520 as select * from sqmdb_rpt.acl_user_function;
+ create table backups.acl_user_role_city_202310311520 as select * from sqmdb_rpt.acl_user_role_city;
+ create table sqmdb_rpt.acl_verification_log_bak as select * from sqmdb_rpt.acl_verification_log;
+ ```
+
+
+
+## 更新数据库
+
+
+
+```sql
+-- 创建操作日志表
+CREATE TABLE sqmdb_rpt.acl_operation_log (
+	id bigserial NOT NULL, -- 主键
+	operation_time timestamp NOT NULL, -- 操作时间
+	operator_id int4 NOT NULL, -- 操作人id
+	operator_name varchar NOT NULL, -- 操作人姓名
+	operator_account varchar NOT NULL, -- 操作人账号
+	operation_name varchar NOT NULL, -- 操作名称
+	operation_content varchar NOT NULL, -- 操作内容
+	CONSTRAINT acl_operation_log_pk PRIMARY KEY (id)
+);
+COMMENT ON TABLE sqmdb_rpt.acl_operation_log IS '操作日志';
+COMMENT ON COLUMN sqmdb_rpt.acl_operation_log.id IS '主键';
+COMMENT ON COLUMN sqmdb_rpt.acl_operation_log.operation_time IS '操作时间';
+COMMENT ON COLUMN sqmdb_rpt.acl_operation_log.operator_id IS '操作人id';
+COMMENT ON COLUMN sqmdb_rpt.acl_operation_log.operator_name IS '操作人姓名';
+COMMENT ON COLUMN sqmdb_rpt.acl_operation_log.operator_account IS '操作人账号';
+COMMENT ON COLUMN sqmdb_rpt.acl_operation_log.operation_name IS '操作名称';
+COMMENT ON COLUMN sqmdb_rpt.acl_operation_log.operation_content IS '操作内容';
+```
+
+
+
+**公告内容怎么填?**
+
+先空着
+
+```sql
+-- 创建公告表
+CREATE TABLE sqmdb_rpt.acl_notice (
+	id serial4 NOT NULL, -- 主键
+	create_time date NOT NULL, -- 创建时间
+	"content" varchar NOT NULL, -- 内容
+	CONSTRAINT acl_notice_pk PRIMARY KEY (id)
+);
+COMMENT ON TABLE sqmdb_rpt.acl_notice IS '公告';
+COMMENT ON COLUMN sqmdb_rpt.acl_notice.id IS '主键';
+COMMENT ON COLUMN sqmdb_rpt.acl_notice.create_time IS '创建时间';
+COMMENT ON COLUMN sqmdb_rpt.acl_notice."content" IS '内容';
+-- 插入公告
+INSERT INTO sqmdb_rpt.acl_notice (create_time,"content") VALUES
+	 ('2023-01-01','公告1'),
+	 ('2023-01-02','公告2'),
+	 ('2023-01-03','公告3'),
+	 ('2023-01-04','公告4'),
+	 ('2023-01-05','公告5'),
+	 ('2023-01-06','公告6');
+```
+
+
+
+```sql
+-- 创建客户端表
+CREATE TABLE sqmdb_rpt.acl_client (
+	client int4 NOT NULL, -- 主键
+	client_name varchar NOT NULL, -- 客户端名称
+	CONSTRAINT acl_client_pk PRIMARY KEY (client)
+);
+COMMENT ON TABLE sqmdb_rpt.acl_client IS '客户端';
+COMMENT ON COLUMN sqmdb_rpt.acl_client.client IS '主键';
+COMMENT ON COLUMN sqmdb_rpt.acl_client.client_name IS '客户端名称';
+-- 插入客户端
+INSERT INTO sqmdb_rpt.acl_client (client,client_name) VALUES
+	 (0,'所有'),
+	 (1,'app'),
+	 (2,'web');
+```
+
+
+
+```sql
+-- 创建系统表
+CREATE TABLE sqmdb_rpt.acl_system (
+	"system" varchar NOT NULL, -- system id
+	system_name varchar NOT NULL, -- system中文名称
+	CONSTRAINT acl_system_pk PRIMARY KEY (system)
+);
+COMMENT ON TABLE sqmdb_rpt.acl_system IS 'acl系统';
+COMMENT ON COLUMN sqmdb_rpt.acl_system."system" IS 'system id';
+COMMENT ON COLUMN sqmdb_rpt.acl_system.system_name IS 'system中文名称';
+-- 插入系统
+INSERT INTO sqmdb_rpt.acl_system ("system",system_name) VALUES
+	 ('flow','流程'),
+	 ('heidianku','黑点库'),
+	 ('fenxi','投诉分析'),
+	 ('yuce','投诉预测'),
+	 ('daping','投诉大屏'),
+	 ('permission','权限'),
+	 ('order_manage','工单处理'),
+	 ('app','app'),
+	 ('web','web'),
+	 ('luyin','工单录音'),
+	 ('volte_t2','volte语音分析'),
+	 ('order_query','工单查询'),
+	 ('order_reply','工单答复');
+```
+
+
+
+```sql
+-- 创建top用户信息表
+CREATE TABLE sqmdb_rpt.acl_top_user (
+	login_name varchar NOT NULL, -- 账号
+	org_id int8 NULL, -- 部门id
+	org_name varchar NULL, -- 部门名称
+	user_id varchar NULL, -- 人员id
+	user_name varchar NULL, -- 姓名
+	phone varchar NULL, -- 电话
+	employee_code varchar NULL, -- 人员编码
+	province_id int4 NULL, -- 省份id
+	city_id int4 NULL, -- 地市id
+	area_id int4 NULL, -- 区县id
+	CONSTRAINT acl_top_user_pk PRIMARY KEY (login_name)
+);
+COMMENT ON TABLE sqmdb_rpt.acl_top_user IS 'top用户';
+COMMENT ON COLUMN sqmdb_rpt.acl_top_user.login_name IS '账号';
+COMMENT ON COLUMN sqmdb_rpt.acl_top_user.org_id IS '部门id';
+COMMENT ON COLUMN sqmdb_rpt.acl_top_user.org_name IS '部门名称';
+COMMENT ON COLUMN sqmdb_rpt.acl_top_user.user_id IS '人员id';
+COMMENT ON COLUMN sqmdb_rpt.acl_top_user.user_name IS '姓名';
+COMMENT ON COLUMN sqmdb_rpt.acl_top_user.phone IS '电话';
+COMMENT ON COLUMN sqmdb_rpt.acl_top_user.employee_code IS '人员编码';
+COMMENT ON COLUMN sqmdb_rpt.acl_top_user.province_id IS '省份id';
+COMMENT ON COLUMN sqmdb_rpt.acl_top_user.city_id IS '地市id';
+COMMENT ON COLUMN sqmdb_rpt.acl_top_user.area_id IS '区县id';
+```
+
+
+
+**function_description怎么填?**
+
+```sql
+-- 删除模块表
+DROP TABLE sqmdb_rpt.acl_function;
+-- 创建模块表
+CREATE TABLE sqmdb_rpt.acl_function (
+	id serial4 NOT NULL, -- 主键
+	"name" varchar NOT NULL, -- 功能名称
+	"system" varchar NOT NULL, -- 系统模块
+	client int4 NOT NULL, -- 展示的客户端
+	app_url varchar NOT NULL DEFAULT ''::character varying, -- app链接
+	app_icon varchar NOT NULL DEFAULT ''::character varying, -- app图标链接
+	app_priority int4 NOT NULL DEFAULT 0, -- app显示优先级,越大越靠前
+	web_url varchar NOT NULL DEFAULT ''::character varying, -- web链接
+	web_icon varchar NOT NULL DEFAULT ''::character varying, -- web图标链接
+	web_priority int4 NOT NULL DEFAULT 0, -- web显示优先级,越大越靠前
+	function_description varchar NOT NULL DEFAULT ''::character varying, -- 功能说明
+	CONSTRAINT acl_function_pk PRIMARY KEY (id)
+);
+COMMENT ON TABLE sqmdb_rpt.acl_function IS '功能';
+COMMENT ON COLUMN sqmdb_rpt.acl_function.id IS '主键';
+COMMENT ON COLUMN sqmdb_rpt.acl_function."name" IS '功能名称';
+COMMENT ON COLUMN sqmdb_rpt.acl_function."system" IS '系统模块';
+COMMENT ON COLUMN sqmdb_rpt.acl_function.client IS '展示的客户端';
+COMMENT ON COLUMN sqmdb_rpt.acl_function.app_url IS 'app链接';
+COMMENT ON COLUMN sqmdb_rpt.acl_function.app_icon IS 'app图标链接';
+COMMENT ON COLUMN sqmdb_rpt.acl_function.app_priority IS 'app显示优先级,越大越靠前';
+COMMENT ON COLUMN sqmdb_rpt.acl_function.web_url IS 'web链接';
+COMMENT ON COLUMN sqmdb_rpt.acl_function.web_icon IS 'web图标链接';
+COMMENT ON COLUMN sqmdb_rpt.acl_function.web_priority IS 'web显示优先级,越大越靠前';
+COMMENT ON COLUMN sqmdb_rpt.acl_function.function_description IS '功能说明';
+-- 插入模块
+INSERT INTO sqmdb_rpt.acl_function (id, "name","system",client,app_url,app_icon,app_priority,web_url,web_icon,web_priority,function_description) VALUES
+	 (-1,'权限和日志管理','permission',2,'','',0,'/permissions/role','/public/images/permission.png',9999,''),
+	 (1,'工单处理','flow',0,'/pages/index/index?type=dispose','icon1',88,'https://133.96.94.108:8081/ease-flow-console-v2/#/taskmanagement','/public/images/order-manage.png',88,'描述1'),
+	 (2,'工单查询','flow',0,'/pages/index/index?type=query','icon2',77,'https://133.96.94.108:8081/ease-flow-console-v2/#/orderSearch','/public/images/order-query.png',77,'描述2'),
+	 (3,'工单答复','flow',0,'/pages/index/index?type=reply','icon3',99,'https://133.96.94.108:8081/ease-flow-console-v2/#/customerResponse','/public/images/order-reply.png',99,''),
+	 (4,'黑点库','heidianku',2,'','',0,'http://133.96.94.108:12129','/public/images/heidianku.png',0,''),
+	 (5,'投诉大屏','daping',-1,'','',0,'http://133.96.94.108:12011','',0,''),
+	 (6,'投诉分析','fenxi',2,'','',0,'https://133.96.94.108:12031/service2/optimization/mainAction','/public/images/fenxi.png',0,''),
+	 (7,'投诉预测','yuce',2,'','',0,'https://133.96.94.108:12001','/public/images/yuce.png',0,''),
+	 (8,'volte语音分析','volte_t2',2,'','',0,'https://133.96.94.108:8288','/public/images/fenxi.png',0,''),
+	 (9,'工单录音','luyin',2,'','',0,'https://133.96.94.108:8081/ease-flow-console-v2/#/recording','/public/images/fenxi.png',0,'');
+```
+
+
+
+**role_description怎么填?**
+
+```sql
+-- 删除角色表
+DROP TABLE sqmdb_rpt.acl_role;
+-- 创建角色表
+CREATE TABLE sqmdb_rpt.acl_role (
+	role_id serial4 NOT NULL, -- 角色id
+	role_name varchar NULL, -- 角色名称
+	"system" varchar NULL, -- 系统
+	function_id int4 NULL, -- 功能id
+	role_description varchar NULL DEFAULT ''::character varying, -- 角色说明
+	CONSTRAINT role_pk PRIMARY KEY (role_id)
+);
+COMMENT ON TABLE sqmdb_rpt.acl_role IS '角色';
+COMMENT ON COLUMN sqmdb_rpt.acl_role.role_id IS '角色id';
+COMMENT ON COLUMN sqmdb_rpt.acl_role.role_name IS '角色名称';
+COMMENT ON COLUMN sqmdb_rpt.acl_role."system" IS '系统';
+COMMENT ON COLUMN sqmdb_rpt.acl_role.function_id IS '功能id';
+COMMENT ON COLUMN sqmdb_rpt.acl_role.role_description IS '角色说明';
+-- 插入角色
+INSERT INTO sqmdb_rpt.acl_role (role_id,role_name,"system",function_id,role_description) VALUES
+	 (-1,'权限和日志管理','permission',-1,''),
+	 (3,'工单查询','flow',2,''),
+	 (4,'工单处理(投诉分析)','flow',1,''),
+	 (5,'工单处理(优化处理)','flow',1,''),
+	 (6,'工单处理(维护处理)','flow',1,''),
+	 (7,'工单处理(建设处理)','flow',1,''),
+	 (8,'工单处理(归档审核)','flow',1,''),
+	 (12,'工单答复','flow',3,''),
+	 (13,'工单处理(处理核查)','flow',1,''),
+	 (14,'黑点库管理','heidianku',4,''),
+	 (15,'黑点库查询','heidianku',4,''),
+	 (16,'投诉分析','fenxi',6,'描述'),
+	 (17,'投诉预测','yuce',7,'描述2'),
+	 (18,'投诉大屏','daping',5,''),
+	 (19,'volte语音分析','volte_t2',8,''),
+	 (20,'工单录音','flow',9,'');
+```
+
+
+
+```sql
+-- 添加用户逻辑删除字段,默认0未删除
+ALTER TABLE sqmdb_rpt.acl_user ADD deleted int4 NOT NULL DEFAULT 0;
+COMMENT ON COLUMN sqmdb_rpt.acl_user.deleted IS '是否已删除';
+-- 添加是否测试用户字段,默认0非测试用户
+ALTER TABLE sqmdb_rpt.acl_user ADD test_user int4 NOT NULL DEFAULT 0;
+COMMENT ON COLUMN sqmdb_rpt.acl_user.test_user IS '是否测试用户';
+-- 标记测试用户
+update sqmdb_rpt.acl_user set test_user = 1 where login_name like 'test%' or user_id = 1;
+-- 给test_hebei添加管理权限
+INSERT INTO sqmdb_rpt.acl_user_role_city (user_id,role_id,city_id) VALUES
+   (10,-1,-1);
+```
+
+
+
+```sql
+-- 清空用户功能入口表
+TRUNCATE TABLE sqmdb_rpt.acl_user_function CONTINUE IDENTITY RESTRICT;
+-- 根据用户角色插入功能入口
+insert
+	into
+	sqmdb_rpt.acl_user_function (user_id,
+	function_id)
+select
+	distinct aurc.user_id,
+	ar.function_id
+from
+	sqmdb_rpt.acl_user_role_city aurc
+inner join sqmdb_rpt.acl_role ar on
+	aurc.role_id = ar.role_id
+inner join sqmdb_rpt.acl_function af on
+	ar.function_id = af.id
+order by
+	aurc.user_id,
+	ar.function_id;
+```
+
+
+
+## 更新jar
+
+部署位置:192.168.70.125/data1/acl
+
+```sh
+sh update.sh
+```
+
+
+
+
+## 回滚
+
+
+数据库回滚
+ ```sql
+ alter table sqmdb_rpt.acl_area rename to acl_area_back;
+ alter table sqmdb_rpt.acl_function rename to acl_function_back;
+ alter table sqmdb_rpt.acl_role rename to acl_role_back;
+ alter table sqmdb_rpt.acl_user rename to acl_user_back;
+ alter table sqmdb_rpt.acl_user_function rename to acl_user_function_back;
+ alter table sqmdb_rpt.acl_user_role_city rename to acl_user_role_city_back;
+ alter table sqmdb_rpt.acl_verification_log rename to acl_verification_log_back;
+ alter table sqmdb_rpt.acl_area_bak rename to acl_area;
+ alter table sqmdb_rpt.acl_function_bak rename to acl_function;
+ alter table sqmdb_rpt.acl_role_bak rename to acl_role;
+ alter table sqmdb_rpt.acl_user_bak rename to acl_user;
+ alter table sqmdb_rpt.acl_user_function_bak rename to acl_user_function;
+ alter table sqmdb_rpt.acl_user_role_city_bak rename to acl_user_role_city;
+ alter table sqmdb_rpt.acl_verification_log_bak rename to acl_verification_log;
+ ```
+
+jar回滚
+
+```sh
+sh rollback.sh
+```
+