From 92786e22bbc0c6d99fac274bfa67d09c6772597a Mon Sep 17 00:00:00 2001 From: lixuliang <lixuliang_hd@126.com> Date: 星期二, 10 九月 2024 11:10:40 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.11.205:9000/r/se-cloud --- docker-compose/system/bootstrap.yml | 3 docker-compose/mysql/initdb/wgcloud-MySQL.sql | 307 ++++++++++ se-modules/se-system/src/main/resources/mapper/system/SysMenuMapper.xml | 43 + se-modules/se-system/src/main/resources/mapper/system/SysUserMapper.xml | 5 se-gateway/src/main/resources/bootstrap.yml | 5 docker-compose/mysql/initdb/se_cloud_20240629.sql | 5 se-modules/se-system/src/main/java/com/se/system/controller/SysProfileController.java | 64 +- docker-compose/wgcloud/application.yml | 84 +++ docker-compose/file/bootstrap.yml | 2 se-modules/se-system/src/main/java/com/se/system/mapper/SysMenuMapper.java | 45 se-modules/se-system/src/main/java/com/se/system/service/ISysConfigService.java | 2 se-common/se-common-core/src/main/java/com/se/common/core/utils/AesUtils.java | 2 se-modules/se-file/src/main/resources/bootstrap.yml | 2 se-modules/se-system/src/main/java/com/se/system/service/impl/SyncUserService.java | 79 ++ se-modules/se-system/src/main/java/com/se/system/controller/SysUserController.java | 136 ++-- se-auth/src/main/java/com/se/auth/controller/TokenController.java | 30 se-modules/se-system/src/main/java/com/se/system/service/impl/SysMenuServiceImpl.java | 256 +++----- docker-compose/docker-compose.yml | 36 + docker-compose/auth/bootstrap.yml | 3 se-modules/se-system/src/main/java/com/se/system/domain/SysMenu.java | 12 docker-compose/mysql/initdb/se_config_20231204.sql | 4 se-modules/se-system/src/main/java/com/se/system/mapper/SysUserMapper.java | 8 se-auth/src/main/resources/bootstrap.yml | 5 se-modules/se-system/src/main/java/com/se/system/service/ISysMenuService.java | 49 + se-modules/se-system/src/main/java/com/se/system/controller/SysMenuController.java | 26 se-modules/se-system/src/main/java/com/se/system/service/impl/SysUserServiceImpl.java | 277 ++++----- se-modules/se-system/src/main/resources/bootstrap.yml | 5 docker-compose/gateway/bootstrap.yml | 2 /dev/null | 35 - se-modules/se-system/pom.xml | 7 se-auth/se-auth.iml | 1 docker-compose/nginx/conf/nginx.conf | 9 se-modules/se-system/src/main/java/com/se/system/service/impl/IsimUserService.java | 66 ++ se-modules/se-system/src/main/resources/logback.xml | 2 docker-compose/nacos/conf/application.properties | 12 se-modules/se-job/src/main/resources/bootstrap.yml | 2 se-auth/pom.xml | 8 37 files changed, 1,109 insertions(+), 530 deletions(-) diff --git a/docker-compose/auth/bootstrap.yml b/docker-compose/auth/bootstrap.yml index 0ca30e2..c56d6ac 100644 --- a/docker-compose/auth/bootstrap.yml +++ b/docker-compose/auth/bootstrap.yml @@ -12,6 +12,8 @@ active: dev cloud: nacos: + username: nacos + password: nAcos_!9#_admIn discovery: # 鏈嶅姟娉ㄥ唽鍦板潃 server-addr: se-nacos:8848 @@ -23,3 +25,4 @@ # 鍏变韩閰嶇疆 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} +enableEncrypt: false \ No newline at end of file diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 434bca5..041a6f9 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -35,15 +35,16 @@ - ./nacos/logs/:/home/nacos/logs - ./nacos/conf/application.properties:/home/nacos/conf/application.properties ports: +# - 7848:7848 - 8848:8848 -# - 9848:9848 + - 9848:9848 # - 9849:9849 depends_on: - se-mysql networks: - network-se restart: always - # redis,Redis_s!E_6.2.6 + # redis se-redis: image: redis:latest ports: @@ -52,6 +53,7 @@ - ./redis/data/redis.conf:/data/redis.conf - ./redis/data:/data command: redis-server /data/redis.conf +# command: redis-server --requirepass Redis_s!E_6.2.6 networks: - network-se restart: always @@ -61,16 +63,17 @@ # ports: # - 9204:8080 volumes: + - ./gateway/logs:/logs - ./gateway:/data environment: TZ: Asia/Shanghai entrypoint: java -jar /data/se-gateway.jar --spring.config.location=file:/data/ depends_on: - se-redis + - se-mysql - se-nacos - links: - - se-redis - - se-nacos +# links: +# - se-redis networks: - network-se restart: always @@ -80,12 +83,14 @@ # ports: # - 9200:9200 volumes: + - ./auth/logs:/logs - ./auth:/data environment: TZ: Asia/Shanghai entrypoint: java -jar /data/se-auth.jar --spring.config.location=file:/data/ depends_on: - se-redis + - se-mysql - se-nacos networks: - network-se @@ -96,14 +101,15 @@ # ports: # - 9201:9201 volumes: + - ./system/logs:/logs - ./system:/data environment: TZ: Asia/Shanghai entrypoint: java -jar /data/se-modules-system.jar --spring.config.location=file:/data/ depends_on: - se-redis - - se-nacos - se-mysql + - se-nacos networks: - network-se restart: always @@ -113,15 +119,33 @@ # ports: # - 9300:9300 volumes: + - ./file/logs:/logs - ./file:/data environment: TZ: Asia/Shanghai entrypoint: java -jar /data/se-modules-file.jar --spring.config.location=file:/data/ depends_on: + - se-mysql - se-nacos networks: - network-se restart: always + # se-wgcloud + se-wgcloud: + image: openjdk:8-jre + ports: + - 9999:9999 + volumes: + - ./wgcloud/logs:/log + - ./wgcloud:/data + environment: + TZ: Asia/Shanghai + entrypoint: java -jar /data/wgcloud-server-release.jar --spring.config.location=file:/data/ + depends_on: + - se-mysql + networks: + - network-se + restart: always # nginx se-nginx: image: nginx:latest diff --git a/docker-compose/file/bootstrap.yml b/docker-compose/file/bootstrap.yml index 10e6f14..e03b95e 100644 --- a/docker-compose/file/bootstrap.yml +++ b/docker-compose/file/bootstrap.yml @@ -12,6 +12,8 @@ active: dev cloud: nacos: + username: nacos + password: nAcos_!9#_admIn discovery: # 鏈嶅姟娉ㄥ唽鍦板潃 server-addr: se-nacos:8848 diff --git a/docker-compose/gateway/bootstrap.yml b/docker-compose/gateway/bootstrap.yml index 5672f35..6dca5c9 100644 --- a/docker-compose/gateway/bootstrap.yml +++ b/docker-compose/gateway/bootstrap.yml @@ -12,6 +12,8 @@ active: dev cloud: nacos: + username: nacos + password: nAcos_!9#_admIn discovery: # 鏈嶅姟娉ㄥ唽鍦板潃 server-addr: se-nacos:8848 diff --git a/docker-compose/mysql/initdb/se_cloud_20240629.sql b/docker-compose/mysql/initdb/se_cloud_20240629.sql index edff4ac..6489582 100644 --- a/docker-compose/mysql/initdb/se_cloud_20240629.sql +++ b/docker-compose/mysql/initdb/se_cloud_20240629.sql @@ -270,6 +270,10 @@ -- insert into sys_menu values('1059', '棰勮浠g爜', '115', '4', '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:preview', '#', 'admin', sysdate(), '', null, ''); -- insert into sys_menu values('1060', '鐢熸垚浠g爜', '115', '5', '#', '', '', '', 1, 0, 'F', '0', '0', 'tool:gen:code', '#', 'admin', sysdate(), '', null, ''); +alter table sys_menu add column mark varchar(20) comment '鑿滃崟鏍囪瘑'; +update sys_menu set mark = 'sys' where menu_id < 1070; +-- select * from sys_menu; + -- ---------------------------- -- 6銆佺敤鎴峰拰瑙掕壊鍏宠仈琛� 鐢ㄦ埛N-1瑙掕壊 @@ -385,6 +389,7 @@ -- insert into sys_role_menu values ('2', '1058'); -- insert into sys_role_menu values ('2', '1059'); -- insert into sys_role_menu values ('2', '1060'); +-- select * from sys_role_menu; -- ---------------------------- -- 8銆佽鑹插拰閮ㄩ棬鍏宠仈琛� 瑙掕壊1-N閮ㄩ棬 diff --git a/docker-compose/mysql/initdb/se_config_20231204.sql b/docker-compose/mysql/initdb/se_config_20231204.sql index 79ed49f..47acff3 100644 --- a/docker-compose/mysql/initdb/se_config_20231204.sql +++ b/docker-compose/mysql/initdb/se_config_20231204.sql @@ -214,6 +214,8 @@ UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE ); -INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE); +-- nAcos_!9#_admIn +INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$LnJDlPeP.XbQnr6iabc65OI6kM4LLS/BRLwPHEtRSERErvnmlKkBu', TRUE); +-- INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE); INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN'); diff --git a/docker-compose/mysql/initdb/wgcloud-MySQL.sql b/docker-compose/mysql/initdb/wgcloud-MySQL.sql new file mode 100644 index 0000000..24e2f97 --- /dev/null +++ b/docker-compose/mysql/initdb/wgcloud-MySQL.sql @@ -0,0 +1,307 @@ +-- DROP DATABASE IF EXISTS `wgcloud`; + +CREATE DATABASE IF NOT EXISTS `wgcloud` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +USE `wgcloud`; + +/* +Navicat MySQL Data Transfer + +Source Server : 127.0.0.1 +Source Server Version : 50717 +Source Host : localhost:3306 +Source Database : wgcloud + +Target Server Type : MYSQL +Target Server Version : 50717 +File Encoding : 65001 + +Date: 2021-11-26 20:01:46 +*/ + +SET FOREIGN_KEY_CHECKS=0; + +-- ---------------------------- +-- Table structure for app_info +-- ---------------------------- +DROP TABLE IF EXISTS `APP_INFO`; +CREATE TABLE `APP_INFO` ( + `ID` char(32) NOT NULL, + `HOST_NAME` char(30) DEFAULT NULL, + `APP_PID` char(200) DEFAULT NULL, + `CREATE_TIME` timestamp NULL DEFAULT NULL, + `APP_NAME` varchar(50) DEFAULT NULL, + `CPU_PER` double(8,2) DEFAULT NULL, + `MEM_PER` double(10,2) DEFAULT NULL, + `APP_TYPE` char(1) DEFAULT NULL, + `STATE` char(1) DEFAULT NULL, + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for app_state +-- ---------------------------- +DROP TABLE IF EXISTS `APP_STATE`; +CREATE TABLE `APP_STATE` ( + `ID` char(32) NOT NULL, + `APP_INFO_ID` char(32) DEFAULT NULL, + `CPU_PER` double(8,2) DEFAULT NULL, + `MEM_PER` double(10,2) DEFAULT NULL, + `CREATE_TIME` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`ID`), + KEY `APP_STAT_INDEX` (`APP_INFO_ID`,`CREATE_TIME`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for cpu_state +-- ---------------------------- +DROP TABLE IF EXISTS `CPU_STATE`; +CREATE TABLE `CPU_STATE` ( + `ID` char(32) NOT NULL, + `HOST_NAME` char(30) DEFAULT NULL, + `USER` char(30) DEFAULT NULL, + `SYS` double(8,2) DEFAULT NULL, + `IDLE` double(8,2) DEFAULT NULL, + `IOWAIT` double(8,2) DEFAULT NULL, + `IRQ` char(30) DEFAULT NULL, + `SOFT` char(30) DEFAULT NULL, + `DATE_STR` char(30) DEFAULT NULL, + `CREATE_TIME` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`ID`), + KEY `CPU_ACC_HOST_INDEX` (`HOST_NAME`,`CREATE_TIME`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for db_info +-- ---------------------------- +DROP TABLE IF EXISTS `DB_INFO`; +CREATE TABLE `DB_INFO` ( + `ID` char(32) NOT NULL, + `DBTYPE` char(32) DEFAULT NULL, + `USER` varchar(50) DEFAULT NULL, + `PASSWD` varchar(50) DEFAULT NULL, + `IP` char(20) DEFAULT NULL, + `PORT` char(10) DEFAULT NULL, +-- `CREATE_TIME` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + `CREATE_TIME` timestamp DEFAULT CURRENT_TIMESTAMP, + `DBNAME` char(50) DEFAULT NULL, + `DB_STATE` char(1) DEFAULT NULL, + `ALIAS_NAME` varchar(50) DEFAULT NULL, + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for db_table +-- ---------------------------- +DROP TABLE IF EXISTS `DB_TABLE`; +CREATE TABLE `DB_TABLE` ( + `ID` char(32) NOT NULL, + `TABLE_NAME` varchar(50) DEFAULT NULL, + `WHERE_VAL` varchar(200) DEFAULT NULL, + `CREATE_TIME` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + `REMARK` varchar(50) DEFAULT NULL, + `TABLE_COUNT` bigint(20) DEFAULT NULL, + `DATE_STR` char(30) DEFAULT NULL, + `DBINFO_ID` char(32) DEFAULT NULL, + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for db_table_count +-- ---------------------------- +DROP TABLE IF EXISTS `DB_TABLE_COUNT`; +CREATE TABLE `DB_TABLE_COUNT` ( + `ID` char(32) NOT NULL, + `DB_TABLE_ID` char(32) DEFAULT NULL, + `TABLE_COUNT` bigint(20) DEFAULT NULL, + `DATE_STR` char(30) DEFAULT NULL, + `CREATE_TIME` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for desk_state +-- ---------------------------- +DROP TABLE IF EXISTS `DESK_STATE`; +CREATE TABLE `DESK_STATE` ( + `ID` char(32) NOT NULL, + `HOST_NAME` char(30) DEFAULT NULL, + `FILE_STSTEM` char(50) DEFAULT NULL, + `SIZE` char(30) DEFAULT NULL, + `USED` char(30) DEFAULT NULL, + `AVAIL` char(30) DEFAULT NULL, + `USE_PER` char(10) DEFAULT NULL, + `DATE_STR` char(30) DEFAULT NULL, + `CREATE_TIME` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`ID`), + KEY `DESK_ACC_HOST_INDEX` (`HOST_NAME`,`CREATE_TIME`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for heath_monitor +-- ---------------------------- +DROP TABLE IF EXISTS `HEATH_MONITOR`; +CREATE TABLE `HEATH_MONITOR` ( + `ID` char(32) NOT NULL, + `APP_NAME` char(50) DEFAULT NULL, + `HEATH_URL` varchar(255) DEFAULT NULL, + `CREATE_TIME` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + `HEATH_STATUS` char(10) DEFAULT NULL, + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for host_info +-- ---------------------------- +DROP TABLE IF EXISTS `HOST_INFO`; +CREATE TABLE `HOST_INFO` ( + `ID` char(32) NOT NULL, + `IP` char(30) DEFAULT NULL, + `PORT` char(20) DEFAULT NULL, + `ROOT` char(50) DEFAULT NULL, + `PASSWD` char(50) DEFAULT NULL, + `CREATE_TIME` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + `REMARK` varchar(255) DEFAULT NULL, + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for intrusion_info +-- ---------------------------- +DROP TABLE IF EXISTS `INTRUSION_INFO`; +CREATE TABLE `INTRUSION_INFO` ( + `ID` char(32) NOT NULL, + `HOST_NAME` char(30) DEFAULT NULL, + `LSMOD` text, + `PASSWD_INFO` varchar(100) DEFAULT NULL, + `CRONTAB` text, + `PROMISC` varchar(100) DEFAULT NULL, + `RPCINFO` text, + `CREATE_TIME` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for log_info +-- ---------------------------- +DROP TABLE IF EXISTS `LOG_INFO`; +CREATE TABLE `LOG_INFO` ( + `ID` char(32) NOT NULL, + `HOST_NAME` char(50) DEFAULT NULL, + `INFO_CONTENT` text, + `STATE` char(1) DEFAULT NULL, + `CREATE_TIME` timestamp DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for mail_set +-- ---------------------------- +DROP TABLE IF EXISTS `MAIL_SET`; +CREATE TABLE `MAIL_SET` ( + `ID` char(32) COLLATE utf8_unicode_ci NOT NULL, + `SEND_MAIL` char(60) COLLATE utf8_unicode_ci DEFAULT NULL, + `FROM_MAIL_NAME` char(60) COLLATE utf8_unicode_ci DEFAULT NULL, + `FROM_PWD` char(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `SMTP_HOST` char(50) COLLATE utf8_unicode_ci DEFAULT NULL, + `SMTP_PORT` char(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `SMTP_SSL` char(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `TO_MAIL` char(200) COLLATE utf8_unicode_ci DEFAULT NULL, + `CPU_PER` char(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `CREATE_TIME` timestamp NULL DEFAULT NULL, + `MEM_PER` char(30) COLLATE utf8_unicode_ci DEFAULT NULL, + `HEATH_PER` char(30) COLLATE utf8_unicode_ci DEFAULT NULL, + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- ---------------------------- +-- Table structure for mem_state +-- ---------------------------- +DROP TABLE IF EXISTS `MEM_STATE`; +CREATE TABLE `MEM_STATE` ( + `ID` char(32) NOT NULL, + `HOST_NAME` char(30) DEFAULT NULL, + `TOTAL` char(30) DEFAULT NULL, + `USED` char(30) DEFAULT NULL, + `FREE` char(30) DEFAULT NULL, + `USE_PER` double(8,2) DEFAULT NULL, + `DATE_STR` char(30) DEFAULT NULL, + `CREATE_TIME` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`ID`), + KEY `MEM_ACC_HOST_INDEX` (`HOST_NAME`,`CREATE_TIME`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for netio_state +-- ---------------------------- +DROP TABLE IF EXISTS `NETIO_STATE`; +CREATE TABLE `NETIO_STATE` ( + `ID` char(32) NOT NULL, + `HOST_NAME` char(30) DEFAULT NULL, + `RXPCK` char(30) DEFAULT NULL, + `TXPCK` char(30) DEFAULT NULL, + `RXBYT` char(30) DEFAULT NULL, + `TXBYT` char(30) DEFAULT NULL, + `RXCMP` char(30) DEFAULT NULL, + `TXCMP` char(30) DEFAULT NULL, + `RXMCST` char(30) DEFAULT NULL, + `DATE_STR` char(30) DEFAULT NULL, + `CREATE_TIME` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`ID`), + KEY `NETIO_ACC_HOST_INDEX` (`HOST_NAME`,`CREATE_TIME`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for system_info +-- ---------------------------- +DROP TABLE IF EXISTS `SYSTEM_INFO`; +CREATE TABLE `SYSTEM_INFO` ( + `ID` char(32) NOT NULL, + `HOST_NAME` char(30) DEFAULT NULL, + `VERSION` char(100) DEFAULT NULL, + `VERSION_DETAIL` char(200) DEFAULT NULL, + `CPU_PER` double(8,2) DEFAULT NULL, + `MEM_PER` double(8,2) DEFAULT NULL, + `CPU_CORE_NUM` char(10) DEFAULT NULL, + `CREATE_TIME` timestamp NULL DEFAULT NULL, + `CPU_XH` char(150) DEFAULT NULL, + `STATE` char(1) DEFAULT NULL, + `REMARK` varchar(50) DEFAULT NULL, + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for sys_load_state +-- ---------------------------- +DROP TABLE IF EXISTS `SYS_LOAD_STATE`; +CREATE TABLE `SYS_LOAD_STATE` ( + `ID` char(32) NOT NULL, + `HOST_NAME` char(30) DEFAULT NULL, + `ONE_LOAD` double(8,2) DEFAULT NULL, + `FIVE_LOAD` double(8,2) DEFAULT NULL, + `FIFTEEN_LOAD` double(8,2) DEFAULT NULL, + `USERS` char(10) DEFAULT NULL, + `DATE_STR` char(30) DEFAULT NULL, + `CREATE_TIME` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`ID`), + KEY `LOAD_ACC_HOST_INDEX` (`HOST_NAME`,`CREATE_TIME`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for tcp_state +-- ---------------------------- +DROP TABLE IF EXISTS `TCP_STATE`; +CREATE TABLE `TCP_STATE` ( + `ID` char(32) NOT NULL, + `HOST_NAME` char(30) DEFAULT NULL, + `ACTIVE` char(30) DEFAULT NULL, + `PASSIVE` char(30) DEFAULT NULL, + `RETRANS` char(30) DEFAULT NULL, + `DATE_STR` char(30) DEFAULT NULL, + `CREATE_TIME` timestamp NULL DEFAULT NULL, + PRIMARY KEY (`ID`), + KEY `TCP_ACC_HOST_INDEX` (`HOST_NAME`,`CREATE_TIME`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/docker-compose/nacos/conf/application.properties b/docker-compose/nacos/conf/application.properties index f6169c8..86a2238 100644 --- a/docker-compose/nacos/conf/application.properties +++ b/docker-compose/nacos/conf/application.properties @@ -149,25 +149,25 @@ nacos.core.auth.system.type=nacos ### If turn on auth system: -nacos.core.auth.enabled=false +nacos.core.auth.enabled=true ### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay. nacos.core.auth.caching.enabled=true ### Since 1.4.1, Turn on/off white auth for user-agent: nacos-server, only for upgrade from old version. -nacos.core.auth.enable.userAgentAuthWhite=true +nacos.core.auth.enable.userAgentAuthWhite=false ### Since 1.4.1, worked when nacos.core.auth.enabled=true and nacos.core.auth.enable.userAgentAuthWhite=false. ### The two properties is the white list for auth and used by identity the request from other server. -nacos.core.auth.server.identity.key= -nacos.core.auth.server.identity.value= +nacos.core.auth.server.identity.key=admin +nacos.core.auth.server.identity.value=nAcos_!9#_admIn ### worked when nacos.core.auth.system.type=nacos ### The token expiration in seconds: nacos.core.auth.plugin.nacos.token.cache.enable=false nacos.core.auth.plugin.nacos.token.expire.seconds=18000 -### The default token (Base64 String): -nacos.core.auth.plugin.nacos.token.secret.key=VGhpc0lzTXlDdXN0b21TZWNyZXRLZXkwMTIzNDU2Nzg= +### The default token (Base64 String): https://base64.us/ +nacos.core.auth.plugin.nacos.token.secret.key=VGhpc0lzTXljVXN0b21TZWNyZXRLZTkwMTIzNDU2Nzg= ### worked when nacos.core.auth.system.type=ldap锛寋0} is Placeholder,replace login username #nacos.core.auth.ldap.url=ldap://localhost:389 diff --git a/docker-compose/nginx/conf/nginx.conf b/docker-compose/nginx/conf/nginx.conf index 47c0c36..7582db2 100644 --- a/docker-compose/nginx/conf/nginx.conf +++ b/docker-compose/nginx/conf/nginx.conf @@ -50,6 +50,15 @@ proxy_pass http://se-gateway:8080/; } + location /wgcloud { + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header REMOTE-HOST $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + + proxy_pass http://se-wgcloud:9999/wgcloud; + } + # actuator if ($request_uri ~ "/actuator") { return 403; diff --git a/docker-compose/system/bootstrap.yml b/docker-compose/system/bootstrap.yml index 68120e5..2a1984f 100644 --- a/docker-compose/system/bootstrap.yml +++ b/docker-compose/system/bootstrap.yml @@ -12,6 +12,8 @@ active: dev cloud: nacos: + username: nacos + password: nAcos_!9#_admIn discovery: # 鏈嶅姟娉ㄥ唽鍦板潃 server-addr: se-nacos:8848 @@ -23,3 +25,4 @@ # 鍏变韩閰嶇疆 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} +enableEncrypt: false \ No newline at end of file diff --git a/docker-compose/wgcloud/application.yml b/docker-compose/wgcloud/application.yml new file mode 100644 index 0000000..e0b5bb7 --- /dev/null +++ b/docker-compose/wgcloud/application.yml @@ -0,0 +1,84 @@ +server: + port: 9999 + servlet: + session: + timeout: 120m + context-path: /wgcloud +#鏃ュ織鏂囦欢杈撳嚭璺緞 +logging: + file: + path: ./log +# 鏁版嵁搴� 鐩稿叧璁剧疆 +spring: + application: + name: wgcloud-server + datasource: + driver-class-name: com.mysql.jdbc.Driver + url: jdbc:mysql://se-mysql:3306/wgcloud?characterEncoding=utf-8&characterSetResults=utf8&autoReconnect=true&useSSL=false&allowMultiQueries=true + username: root + password: My_Sql_s!E_v5.7 + # hikari杩炴帴姹犵殑鍙傛暟 鐩稿叧璁剧疆 + hikari: + # 鐢熸晥瓒呮椂 + validationTimeout: 3000 + # 瀹氫箟鑾峰彇杩炴帴鐨勮秴鏃舵椂闂淬�傛渶灏�250ms,榛樿30s + connectionTimeout: 60000 + # 瀹氫箟杩炴帴绌洪棽鏃堕棿銆傛渶灏�10s,榛樿10m + idleTimeout: 60000 + # 瀹氫箟鏈�灏忕殑绌洪棽杩炴帴鏁般�傛帹鑽愪笉璁剧疆銆傛垨涓庢渶澶ц繛鎺ユ暟涓�鑷达紱淇濇寔鍥哄畾鐨勮繛鎺ユ暟鐩� + minimumIdle: 10 + # 瀹氫箟鏈�澶х殑杩炴帴鏁般�傞粯璁�10 + maximumPoolSize: 10 + # 瀹氫箟杩炴帴鐨勬渶澶х敓鍛藉懆鏈熴�傛帹鑽愯缃灞炴�с�傛渶灏�30s锛岄粯璁�30m + maxLifeTime: 60000 + # 浠庤繛鎺ユ睜鑾峰彇鍒拌繛鎺ュ悗锛岃繘琛屾鏌ョ殑鏌ヨ璇彞銆傛帹鑽愯缃灞炴�с�傞粯璁ゅ�间负none + connectionTestQuery: select 1 + mvc: + static-path-pattern: /static/** + thymeleaf: + cache: false + +#Mybatis閰嶇疆 +mybatis: + config-location: classpath:mybatis/mybatis-config.xml + mapper-locations: classpath:mybatis/mapper/*.xml + +#鑷畾涔夐厤缃弬鏁� +base: + #鐧婚檰璐﹀彿admin鐨勫瘑鐮� + admindPwd: 111111 + #閫氫俊token锛宎gent绔拰姝や繚鎸佷竴鑷� + wgToken: wgcloud + #鏄惁寮�鍚叕浼楃湅鏉匡紝yes寮�鍚紝no鍏抽棴锛屽叕浼楃湅鏉块〉闈㈡棤闇�鐧婚檰 + dashView: yes + # 鍒濆鍖栨搷浣� + initTaskTimes: 10000 + # 妫�娴嬩富鏈烘槸鍚﹀凡缁忎笅绾� + hostDownCheckTimes: 10000 + #鏈嶅姟鎺ュ彛鐩戞帶闂撮殧锛屽崟浣嶆绉� + heathTimes: 10000 + #鏁版嵁搴撶洃鎺ч棿闅�,鍗曚綅姣 + dbInfoTimes: 10000 + #鏁版嵁琛ㄧ洃鎺ч棿闅�,鍗曚綅姣 + dbTableTimes: 10000 + # 鎵归噺鎻愪氦鏁版嵁 + commitTaskTimes: 10000 + +#鍛婅閰嶇疆 +mail: + #鍛婅閭欢鎬诲紑鍏筹紝yes寮�鍚紝no鍏抽棴 + allWarnMail: yes + #鐩戞帶涓绘満鍐呭瓨浣跨敤鐜�%鎶ヨ鍊硷紝瓒呰繃姝ゅ�煎嵆鍙戦�侀偖浠舵姤璀� + memWarnVal: 98 + #鐩戞帶涓绘満cpu浣跨敤鐜�%鎶ヨ鍊硷紝瓒呰繃姝ゅ�煎嵆鍙戦�侀偖浠舵姤璀� + cpuWarnVal: 98 + #鍐呭瓨鍛婅閭欢寮�鍏筹紝yes寮�鍚紝no鍏抽棴銆傛�诲紑鍏冲紑鍚悗锛屾澶勮缃墠浼氱敓鏁堛�備互涓嬪紑鍏冲潎閬靛惊姝よ鍒欍�� + memWarnMail: yes + #CPU鍛婅閭欢寮�鍏筹紝yes寮�鍚紝no鍏抽棴 + cpuWarnMail: yes + #涓绘満涓嬬嚎鍛婅閭欢寮�鍏筹紝yes寮�鍚紝no鍏抽棴 + hostDownWarnMail: yes + #杩涚▼涓嬬嚎鍛婅閭欢寮�鍏筹紝yes寮�鍚紝no鍏抽棴 + appDownWarnMail: yes + #鏈嶅姟鎺ュ彛鍛婅閭欢寮�鍏筹紝yes寮�鍚紝no鍏抽棴 + heathWarnMail: yes \ No newline at end of file diff --git a/se-auth/pom.xml b/se-auth/pom.xml index 711eefa..6dad247 100644 --- a/se-auth/pom.xml +++ b/se-auth/pom.xml @@ -51,14 +51,6 @@ <groupId>com.se</groupId> <artifactId>se-common-security</artifactId> </dependency> - - <!--lombok--> - <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - <version>1.18.22</version> - <optional>true</optional> - </dependency> </dependencies> <build> diff --git a/se-auth/se-auth.iml b/se-auth/se-auth.iml index bd45c6c..489f425 100644 --- a/se-auth/se-auth.iml +++ b/se-auth/se-auth.iml @@ -163,7 +163,6 @@ <orderEntry type="library" name="Maven: io.lettuce:lettuce-core:6.1.10.RELEASE" level="project" /> <orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.4.34" level="project" /> <orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.4" level="project" /> - <orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.30" level="project" /> <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-bootstrap:3.1.7" level="project" /> <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:3.1.7" level="project" /> <orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.11.RELEASE" level="project" /> diff --git a/se-auth/src/main/java/com/se/auth/controller/TokenController.java b/se-auth/src/main/java/com/se/auth/controller/TokenController.java index 7cba290..3f34d1f 100644 --- a/se-auth/src/main/java/com/se/auth/controller/TokenController.java +++ b/se-auth/src/main/java/com/se/auth/controller/TokenController.java @@ -5,7 +5,9 @@ import com.se.auth.form.LoginBody; import com.se.auth.form.RegisterBody; import com.se.auth.service.SysLoginService; +import com.se.common.core.utils.AesUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import com.se.common.core.domain.R; import com.se.common.core.utils.JwtUtils; @@ -21,17 +23,21 @@ * @author admin */ @RestController -public class TokenController -{ +public class TokenController { @Autowired private TokenService tokenService; @Autowired private SysLoginService sysLoginService; + @Value("${enableEncrypt}") + boolean enableEncrypt; + @PostMapping("login") - public R<?> login(@RequestBody LoginBody form) - { + public R<?> login(@RequestBody LoginBody form) throws Exception { + if (enableEncrypt && !StringUtils.isEmpty(form.getPassword())) { + form.setPassword(AesUtils.decrypt(form.getPassword())); + } // 鐢ㄦ埛鐧诲綍 LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword()); // 鑾峰彇鐧诲綍token @@ -56,11 +62,9 @@ } @DeleteMapping("logout") - public R<?> logout(HttpServletRequest request) - { + public R<?> logout(HttpServletRequest request) { String token = SecurityUtils.getToken(request); - if (StringUtils.isNotEmpty(token)) - { + if (StringUtils.isNotEmpty(token)) { String username = JwtUtils.getUserName(token); // 鍒犻櫎鐢ㄦ埛缂撳瓨璁板綍 AuthUtil.logoutByToken(token); @@ -71,11 +75,9 @@ } @PostMapping("refresh") - public R<?> refresh(HttpServletRequest request) - { + public R<?> refresh(HttpServletRequest request) { LoginUser loginUser = tokenService.getLoginUser(request); - if (StringUtils.isNotNull(loginUser)) - { + if (StringUtils.isNotNull(loginUser)) { // 鍒锋柊浠ょ墝鏈夋晥鏈� tokenService.refreshToken(loginUser); return R.ok(); @@ -83,11 +85,11 @@ return R.ok(); } - @PostMapping("register") + /*@PostMapping("register") public R<?> register(@RequestBody RegisterBody registerBody) { // 鐢ㄦ埛娉ㄥ唽 sysLoginService.register(registerBody.getUsername(), registerBody.getPassword()); return R.ok(); - } + }*/ } diff --git a/se-auth/src/main/java/com/se/auth/service/AsyncService.java b/se-auth/src/main/java/com/se/auth/service/AsyncService.java deleted file mode 100644 index 4c59740..0000000 --- a/se-auth/src/main/java/com/se/auth/service/AsyncService.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.se.auth.service; - -import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; - -/** - * 寮傛鏈嶅姟 - * - * @author WWW - * @date 2024-08-25 - */ -@Slf4j -@Service -@SuppressWarnings("ALL") -public class AsyncService { - public void asyncCall() { - try { - ExecutorService executor = Executors.newSingleThreadExecutor(); - executor.execute(new Runnable() { - @Override - @SneakyThrows - public void run() { - // - } - }); - executor.shutdown(); - } catch (Exception ex) { - log.error(ex.getMessage(), ex); - } - } -} diff --git a/se-auth/src/main/resources/bootstrap.yml b/se-auth/src/main/resources/bootstrap.yml index 5e1086f..5b028cd 100644 --- a/se-auth/src/main/resources/bootstrap.yml +++ b/se-auth/src/main/resources/bootstrap.yml @@ -12,16 +12,17 @@ active: dev cloud: nacos: + username: nacos + password: nAcos_!9#_admIn discovery: # 鏈嶅姟娉ㄥ唽鍦板潃 - #server-addr: 192.168.11.203:8848 server-addr: 127.0.0.1:8848 config: # 閰嶇疆涓績鍦板潃 - #server-addr: 192.168.11.203:8848 server-addr: 127.0.0.1:8848 # 閰嶇疆鏂囦欢鏍煎紡 file-extension: yml # 鍏变韩閰嶇疆 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} +enableEncrypt: false \ No newline at end of file diff --git a/se-common/se-common-core/src/main/java/com/se/common/core/utils/AesUtils.java b/se-common/se-common-core/src/main/java/com/se/common/core/utils/AesUtils.java index 1076e28..bf450f6 100644 --- a/se-common/se-common-core/src/main/java/com/se/common/core/utils/AesUtils.java +++ b/se-common/se-common-core/src/main/java/com/se/common/core/utils/AesUtils.java @@ -15,7 +15,7 @@ /** * 瀵嗛挜闀垮害蹇呴』鏄�16 */ - private static final String DEFAULT_KEY = "A#s_zZ_sErve_k.y"; + private static final String DEFAULT_KEY = "A#s_zZ3seRve_k.y"; private static final String KEY_ALGORITHM = "AES"; diff --git a/se-gateway/src/main/resources/bootstrap.yml b/se-gateway/src/main/resources/bootstrap.yml index a33bfe4..c10a471 100644 --- a/se-gateway/src/main/resources/bootstrap.yml +++ b/se-gateway/src/main/resources/bootstrap.yml @@ -12,13 +12,13 @@ active: dev cloud: nacos: + username: nacos + password: nAcos_!9#_admIn discovery: # 鏈嶅姟娉ㄥ唽鍦板潃 - #server-addr: 192.168.11.203:8848 server-addr: 127.0.0.1:8848 config: # 閰嶇疆涓績鍦板潃 - #server-addr: 192.168.11.203:8848 server-addr: 127.0.0.1:8848 # 閰嶇疆鏂囦欢鏍煎紡 file-extension: yml @@ -35,7 +35,6 @@ datasource: ds1: nacos: - #server-addr: 192.168.11.203:8848 server-addr: 127.0.0.1:8848 dataId: sentinel-se-gateway groupId: DEFAULT_GROUP diff --git a/se-modules/se-file/src/main/resources/bootstrap.yml b/se-modules/se-file/src/main/resources/bootstrap.yml index f39b515..3204f87 100644 --- a/se-modules/se-file/src/main/resources/bootstrap.yml +++ b/se-modules/se-file/src/main/resources/bootstrap.yml @@ -12,6 +12,8 @@ active: dev cloud: nacos: + username: nacos + password: nAcos_!9#_admIn discovery: # 鏈嶅姟娉ㄥ唽鍦板潃 server-addr: 127.0.0.1:8848 diff --git a/se-modules/se-job/src/main/resources/bootstrap.yml b/se-modules/se-job/src/main/resources/bootstrap.yml index 1051ccf..94beb34 100644 --- a/se-modules/se-job/src/main/resources/bootstrap.yml +++ b/se-modules/se-job/src/main/resources/bootstrap.yml @@ -12,6 +12,8 @@ active: dev cloud: nacos: + username: nacos + password: nAcos_!9#_admIn discovery: # 鏈嶅姟娉ㄥ唽鍦板潃 server-addr: 127.0.0.1:8848 diff --git a/se-modules/se-system/pom.xml b/se-modules/se-system/pom.xml index 48aa313..10ee629 100644 --- a/se-modules/se-system/pom.xml +++ b/se-modules/se-system/pom.xml @@ -78,6 +78,13 @@ <artifactId>se-common-swagger</artifactId> </dependency> + <!--lombok--> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>1.18.22</version> + <optional>true</optional> + </dependency> </dependencies> <build> diff --git a/se-modules/se-system/src/main/java/com/se/system/controller/SysMenuController.java b/se-modules/se-system/src/main/java/com/se/system/controller/SysMenuController.java index 4b87041..6dfeba5 100644 --- a/se-modules/se-system/src/main/java/com/se/system/controller/SysMenuController.java +++ b/se-modules/se-system/src/main/java/com/se/system/controller/SysMenuController.java @@ -151,10 +151,30 @@ * @return 璺敱淇℃伅 */ @GetMapping("getRouters") - public AjaxResult getRouters() + public AjaxResult getRouters(String mark) { + Long userId = SecurityUtils.getUserId(); + if (StringUtils.isEmpty(mark)) { + mark = "sys"; + } + if ("all".equals(mark)) { + mark = null; + } + + List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId, mark); + return success(menuService.buildMenus(menus)); + } + + /** + * 鏍规嵁鏍囪瘑鑾峰彇鑿滃崟 + * + * @return 鑿滃崟 + */ + @GetMapping("getMenusByMark") + public AjaxResult getMenusByMark(String mark) { Long userId = SecurityUtils.getUserId(); - List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId); - return success(menuService.buildMenus(menus)); + List<SysMenu> menus = menuService.selectMenusByUserIdAndMark(userId, mark); + + return success(menus); } } \ No newline at end of file diff --git a/se-modules/se-system/src/main/java/com/se/system/controller/SysProfileController.java b/se-modules/se-system/src/main/java/com/se/system/controller/SysProfileController.java index 2cfdc41..6201f36 100644 --- a/se-modules/se-system/src/main/java/com/se/system/controller/SysProfileController.java +++ b/se-modules/se-system/src/main/java/com/se/system/controller/SysProfileController.java @@ -1,7 +1,10 @@ package com.se.system.controller; import java.util.Arrays; + +import com.se.common.core.utils.AesUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -33,25 +36,30 @@ */ @RestController @RequestMapping("/user/profile") -public class SysProfileController extends BaseController -{ +public class SysProfileController extends BaseController { @Autowired private ISysUserService userService; - + @Autowired private TokenService tokenService; - + @Autowired private RemoteFileService remoteFileService; + + @Value("${enableEncrypt}") + boolean enableEncrypt; /** * 涓汉淇℃伅 */ @GetMapping - public AjaxResult profile() - { + public AjaxResult profile() { String username = SecurityUtils.getUsername(); SysUser user = userService.selectUserByUserName(username); + if (null != user) { + // 璁剧疆瀵嗙爜涓虹┖ + user.setPassword(null); + } AjaxResult ajax = AjaxResult.success(user); ajax.put("roleGroup", userService.selectUserRoleGroup(username)); ajax.put("postGroup", userService.selectUserPostGroup(username)); @@ -63,24 +71,20 @@ */ @Log(title = "涓汉淇℃伅", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult updateProfile(@RequestBody SysUser user) - { + public AjaxResult updateProfile(@RequestBody SysUser user) { LoginUser loginUser = SecurityUtils.getLoginUser(); SysUser currentUser = loginUser.getSysUser(); currentUser.setNickName(user.getNickName()); currentUser.setEmail(user.getEmail()); currentUser.setPhonenumber(user.getPhonenumber()); currentUser.setSex(user.getSex()); - if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(currentUser)) - { + if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(currentUser)) { return error("淇敼鐢ㄦ埛'" + loginUser.getUsername() + "'澶辫触锛屾墜鏈哄彿鐮佸凡瀛樺湪"); } - if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(currentUser)) - { + if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(currentUser)) { return error("淇敼鐢ㄦ埛'" + loginUser.getUsername() + "'澶辫触锛岄偖绠辫处鍙峰凡瀛樺湪"); } - if (userService.updateUserProfile(currentUser)) - { + if (userService.updateUserProfile(currentUser)) { // 鏇存柊缂撳瓨鐢ㄦ埛淇℃伅 tokenService.setLoginUser(loginUser); return success(); @@ -93,22 +97,21 @@ */ @Log(title = "涓汉淇℃伅", businessType = BusinessType.UPDATE) @PutMapping("/updatePwd") - public AjaxResult updatePwd(String oldPassword, String newPassword) - { + public AjaxResult updatePwd(String oldPassword, String newPassword) throws Exception { String username = SecurityUtils.getUsername(); SysUser user = userService.selectUserByUserName(username); + if (enableEncrypt && !StringUtils.isEmpty(user.getPassword())) { + user.setPassword(AesUtils.decrypt(user.getPassword())); + } String password = user.getPassword(); - if (!SecurityUtils.matchesPassword(oldPassword, password)) - { + if (!SecurityUtils.matchesPassword(oldPassword, password)) { return error("淇敼瀵嗙爜澶辫触锛屾棫瀵嗙爜閿欒"); } - if (SecurityUtils.matchesPassword(newPassword, password)) - { + if (SecurityUtils.matchesPassword(newPassword, password)) { return error("鏂板瘑鐮佷笉鑳戒笌鏃у瘑鐮佺浉鍚�"); } newPassword = SecurityUtils.encryptPassword(newPassword); - if (userService.resetUserPwd(username, newPassword) > 0) - { + if (userService.resetUserPwd(username, newPassword) > 0) { // 鏇存柊缂撳瓨鐢ㄦ埛瀵嗙爜 LoginUser loginUser = SecurityUtils.getLoginUser(); loginUser.getSysUser().setPassword(newPassword); @@ -117,30 +120,25 @@ } return error("淇敼瀵嗙爜寮傚父锛岃鑱旂郴绠$悊鍛�"); } - + /** * 澶村儚涓婁紶 */ @Log(title = "鐢ㄦ埛澶村儚", businessType = BusinessType.UPDATE) @PostMapping("/avatar") - public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) - { - if (!file.isEmpty()) - { + public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) { + if (!file.isEmpty()) { LoginUser loginUser = SecurityUtils.getLoginUser(); String extension = FileTypeUtils.getExtension(file); - if (!StringUtils.equalsAnyIgnoreCase(extension, MimeTypeUtils.IMAGE_EXTENSION)) - { + if (!StringUtils.equalsAnyIgnoreCase(extension, MimeTypeUtils.IMAGE_EXTENSION)) { return error("鏂囦欢鏍煎紡涓嶆纭紝璇蜂笂浼�" + Arrays.toString(MimeTypeUtils.IMAGE_EXTENSION) + "鏍煎紡"); } R<SysFile> fileResult = remoteFileService.upload(file); - if (StringUtils.isNull(fileResult) || StringUtils.isNull(fileResult.getData())) - { + if (StringUtils.isNull(fileResult) || StringUtils.isNull(fileResult.getData())) { return error("鏂囦欢鏈嶅姟寮傚父锛岃鑱旂郴绠$悊鍛�"); } String url = fileResult.getData().getUrl(); - if (userService.updateUserAvatar(loginUser.getUsername(), url)) - { + if (userService.updateUserAvatar(loginUser.getUsername(), url)) { AjaxResult ajax = AjaxResult.success(); ajax.put("imgUrl", url); // 鏇存柊缂撳瓨鐢ㄦ埛澶村儚 diff --git a/se-modules/se-system/src/main/java/com/se/system/controller/SysUserController.java b/se-modules/se-system/src/main/java/com/se/system/controller/SysUserController.java index b6d3ea3..34177f6 100644 --- a/se-modules/se-system/src/main/java/com/se/system/controller/SysUserController.java +++ b/se-modules/se-system/src/main/java/com/se/system/controller/SysUserController.java @@ -5,8 +5,12 @@ import java.util.Set; import java.util.stream.Collectors; import javax.servlet.http.HttpServletResponse; + +import com.se.common.core.utils.AesUtils; import org.apache.commons.lang3.ArrayUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -32,12 +36,7 @@ import com.se.system.api.domain.SysRole; import com.se.system.api.domain.SysUser; import com.se.system.api.model.LoginUser; -import com.se.system.service.ISysConfigService; -import com.se.system.service.ISysDeptService; -import com.se.system.service.ISysPermissionService; -import com.se.system.service.ISysPostService; -import com.se.system.service.ISysRoleService; -import com.se.system.service.ISysUserService; +import com.se.system.service.*; /** * 鐢ㄦ埛淇℃伅 @@ -46,8 +45,7 @@ */ @RestController @RequestMapping("/user") -public class SysUserController extends BaseController -{ +public class SysUserController extends BaseController { @Autowired private ISysUserService userService; @@ -66,24 +64,37 @@ @Autowired private ISysConfigService configService; + @Value("${enableEncrypt}") + boolean enableEncrypt; + /** * 鑾峰彇鐢ㄦ埛鍒楄〃 */ @RequiresPermissions("system:user:list") @GetMapping("/list") - public TableDataInfo list(SysUser user) - { + public TableDataInfo list(SysUser user) { startPage(); List<SysUser> list = userService.selectUserList(user); + if (!CollectionUtils.isEmpty(list)) { + for (SysUser sysUser : list) { + // 璁剧疆瀵嗙爜涓虹┖ + sysUser.setPassword(null); + } + } return getDataTable(list); } @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.EXPORT) @RequiresPermissions("system:user:export") @PostMapping("/export") - public void export(HttpServletResponse response, SysUser user) - { + public void export(HttpServletResponse response, SysUser user) { List<SysUser> list = userService.selectUserList(user); + if (!CollectionUtils.isEmpty(list)) { + for (SysUser sysUser : list) { + // 璁剧疆瀵嗙爜涓虹┖ + sysUser.setPassword(null); + } + } ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); util.exportExcel(response, list, "鐢ㄦ埛鏁版嵁"); } @@ -91,8 +102,7 @@ @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.IMPORT) @RequiresPermissions("system:user:import") @PostMapping("/importData") - public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception - { + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception { ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); List<SysUser> userList = util.importExcel(file.getInputStream()); String operName = SecurityUtils.getUsername(); @@ -101,8 +111,7 @@ } @PostMapping("/importTemplate") - public void importTemplate(HttpServletResponse response) throws IOException - { + public void importTemplate(HttpServletResponse response) throws IOException { ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class); util.importTemplateExcel(response, "鐢ㄦ埛鏁版嵁"); } @@ -112,13 +121,13 @@ */ @InnerAuth @GetMapping("/info/{username}") - public R<LoginUser> info(@PathVariable("username") String username) - { + public R<LoginUser> info(@PathVariable("username") String username) { SysUser sysUser = userService.selectUserByUserName(username); - if (StringUtils.isNull(sysUser)) - { + if (StringUtils.isNull(sysUser)) { return R.fail("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒"); } + // 璁剧疆瀵嗙爜涓虹┖ + //sysUser.setPassword(null); // 瑙掕壊闆嗗悎 Set<String> roles = permissionService.getRolePermission(sysUser); // 鏉冮檺闆嗗悎 @@ -135,38 +144,38 @@ */ @InnerAuth @PostMapping("/register") - public R<Boolean> register(@RequestBody SysUser sysUser) - { + public R<Boolean> register(@RequestBody SysUser sysUser) { String username = sysUser.getUserName(); - if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) - { + if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { return R.fail("褰撳墠绯荤粺娌℃湁寮�鍚敞鍐屽姛鑳斤紒"); } - if (!userService.checkUserNameUnique(sysUser)) - { + if (!userService.checkUserNameUnique(sysUser)) { return R.fail("淇濆瓨鐢ㄦ埛'" + username + "'澶辫触锛屾敞鍐岃处鍙峰凡瀛樺湪"); } return R.ok(userService.registerUser(sysUser)); } /** - *璁板綍鐢ㄦ埛鐧诲綍IP鍦板潃鍜岀櫥褰曟椂闂� + * 璁板綍鐢ㄦ埛鐧诲綍IP鍦板潃鍜岀櫥褰曟椂闂� */ @InnerAuth @PutMapping("/recordlogin") - public R<Boolean> recordlogin(@RequestBody SysUser sysUser) - { + public R<Boolean> recordlogin(@RequestBody SysUser sysUser) { return R.ok(userService.updateUserProfile(sysUser)); } /** * 鑾峰彇鐢ㄦ埛淇℃伅 - * + * * @return 鐢ㄦ埛淇℃伅 */ @GetMapping("getInfo") public AjaxResult getInfo() { SysUser user = userService.selectUserById(SecurityUtils.getUserId()); + if (null != user) { + // 璁剧疆瀵嗙爜涓虹┖ + user.setPassword(null); + } // 瑙掕壊闆嗗悎 Set<String> roles = permissionService.getRolePermission(user); // 鏉冮檺闆嗗悎 @@ -185,17 +194,19 @@ * 鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇璇︾粏淇℃伅 */ @RequiresPermissions("system:user:query") - @GetMapping(value = { "/", "/{userId}" }) - public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) - { + @GetMapping(value = {"/", "/{userId}"}) + public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) { userService.checkUserDataScope(userId); AjaxResult ajax = AjaxResult.success(); List<SysRole> roles = roleService.selectRoleAll(); ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); ajax.put("posts", postService.selectPostAll()); - if (StringUtils.isNotNull(userId)) - { + if (StringUtils.isNotNull(userId)) { SysUser sysUser = userService.selectUserById(userId); + if (null != sysUser) { + // 璁剧疆瀵嗙爜涓虹┖ + sysUser.setPassword(null); + } ajax.put(AjaxResult.DATA_TAG, sysUser); ajax.put("postIds", postService.selectPostListByUserId(userId)); ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList())); @@ -209,21 +220,18 @@ @RequiresPermissions("system:user:add") @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.INSERT) @PostMapping - public AjaxResult add(@Validated @RequestBody SysUser user) - { + public AjaxResult add(@Validated @RequestBody SysUser user) throws Exception { deptService.checkDeptDataScope(user.getDeptId()); roleService.checkRoleDataScope(user.getRoleIds()); - if (!userService.checkUserNameUnique(user)) - { + if (!userService.checkUserNameUnique(user)) { return error("鏂板鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岀櫥褰曡处鍙峰凡瀛樺湪"); - } - else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) - { + } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { return error("鏂板鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛屾墜鏈哄彿鐮佸凡瀛樺湪"); - } - else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) - { + } else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { return error("鏂板鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岄偖绠辫处鍙峰凡瀛樺湪"); + } + if (enableEncrypt && !StringUtils.isEmpty(user.getPassword())) { + user.setPassword(AesUtils.decrypt(user.getPassword())); } user.setCreateBy(SecurityUtils.getUsername()); user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); @@ -236,22 +244,16 @@ @RequiresPermissions("system:user:edit") @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.UPDATE) @PutMapping - public AjaxResult edit(@Validated @RequestBody SysUser user) - { + public AjaxResult edit(@Validated @RequestBody SysUser user) { userService.checkUserAllowed(user); userService.checkUserDataScope(user.getUserId()); deptService.checkDeptDataScope(user.getDeptId()); roleService.checkRoleDataScope(user.getRoleIds()); - if (!userService.checkUserNameUnique(user)) - { + if (!userService.checkUserNameUnique(user)) { return error("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岀櫥褰曡处鍙峰凡瀛樺湪"); - } - else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) - { + } else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user)) { return error("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛屾墜鏈哄彿鐮佸凡瀛樺湪"); - } - else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) - { + } else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) { return error("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岄偖绠辫处鍙峰凡瀛樺湪"); } user.setUpdateBy(SecurityUtils.getUsername()); @@ -264,10 +266,8 @@ @RequiresPermissions("system:user:remove") @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.DELETE) @DeleteMapping("/{userIds}") - public AjaxResult remove(@PathVariable Long[] userIds) - { - if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) - { + public AjaxResult remove(@PathVariable Long[] userIds) { + if (ArrayUtils.contains(userIds, SecurityUtils.getUserId())) { return error("褰撳墠鐢ㄦ埛涓嶈兘鍒犻櫎"); } return toAjax(userService.deleteUserByIds(userIds)); @@ -279,10 +279,12 @@ @RequiresPermissions("system:user:edit") @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.UPDATE) @PutMapping("/resetPwd") - public AjaxResult resetPwd(@RequestBody SysUser user) - { + public AjaxResult resetPwd(@RequestBody SysUser user) throws Exception { userService.checkUserAllowed(user); userService.checkUserDataScope(user.getUserId()); + if (enableEncrypt && !StringUtils.isEmpty(user.getPassword())) { + user.setPassword(AesUtils.decrypt(user.getPassword())); + } user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); user.setUpdateBy(SecurityUtils.getUsername()); return toAjax(userService.resetPwd(user)); @@ -294,8 +296,7 @@ @RequiresPermissions("system:user:edit") @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.UPDATE) @PutMapping("/changeStatus") - public AjaxResult changeStatus(@RequestBody SysUser user) - { + public AjaxResult changeStatus(@RequestBody SysUser user) { userService.checkUserAllowed(user); userService.checkUserDataScope(user.getUserId()); user.setUpdateBy(SecurityUtils.getUsername()); @@ -307,8 +308,7 @@ */ @RequiresPermissions("system:user:query") @GetMapping("/authRole/{userId}") - public AjaxResult authRole(@PathVariable("userId") Long userId) - { + public AjaxResult authRole(@PathVariable("userId") Long userId) { AjaxResult ajax = AjaxResult.success(); SysUser user = userService.selectUserById(userId); List<SysRole> roles = roleService.selectRolesByUserId(userId); @@ -323,8 +323,7 @@ @RequiresPermissions("system:user:edit") @Log(title = "鐢ㄦ埛绠$悊", businessType = BusinessType.GRANT) @PutMapping("/authRole") - public AjaxResult insertAuthRole(Long userId, Long[] roleIds) - { + public AjaxResult insertAuthRole(Long userId, Long[] roleIds) { userService.checkUserDataScope(userId); roleService.checkRoleDataScope(roleIds); userService.insertUserAuth(userId, roleIds); @@ -336,8 +335,7 @@ */ @RequiresPermissions("system:user:list") @GetMapping("/deptTree") - public AjaxResult deptTree(SysDept dept) - { + public AjaxResult deptTree(SysDept dept) { return success(deptService.selectDeptTreeList(dept)); } } diff --git a/se-modules/se-system/src/main/java/com/se/system/domain/SysMenu.java b/se-modules/se-system/src/main/java/com/se/system/domain/SysMenu.java index a22cecb..e33a922 100644 --- a/se-modules/se-system/src/main/java/com/se/system/domain/SysMenu.java +++ b/se-modules/se-system/src/main/java/com/se/system/domain/SysMenu.java @@ -66,6 +66,9 @@ /** 鑿滃崟鍥炬爣 */ private String icon; + /** 鑿滃崟鏍囪瘑 */ + private String mark; + /** 瀛愯彍鍗� */ private List<SysMenu> children = new ArrayList<SysMenu>(); @@ -246,6 +249,14 @@ this.children = children; } + public String getMark() { + return mark; + } + + public void setMark(String mark) { + this.mark = mark; + } + @Override public String toString() { return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) @@ -269,6 +280,7 @@ .append("updateBy", getUpdateBy()) .append("updateTime", getUpdateTime()) .append("remark", getRemark()) + .append("mark", getMark()) .toString(); } } diff --git a/se-modules/se-system/src/main/java/com/se/system/mapper/SysMenuMapper.java b/se-modules/se-system/src/main/java/com/se/system/mapper/SysMenuMapper.java index 4df0242..b58335d 100644 --- a/se-modules/se-system/src/main/java/com/se/system/mapper/SysMenuMapper.java +++ b/se-modules/se-system/src/main/java/com/se/system/mapper/SysMenuMapper.java @@ -10,11 +10,10 @@ * * @author admin */ -public interface SysMenuMapper -{ +public interface SysMenuMapper { /** * 鏌ヨ绯荤粺鑿滃崟鍒楄〃 - * + * * @param menu 鑿滃崟淇℃伅 * @return 鑿滃崟鍒楄〃 */ @@ -22,14 +21,14 @@ /** * 鏍规嵁鐢ㄦ埛鎵�鏈夋潈闄� - * + * * @return 鏉冮檺鍒楄〃 */ public List<String> selectMenuPerms(); /** * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃 - * + * * @param menu 鑿滃崟淇℃伅 * @return 鑿滃崟鍒楄〃 */ @@ -37,7 +36,7 @@ /** * 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺 - * + * * @param roleId 瑙掕壊ID * @return 鏉冮檺鍒楄〃 */ @@ -45,7 +44,7 @@ /** * 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺 - * + * * @param userId 鐢ㄦ埛ID * @return 鏉冮檺鍒楄〃 */ @@ -53,23 +52,24 @@ /** * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟 - * + * * @return 鑿滃崟鍒楄〃 */ public List<SysMenu> selectMenuTreeAll(); /** * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟 - * + * * @param userId 鐢ㄦ埛ID + * @param mark 鏍囪瘑 * @return 鑿滃崟鍒楄〃 */ - public List<SysMenu> selectMenuTreeByUserId(Long userId); + public List<SysMenu> selectMenuTreeByUserId(@Param("userId") Long userId, @Param("mark") String mark); /** * 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戜俊鎭� - * - * @param roleId 瑙掕壊ID + * + * @param roleId 瑙掕壊ID * @param menuCheckStrictly 鑿滃崟鏍戦�夋嫨椤规槸鍚﹀叧鑱旀樉绀� * @return 閫変腑鑿滃崟鍒楄〃 */ @@ -77,7 +77,7 @@ /** * 鏍规嵁鑿滃崟ID鏌ヨ淇℃伅 - * + * * @param menuId 鑿滃崟ID * @return 鑿滃崟淇℃伅 */ @@ -85,7 +85,7 @@ /** * 鏄惁瀛樺湪鑿滃崟瀛愯妭鐐� - * + * * @param menuId 鑿滃崟ID * @return 缁撴灉 */ @@ -93,7 +93,7 @@ /** * 鏂板鑿滃崟淇℃伅 - * + * * @param menu 鑿滃崟淇℃伅 * @return 缁撴灉 */ @@ -101,7 +101,7 @@ /** * 淇敼鑿滃崟淇℃伅 - * + * * @param menu 鑿滃崟淇℃伅 * @return 缁撴灉 */ @@ -109,7 +109,7 @@ /** * 鍒犻櫎鑿滃崟绠$悊淇℃伅 - * + * * @param menuId 鑿滃崟ID * @return 缁撴灉 */ @@ -117,10 +117,19 @@ /** * 鏍¢獙鑿滃崟鍚嶇О鏄惁鍞竴 - * + * * @param menuName 鑿滃崟鍚嶇О * @param parentId 鐖惰彍鍗旾D * @return 缁撴灉 */ public SysMenu checkMenuNameUnique(@Param("menuName") String menuName, @Param("parentId") Long parentId); + + /** + * 鏍规嵁鐢ㄦ埛ID鍜屾爣璇嗘煡璇㈣彍鍗� + * + * @param userId 鐢ㄦ埛ID + * @param mark 鏍囪瘑 + * @return 鑿滃崟闆嗗悎 + */ + List<SysMenu> selectMenusByUserIdAndMark(@Param("userId") Long userId, @Param("mark") String mark); } diff --git a/se-modules/se-system/src/main/java/com/se/system/mapper/SysUserMapper.java b/se-modules/se-system/src/main/java/com/se/system/mapper/SysUserMapper.java index 00a7aff..30e048d 100644 --- a/se-modules/se-system/src/main/java/com/se/system/mapper/SysUserMapper.java +++ b/se-modules/se-system/src/main/java/com/se/system/mapper/SysUserMapper.java @@ -52,6 +52,14 @@ public SysUser selectUserById(Long userId); /** + * 閫氳繃ids鏌ヨ鐢ㄦ埛 + * + * @param ids + * @return + */ + public List<SysUser> selectUserByIds(@Param("ids") String ids); + + /** * 鏂板鐢ㄦ埛淇℃伅 * * @param user 鐢ㄦ埛淇℃伅 diff --git a/se-modules/se-system/src/main/java/com/se/system/service/ISysConfigService.java b/se-modules/se-system/src/main/java/com/se/system/service/ISysConfigService.java index 0bf126e..f1b236a 100644 --- a/se-modules/se-system/src/main/java/com/se/system/service/ISysConfigService.java +++ b/se-modules/se-system/src/main/java/com/se/system/service/ISysConfigService.java @@ -1,7 +1,7 @@ package com.se.system.service; import java.util.List; -import com.se.system.domain.SysConfig; +import com.se.system.domain.*; /** * 鍙傛暟閰嶇疆 鏈嶅姟灞� diff --git a/se-modules/se-system/src/main/java/com/se/system/service/ISysMenuService.java b/se-modules/se-system/src/main/java/com/se/system/service/ISysMenuService.java index 61746b0..e983f71 100644 --- a/se-modules/se-system/src/main/java/com/se/system/service/ISysMenuService.java +++ b/se-modules/se-system/src/main/java/com/se/system/service/ISysMenuService.java @@ -11,11 +11,10 @@ * * @author admin */ -public interface ISysMenuService -{ +public interface ISysMenuService { /** * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃 - * + * * @param userId 鐢ㄦ埛ID * @return 鑿滃崟鍒楄〃 */ @@ -23,8 +22,8 @@ /** * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃 - * - * @param menu 鑿滃崟淇℃伅 + * + * @param menu 鑿滃崟淇℃伅 * @param userId 鐢ㄦ埛ID * @return 鑿滃崟鍒楄〃 */ @@ -32,7 +31,7 @@ /** * 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺 - * + * * @param userId 鐢ㄦ埛ID * @return 鏉冮檺鍒楄〃 */ @@ -40,7 +39,7 @@ /** * 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺 - * + * * @param roleId 瑙掕壊ID * @return 鏉冮檺鍒楄〃 */ @@ -48,15 +47,16 @@ /** * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟鏍戜俊鎭� - * + * * @param userId 鐢ㄦ埛ID + * @param mark 鏍囪瘑 * @return 鑿滃崟鍒楄〃 */ - public List<SysMenu> selectMenuTreeByUserId(Long userId); + public List<SysMenu> selectMenuTreeByUserId(Long userId, String mark); /** * 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戜俊鎭� - * + * * @param roleId 瑙掕壊ID * @return 閫変腑鑿滃崟鍒楄〃 */ @@ -64,7 +64,7 @@ /** * 鏋勫缓鍓嶇璺敱鎵�闇�瑕佺殑鑿滃崟 - * + * * @param menus 鑿滃崟鍒楄〃 * @return 璺敱鍒楄〃 */ @@ -72,7 +72,7 @@ /** * 鏋勫缓鍓嶇鎵�闇�瑕佹爲缁撴瀯 - * + * * @param menus 鑿滃崟鍒楄〃 * @return 鏍戠粨鏋勫垪琛� */ @@ -80,7 +80,7 @@ /** * 鏋勫缓鍓嶇鎵�闇�瑕佷笅鎷夋爲缁撴瀯 - * + * * @param menus 鑿滃崟鍒楄〃 * @return 涓嬫媺鏍戠粨鏋勫垪琛� */ @@ -88,7 +88,7 @@ /** * 鏍规嵁鑿滃崟ID鏌ヨ淇℃伅 - * + * * @param menuId 鑿滃崟ID * @return 鑿滃崟淇℃伅 */ @@ -96,7 +96,7 @@ /** * 鏄惁瀛樺湪鑿滃崟瀛愯妭鐐� - * + * * @param menuId 鑿滃崟ID * @return 缁撴灉 true 瀛樺湪 false 涓嶅瓨鍦� */ @@ -104,7 +104,7 @@ /** * 鏌ヨ鑿滃崟鏄惁瀛樺湪瑙掕壊 - * + * * @param menuId 鑿滃崟ID * @return 缁撴灉 true 瀛樺湪 false 涓嶅瓨鍦� */ @@ -112,7 +112,7 @@ /** * 鏂板淇濆瓨鑿滃崟淇℃伅 - * + * * @param menu 鑿滃崟淇℃伅 * @return 缁撴灉 */ @@ -120,7 +120,7 @@ /** * 淇敼淇濆瓨鑿滃崟淇℃伅 - * + * * @param menu 鑿滃崟淇℃伅 * @return 缁撴灉 */ @@ -128,7 +128,7 @@ /** * 鍒犻櫎鑿滃崟绠$悊淇℃伅 - * + * * @param menuId 鑿滃崟ID * @return 缁撴灉 */ @@ -136,9 +136,18 @@ /** * 鏍¢獙鑿滃崟鍚嶇О鏄惁鍞竴 - * + * * @param menu 鑿滃崟淇℃伅 * @return 缁撴灉 */ public boolean checkMenuNameUnique(SysMenu menu); + + /** + * 鏍规嵁鐢ㄦ埛ID鍜屾爣璇嗘煡璇㈣彍鍗� + * + * @param userId 鐢ㄦ埛ID + * @param mark 鏍囪瘑 + * @return 鑿滃崟闆嗗悎 + */ + List<SysMenu> selectMenusByUserIdAndMark(Long userId, String mark); } diff --git a/se-modules/se-system/src/main/java/com/se/system/service/impl/IsimUserService.java b/se-modules/se-system/src/main/java/com/se/system/service/impl/IsimUserService.java new file mode 100644 index 0000000..b38cd56 --- /dev/null +++ b/se-modules/se-system/src/main/java/com/se/system/service/impl/IsimUserService.java @@ -0,0 +1,66 @@ +package com.se.system.service.impl; + +import com.se.system.api.domain.SysUser; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * ISIM鐢ㄦ埛鏈嶅姟 + * + * @author WWW + * @date 2024-08-30 + */ +@Slf4j +@Service +@SuppressWarnings("ALL") +public class IsimUserService { + public void insertUser(SysUser user) { + try { + System.out.println("insertUser"); + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + } + } + + public void insertUsers(List<SysUser> list) { + try { + System.out.println("insertUsers"); + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + } + } + + public void updateUser(SysUser user) { + try { + System.out.println("updateUser"); + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + } + } + + public void updateUsers(List<SysUser> list) { + try { + System.out.println("updateUsers"); + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + } + } + + public void deleteUser(SysUser user) { + try { + System.out.println("deleteUser"); + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + } + } + + public void deleteUsers(List<SysUser> list) { + try { + System.out.println("deleteUsers"); + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + } + } +} diff --git a/se-modules/se-system/src/main/java/com/se/system/service/impl/SyncUserService.java b/se-modules/se-system/src/main/java/com/se/system/service/impl/SyncUserService.java new file mode 100644 index 0000000..e76767c --- /dev/null +++ b/se-modules/se-system/src/main/java/com/se/system/service/impl/SyncUserService.java @@ -0,0 +1,79 @@ +package com.se.system.service.impl; + +import com.se.system.api.domain.SysUser; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +/** + * 鐢ㄦ埛鍚屾鏈嶅姟 + * + * @author WWW + * @date 2024-08-30 + */ +@Slf4j +@Service +@SuppressWarnings("ALL") +public class SyncUserService { + @Resource + IsimUserService isimUserService; + + public void insertUser(SysUser user) { + // supplyAsync-甯﹁繑鍥炲�硷紝runAsync-鏃犺繑鍥炲�� + CompletableFuture.runAsync(() -> { + isimUserService.insertUser(user); + }); + } + + public void insertUsers(List<SysUser> list) { + CompletableFuture.runAsync(() -> { + isimUserService.insertUsers(list); + }); + } + + public void updateUser(SysUser user) { + CompletableFuture.runAsync(() -> { + isimUserService.updateUser(user); + }); + } + + public void updateUsers(List<SysUser> list) { + CompletableFuture.runAsync(() -> { + isimUserService.updateUsers(list); + }); + } + + public void deleteUser(SysUser user) { + CompletableFuture.runAsync(() -> { + isimUserService.deleteUser(user); + }); + } + + public void deleteUsers(List<SysUser> list) { + CompletableFuture.runAsync(() -> { + isimUserService.deleteUsers(list); + }); + } + + private void asyncCall() { + try { + ExecutorService executor = Executors.newSingleThreadExecutor(); + executor.execute(new Runnable() { + @Override + @SneakyThrows + public void run() { + // + } + }); + executor.shutdown(); + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + } + } +} diff --git a/se-modules/se-system/src/main/java/com/se/system/service/impl/SysMenuServiceImpl.java b/se-modules/se-system/src/main/java/com/se/system/service/impl/SysMenuServiceImpl.java index 6dcb451..9a03e9f 100644 --- a/se-modules/se-system/src/main/java/com/se/system/service/impl/SysMenuServiceImpl.java +++ b/se-modules/se-system/src/main/java/com/se/system/service/impl/SysMenuServiceImpl.java @@ -10,7 +10,6 @@ import java.util.stream.Collectors; import com.se.system.domain.SysMenu; -import com.se.system.domain.vo.MetaVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.se.common.core.constant.Constants; @@ -19,11 +18,9 @@ import com.se.common.security.utils.SecurityUtils; import com.se.system.api.domain.SysRole; import com.se.system.api.domain.SysUser; -import com.se.system.domain.vo.RouterVo; -import com.se.system.domain.vo.TreeSelect; +import com.se.system.domain.vo.*; import com.se.system.mapper.SysMenuMapper; -import com.se.system.mapper.SysRoleMapper; -import com.se.system.mapper.SysRoleMenuMapper; +import com.se.system.mapper.*; import com.se.system.service.ISysMenuService; /** @@ -32,8 +29,7 @@ * @author admin */ @Service -public class SysMenuServiceImpl implements ISysMenuService -{ +public class SysMenuServiceImpl implements ISysMenuService { public static final String PREMISSION_STRING = "perms[\"{0}\"]"; @Autowired @@ -47,33 +43,28 @@ /** * 鏍规嵁鐢ㄦ埛鏌ヨ绯荤粺鑿滃崟鍒楄〃 - * + * * @param userId 鐢ㄦ埛ID * @return 鑿滃崟鍒楄〃 */ @Override - public List<SysMenu> selectMenuList(Long userId) - { + public List<SysMenu> selectMenuList(Long userId) { return selectMenuList(new SysMenu(), userId); } /** * 鏌ヨ绯荤粺鑿滃崟鍒楄〃 - * + * * @param menu 鑿滃崟淇℃伅 * @return 鑿滃崟鍒楄〃 */ @Override - public List<SysMenu> selectMenuList(SysMenu menu, Long userId) - { + public List<SysMenu> selectMenuList(SysMenu menu, Long userId) { List<SysMenu> menuList = null; // 绠$悊鍛樻樉绀烘墍鏈夎彍鍗曚俊鎭� - if (SysUser.isAdmin(userId)) - { + if (SysUser.isAdmin(userId)) { menuList = menuMapper.selectMenuList(menu); - } - else - { + } else { menu.getParams().put("userId", userId); menuList = menuMapper.selectMenuListByUserId(menu); } @@ -82,19 +73,16 @@ /** * 鏍规嵁鐢ㄦ埛ID鏌ヨ鏉冮檺 - * + * * @param userId 鐢ㄦ埛ID * @return 鏉冮檺鍒楄〃 */ @Override - public Set<String> selectMenuPermsByUserId(Long userId) - { + public Set<String> selectMenuPermsByUserId(Long userId) { List<String> perms = menuMapper.selectMenuPermsByUserId(userId); Set<String> permsSet = new HashSet<>(); - for (String perm : perms) - { - if (StringUtils.isNotEmpty(perm)) - { + for (String perm : perms) { + if (StringUtils.isNotEmpty(perm)) { permsSet.addAll(Arrays.asList(perm.trim().split(","))); } } @@ -103,19 +91,16 @@ /** * 鏍规嵁瑙掕壊ID鏌ヨ鏉冮檺 - * + * * @param roleId 瑙掕壊ID * @return 鏉冮檺鍒楄〃 */ @Override - public Set<String> selectMenuPermsByRoleId(Long roleId) - { + public Set<String> selectMenuPermsByRoleId(Long roleId) { List<String> perms = menuMapper.selectMenuPermsByRoleId(roleId); Set<String> permsSet = new HashSet<>(); - for (String perm : perms) - { - if (StringUtils.isNotEmpty(perm)) - { + for (String perm : perms) { + if (StringUtils.isNotEmpty(perm)) { permsSet.addAll(Arrays.asList(perm.trim().split(","))); } } @@ -124,14 +109,14 @@ /** * 鏍规嵁鐢ㄦ埛ID鏌ヨ鑿滃崟 - * + * * @param userId 鐢ㄦ埛鍚嶇О + * @param mark 鏍囪瘑 * @return 鑿滃崟鍒楄〃 */ @Override - public List<SysMenu> selectMenuTreeByUserId(Long userId) - { - List<SysMenu> menus = null; + public List<SysMenu> selectMenuTreeByUserId(Long userId, String mark) { + /*List<SysMenu> menus = null; if (SecurityUtils.isAdmin(userId)) { menus = menuMapper.selectMenuTreeAll(); @@ -139,35 +124,41 @@ else { menus = menuMapper.selectMenuTreeByUserId(userId); - } + }*/ + List<SysMenu> menus = menuMapper.selectMenuTreeByUserId(SecurityUtils.isAdmin(userId) ? null : userId, mark); + + return getChildPerms(menus, 0); + } + + @Override + public List<SysMenu> selectMenusByUserIdAndMark(Long userId, String mark) { + List<SysMenu> menus = menuMapper.selectMenusByUserIdAndMark(SecurityUtils.isAdmin(userId) ? null : userId, mark); + return getChildPerms(menus, 0); } /** * 鏍规嵁瑙掕壊ID鏌ヨ鑿滃崟鏍戜俊鎭� - * + * * @param roleId 瑙掕壊ID * @return 閫変腑鑿滃崟鍒楄〃 */ @Override - public List<Long> selectMenuListByRoleId(Long roleId) - { + public List<Long> selectMenuListByRoleId(Long roleId) { SysRole role = roleMapper.selectRoleById(roleId); return menuMapper.selectMenuListByRoleId(roleId, role.isMenuCheckStrictly()); } /** * 鏋勫缓鍓嶇璺敱鎵�闇�瑕佺殑鑿滃崟 - * + * * @param menus 鑿滃崟鍒楄〃 * @return 璺敱鍒楄〃 */ @Override - public List<RouterVo> buildMenus(List<SysMenu> menus) - { + public List<RouterVo> buildMenus(List<SysMenu> menus) { List<RouterVo> routers = new LinkedList<RouterVo>(); - for (SysMenu menu : menus) - { + for (SysMenu menu : menus) { RouterVo router = new RouterVo(); router.setHidden("1".equals(menu.getVisible())); router.setName(getRouteName(menu)); @@ -176,14 +167,11 @@ router.setQuery(menu.getQuery()); router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath())); List<SysMenu> cMenus = menu.getChildren(); - if (StringUtils.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType())) - { + if (StringUtils.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType())) { router.setAlwaysShow(true); router.setRedirect("noRedirect"); router.setChildren(buildMenus(cMenus)); - } - else if (isMenuFrame(menu)) - { + } else if (isMenuFrame(menu)) { router.setMeta(null); List<RouterVo> childrenList = new ArrayList<RouterVo>(); RouterVo children = new RouterVo(); @@ -194,9 +182,7 @@ children.setQuery(menu.getQuery()); childrenList.add(children); router.setChildren(childrenList); - } - else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) - { + } else if (menu.getParentId().intValue() == 0 && isInnerLink(menu)) { router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon())); router.setPath("/"); List<RouterVo> childrenList = new ArrayList<RouterVo>(); @@ -216,27 +202,23 @@ /** * 鏋勫缓鍓嶇鎵�闇�瑕佹爲缁撴瀯 - * + * * @param menus 鑿滃崟鍒楄〃 * @return 鏍戠粨鏋勫垪琛� */ @Override - public List<SysMenu> buildMenuTree(List<SysMenu> menus) - { + public List<SysMenu> buildMenuTree(List<SysMenu> menus) { List<SysMenu> returnList = new ArrayList<SysMenu>(); List<Long> tempList = menus.stream().map(SysMenu::getMenuId).collect(Collectors.toList()); - for (Iterator<SysMenu> iterator = menus.iterator(); iterator.hasNext();) - { + for (Iterator<SysMenu> iterator = menus.iterator(); iterator.hasNext(); ) { SysMenu menu = (SysMenu) iterator.next(); // 濡傛灉鏄《绾ц妭鐐�, 閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣 - if (!tempList.contains(menu.getParentId())) - { + if (!tempList.contains(menu.getParentId())) { recursionFn(menus, menu); returnList.add(menu); } } - if (returnList.isEmpty()) - { + if (returnList.isEmpty()) { returnList = menus; } return returnList; @@ -244,104 +226,95 @@ /** * 鏋勫缓鍓嶇鎵�闇�瑕佷笅鎷夋爲缁撴瀯 - * + * * @param menus 鑿滃崟鍒楄〃 * @return 涓嬫媺鏍戠粨鏋勫垪琛� */ @Override - public List<TreeSelect> buildMenuTreeSelect(List<SysMenu> menus) - { + public List<TreeSelect> buildMenuTreeSelect(List<SysMenu> menus) { List<SysMenu> menuTrees = buildMenuTree(menus); return menuTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); } /** * 鏍规嵁鑿滃崟ID鏌ヨ淇℃伅 - * + * * @param menuId 鑿滃崟ID * @return 鑿滃崟淇℃伅 */ @Override - public SysMenu selectMenuById(Long menuId) - { + public SysMenu selectMenuById(Long menuId) { return menuMapper.selectMenuById(menuId); } /** * 鏄惁瀛樺湪鑿滃崟瀛愯妭鐐� - * + * * @param menuId 鑿滃崟ID * @return 缁撴灉 */ @Override - public boolean hasChildByMenuId(Long menuId) - { + public boolean hasChildByMenuId(Long menuId) { int result = menuMapper.hasChildByMenuId(menuId); return result > 0; } /** * 鏌ヨ鑿滃崟浣跨敤鏁伴噺 - * + * * @param menuId 鑿滃崟ID * @return 缁撴灉 */ @Override - public boolean checkMenuExistRole(Long menuId) - { + public boolean checkMenuExistRole(Long menuId) { int result = roleMenuMapper.checkMenuExistRole(menuId); return result > 0; } /** * 鏂板淇濆瓨鑿滃崟淇℃伅 - * + * * @param menu 鑿滃崟淇℃伅 * @return 缁撴灉 */ @Override - public int insertMenu(SysMenu menu) - { + public int insertMenu(SysMenu menu) { return menuMapper.insertMenu(menu); } /** * 淇敼淇濆瓨鑿滃崟淇℃伅 - * + * * @param menu 鑿滃崟淇℃伅 * @return 缁撴灉 */ @Override - public int updateMenu(SysMenu menu) - { + public int updateMenu(SysMenu menu) { return menuMapper.updateMenu(menu); } /** * 鍒犻櫎鑿滃崟绠$悊淇℃伅 - * + * * @param menuId 鑿滃崟ID * @return 缁撴灉 */ @Override - public int deleteMenuById(Long menuId) - { + public int deleteMenuById(Long menuId) { return menuMapper.deleteMenuById(menuId); } /** * 鏍¢獙鑿滃崟鍚嶇О鏄惁鍞竴 - * + * * @param menu 鑿滃崟淇℃伅 * @return 缁撴灉 */ @Override - public boolean checkMenuNameUnique(SysMenu menu) - { + public boolean checkMenuNameUnique(SysMenu menu) { Long menuId = StringUtils.isNull(menu.getMenuId()) ? -1L : menu.getMenuId(); SysMenu info = menuMapper.checkMenuNameUnique(menu.getMenuName(), menu.getParentId()); - if (StringUtils.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue()) - { + if (StringUtils.isNotNull(info) && info.getMenuId().longValue() != menuId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -349,15 +322,13 @@ /** * 鑾峰彇璺敱鍚嶇О - * + * * @param menu 鑿滃崟淇℃伅 * @return 璺敱鍚嶇О */ - public String getRouteName(SysMenu menu) - { + public String getRouteName(SysMenu menu) { // 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓虹洰褰曪級 - if (isMenuFrame(menu)) - { + if (isMenuFrame(menu)) { return StringUtils.EMPTY; } return getRouteName(menu.getRouteName(), menu.getPath()); @@ -365,40 +336,35 @@ /** * 鑾峰彇璺敱鍚嶇О锛屽娌℃湁閰嶇疆璺敱鍚嶇О鍒欏彇璺敱鍦板潃 - * + * * @param routerName 璺敱鍚嶇О - * @param path 璺敱鍦板潃 + * @param path 璺敱鍦板潃 * @return 璺敱鍚嶇О锛堥┘宄版牸寮忥級 */ - public String getRouteName(String name, String path) - { + public String getRouteName(String name, String path) { String routerName = StringUtils.isNotEmpty(name) ? name : path; return StringUtils.capitalize(routerName); } /** * 鑾峰彇璺敱鍦板潃 - * + * * @param menu 鑿滃崟淇℃伅 * @return 璺敱鍦板潃 */ - public String getRouterPath(SysMenu menu) - { + public String getRouterPath(SysMenu menu) { String routerPath = menu.getPath(); // 鍐呴摼鎵撳紑澶栫綉鏂瑰紡 - if (menu.getParentId().intValue() != 0 && isInnerLink(menu)) - { + if (menu.getParentId().intValue() != 0 && isInnerLink(menu)) { routerPath = innerLinkReplaceEach(routerPath); } // 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓虹洰褰曪級 if (0 == menu.getParentId().intValue() && UserConstants.TYPE_DIR.equals(menu.getMenuType()) - && UserConstants.NO_FRAME.equals(menu.getIsFrame())) - { + && UserConstants.NO_FRAME.equals(menu.getIsFrame())) { routerPath = "/" + menu.getPath(); } // 闈炲閾惧苟涓旀槸涓�绾х洰褰曪紙绫诲瀷涓鸿彍鍗曪級 - else if (isMenuFrame(menu)) - { + else if (isMenuFrame(menu)) { routerPath = "/"; } return routerPath; @@ -406,23 +372,17 @@ /** * 鑾峰彇缁勪欢淇℃伅 - * + * * @param menu 鑿滃崟淇℃伅 * @return 缁勪欢淇℃伅 */ - public String getComponent(SysMenu menu) - { + public String getComponent(SysMenu menu) { String component = UserConstants.LAYOUT; - if (StringUtils.isNotEmpty(menu.getComponent()) && !isMenuFrame(menu)) - { + if (StringUtils.isNotEmpty(menu.getComponent()) && !isMenuFrame(menu)) { component = menu.getComponent(); - } - else if (StringUtils.isEmpty(menu.getComponent()) && menu.getParentId().intValue() != 0 && isInnerLink(menu)) - { + } else if (StringUtils.isEmpty(menu.getComponent()) && menu.getParentId().intValue() != 0 && isInnerLink(menu)) { component = UserConstants.INNER_LINK; - } - else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu)) - { + } else if (StringUtils.isEmpty(menu.getComponent()) && isParentView(menu)) { component = UserConstants.PARENT_VIEW; } return component; @@ -430,54 +390,48 @@ /** * 鏄惁涓鸿彍鍗曞唴閮ㄨ烦杞� - * + * * @param menu 鑿滃崟淇℃伅 * @return 缁撴灉 */ - public boolean isMenuFrame(SysMenu menu) - { + public boolean isMenuFrame(SysMenu menu) { return menu.getParentId().intValue() == 0 && UserConstants.TYPE_MENU.equals(menu.getMenuType()) && menu.getIsFrame().equals(UserConstants.NO_FRAME); } /** * 鏄惁涓哄唴閾剧粍浠� - * + * * @param menu 鑿滃崟淇℃伅 * @return 缁撴灉 */ - public boolean isInnerLink(SysMenu menu) - { + public boolean isInnerLink(SysMenu menu) { return menu.getIsFrame().equals(UserConstants.NO_FRAME) && StringUtils.ishttp(menu.getPath()); } /** * 鏄惁涓簆arent_view缁勪欢 - * + * * @param menu 鑿滃崟淇℃伅 * @return 缁撴灉 */ - public boolean isParentView(SysMenu menu) - { + public boolean isParentView(SysMenu menu) { return menu.getParentId().intValue() != 0 && UserConstants.TYPE_DIR.equals(menu.getMenuType()); } /** * 鏍规嵁鐖惰妭鐐圭殑ID鑾峰彇鎵�鏈夊瓙鑺傜偣 - * - * @param list 鍒嗙被琛� + * + * @param list 鍒嗙被琛� * @param parentId 浼犲叆鐨勭埗鑺傜偣ID * @return String */ - public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId) - { + public List<SysMenu> getChildPerms(List<SysMenu> list, int parentId) { List<SysMenu> returnList = new ArrayList<SysMenu>(); - for (Iterator<SysMenu> iterator = list.iterator(); iterator.hasNext();) - { + for (Iterator<SysMenu> iterator = list.iterator(); iterator.hasNext(); ) { SysMenu t = (SysMenu) iterator.next(); // 涓�銆佹牴鎹紶鍏ョ殑鏌愪釜鐖惰妭鐐笽D,閬嶅巻璇ョ埗鑺傜偣鐨勬墍鏈夊瓙鑺傜偣 - if (t.getParentId() == parentId) - { + if (t.getParentId() == parentId) { recursionFn(list, t); returnList.add(t); } @@ -487,19 +441,16 @@ /** * 閫掑綊鍒楄〃 - * + * * @param list 鍒嗙被琛� - * @param t 瀛愯妭鐐� + * @param t 瀛愯妭鐐� */ - private void recursionFn(List<SysMenu> list, SysMenu t) - { + private void recursionFn(List<SysMenu> list, SysMenu t) { // 寰楀埌瀛愯妭鐐瑰垪琛� List<SysMenu> childList = getChildList(list, t); t.setChildren(childList); - for (SysMenu tChild : childList) - { - if (hasChild(list, tChild)) - { + for (SysMenu tChild : childList) { + if (hasChild(list, tChild)) { recursionFn(list, tChild); } } @@ -508,15 +459,12 @@ /** * 寰楀埌瀛愯妭鐐瑰垪琛� */ - private List<SysMenu> getChildList(List<SysMenu> list, SysMenu t) - { + private List<SysMenu> getChildList(List<SysMenu> list, SysMenu t) { List<SysMenu> tlist = new ArrayList<SysMenu>(); Iterator<SysMenu> it = list.iterator(); - while (it.hasNext()) - { + while (it.hasNext()) { SysMenu n = (SysMenu) it.next(); - if (n.getParentId().longValue() == t.getMenuId().longValue()) - { + if (n.getParentId().longValue() == t.getMenuId().longValue()) { tlist.add(n); } } @@ -526,19 +474,17 @@ /** * 鍒ゆ柇鏄惁鏈夊瓙鑺傜偣 */ - private boolean hasChild(List<SysMenu> list, SysMenu t) - { + private boolean hasChild(List<SysMenu> list, SysMenu t) { return getChildList(list, t).size() > 0; } /** * 鍐呴摼鍩熷悕鐗规畩瀛楃鏇挎崲 - * + * * @return 鏇挎崲鍚庣殑鍐呴摼鍩熷悕 */ - public String innerLinkReplaceEach(String path) - { - return StringUtils.replaceEach(path, new String[] { Constants.HTTP, Constants.HTTPS, Constants.WWW, ".", ":" }, - new String[] { "", "", "", "/", "/" }); + public String innerLinkReplaceEach(String path) { + return StringUtils.replaceEach(path, new String[]{Constants.HTTP, Constants.HTTPS, Constants.WWW, ".", ":"}, + new String[]{"", "", "", "/", "/"}); } } diff --git a/se-modules/se-system/src/main/java/com/se/system/service/impl/SysUserServiceImpl.java b/se-modules/se-system/src/main/java/com/se/system/service/impl/SysUserServiceImpl.java index 54fc967..7244cf4 100644 --- a/se-modules/se-system/src/main/java/com/se/system/service/impl/SysUserServiceImpl.java +++ b/se-modules/se-system/src/main/java/com/se/system/service/impl/SysUserServiceImpl.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; +import javax.annotation.Resource; import javax.validation.Validator; import com.se.system.domain.SysPost; @@ -38,8 +39,7 @@ * @author admin */ @Service -public class SysUserServiceImpl implements ISysUserService -{ +public class SysUserServiceImpl implements ISysUserService { private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class); @Autowired @@ -66,81 +66,77 @@ @Autowired protected Validator validator; + @Resource + SyncUserService syncUserService; + /** * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 */ @Override @DataScope(deptAlias = "d", userAlias = "u") - public List<SysUser> selectUserList(SysUser user) - { + public List<SysUser> selectUserList(SysUser user) { return userMapper.selectUserList(user); } /** * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ宸插垎閰嶇敤鎴疯鑹插垪琛� - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 */ @Override @DataScope(deptAlias = "d", userAlias = "u") - public List<SysUser> selectAllocatedList(SysUser user) - { + public List<SysUser> selectAllocatedList(SysUser user) { return userMapper.selectAllocatedList(user); } /** * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ鏈垎閰嶇敤鎴疯鑹插垪琛� - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 鐢ㄦ埛淇℃伅闆嗗悎淇℃伅 */ @Override @DataScope(deptAlias = "d", userAlias = "u") - public List<SysUser> selectUnallocatedList(SysUser user) - { + public List<SysUser> selectUnallocatedList(SysUser user) { return userMapper.selectUnallocatedList(user); } /** * 閫氳繃鐢ㄦ埛鍚嶆煡璇㈢敤鎴� - * + * * @param userName 鐢ㄦ埛鍚� * @return 鐢ㄦ埛瀵硅薄淇℃伅 */ @Override - public SysUser selectUserByUserName(String userName) - { + public SysUser selectUserByUserName(String userName) { return userMapper.selectUserByUserName(userName); } /** * 閫氳繃鐢ㄦ埛ID鏌ヨ鐢ㄦ埛 - * + * * @param userId 鐢ㄦ埛ID * @return 鐢ㄦ埛瀵硅薄淇℃伅 */ @Override - public SysUser selectUserById(Long userId) - { + public SysUser selectUserById(Long userId) { return userMapper.selectUserById(userId); } /** * 鏌ヨ鐢ㄦ埛鎵�灞炶鑹茬粍 - * + * * @param userName 鐢ㄦ埛鍚� * @return 缁撴灉 */ @Override - public String selectUserRoleGroup(String userName) - { + public String selectUserRoleGroup(String userName) { List<SysRole> list = roleMapper.selectRolesByUserName(userName); - if (CollectionUtils.isEmpty(list)) - { + if (CollectionUtils.isEmpty(list)) { return StringUtils.EMPTY; } return list.stream().map(SysRole::getRoleName).collect(Collectors.joining(",")); @@ -148,16 +144,14 @@ /** * 鏌ヨ鐢ㄦ埛鎵�灞炲矖浣嶇粍 - * + * * @param userName 鐢ㄦ埛鍚� * @return 缁撴灉 */ @Override - public String selectUserPostGroup(String userName) - { + public String selectUserPostGroup(String userName) { List<SysPost> list = postMapper.selectPostsByUserName(userName); - if (CollectionUtils.isEmpty(list)) - { + if (CollectionUtils.isEmpty(list)) { return StringUtils.EMPTY; } return list.stream().map(SysPost::getPostName).collect(Collectors.joining(",")); @@ -165,17 +159,15 @@ /** * 鏍¢獙鐢ㄦ埛鍚嶇О鏄惁鍞竴 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override - public boolean checkUserNameUnique(SysUser user) - { + public boolean checkUserNameUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkUserNameUnique(user.getUserName()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) - { + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -188,12 +180,10 @@ * @return */ @Override - public boolean checkPhoneUnique(SysUser user) - { + public boolean checkPhoneUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) - { + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -206,12 +196,10 @@ * @return */ @Override - public boolean checkEmailUnique(SysUser user) - { + public boolean checkEmailUnique(SysUser user) { Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId(); SysUser info = userMapper.checkEmailUnique(user.getEmail()); - if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) - { + if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue()) { return UserConstants.NOT_UNIQUE; } return UserConstants.UNIQUE; @@ -219,33 +207,28 @@ /** * 鏍¢獙鐢ㄦ埛鏄惁鍏佽鎿嶄綔 - * + * * @param user 鐢ㄦ埛淇℃伅 */ @Override - public void checkUserAllowed(SysUser user) - { - if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) - { + public void checkUserAllowed(SysUser user) { + if (StringUtils.isNotNull(user.getUserId()) && user.isAdmin()) { throw new ServiceException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳鐢ㄦ埛"); } } /** * 鏍¢獙鐢ㄦ埛鏄惁鏈夋暟鎹潈闄� - * + * * @param userId 鐢ㄦ埛id */ @Override - public void checkUserDataScope(Long userId) - { - if (!SysUser.isAdmin(SecurityUtils.getUserId())) - { + public void checkUserDataScope(Long userId) { + if (!SysUser.isAdmin(SecurityUtils.getUserId())) { SysUser user = new SysUser(); user.setUserId(userId); List<SysUser> users = SpringUtils.getAopProxy(this).selectUserList(user); - if (StringUtils.isEmpty(users)) - { + if (StringUtils.isEmpty(users)) { throw new ServiceException("娌℃湁鏉冮檺璁块棶鐢ㄦ埛鏁版嵁锛�"); } } @@ -253,45 +236,49 @@ /** * 鏂板淇濆瓨鐢ㄦ埛淇℃伅 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override @Transactional(rollbackFor = Exception.class) - public int insertUser(SysUser user) - { + public int insertUser(SysUser user) { // 鏂板鐢ㄦ埛淇℃伅 int rows = userMapper.insertUser(user); // 鏂板鐢ㄦ埛宀椾綅鍏宠仈 insertUserPost(user); // 鏂板鐢ㄦ埛涓庤鑹茬鐞� insertUserRole(user); + if (rows > 0) { + syncUserService.insertUser(user); + } return rows; } /** * 娉ㄥ唽鐢ㄦ埛淇℃伅 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override - public boolean registerUser(SysUser user) - { - return userMapper.insertUser(user) > 0; + public boolean registerUser(SysUser user) { + int rows = userMapper.insertUser(user); + if (rows > 0) { + syncUserService.insertUser(user); + } + return rows > 0; } /** * 淇敼淇濆瓨鐢ㄦ埛淇℃伅 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override @Transactional(rollbackFor = Exception.class) - public int updateUser(SysUser user) - { + public int updateUser(SysUser user) { Long userId = user.getUserId(); // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱� userRoleMapper.deleteUserRoleByUserId(userId); @@ -301,109 +288,111 @@ userPostMapper.deleteUserPostByUserId(userId); // 鏂板鐢ㄦ埛涓庡矖浣嶇鐞� insertUserPost(user); - return userMapper.updateUser(user); + int rows = userMapper.updateUser(user); + if (rows > 0) { + syncUserService.updateUser(user); + } + return rows; } /** * 鐢ㄦ埛鎺堟潈瑙掕壊 - * - * @param userId 鐢ㄦ埛ID + * + * @param userId 鐢ㄦ埛ID * @param roleIds 瑙掕壊缁� */ @Override @Transactional(rollbackFor = Exception.class) - public void insertUserAuth(Long userId, Long[] roleIds) - { + public void insertUserAuth(Long userId, Long[] roleIds) { userRoleMapper.deleteUserRoleByUserId(userId); insertUserRole(userId, roleIds); } /** * 淇敼鐢ㄦ埛鐘舵�� - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override - public int updateUserStatus(SysUser user) - { - return userMapper.updateUser(user); + public int updateUserStatus(SysUser user) { + int rows = userMapper.updateUser(user); + if (rows > 0) { + syncUserService.updateUser(user); + } + return rows; } /** * 淇敼鐢ㄦ埛鍩烘湰淇℃伅 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override - public boolean updateUserProfile(SysUser user) - { - return userMapper.updateUser(user) > 0; + public boolean updateUserProfile(SysUser user) { + int rows = userMapper.updateUser(user); + if (rows > 0) { + syncUserService.updateUser(user); + } + return rows > 0; } /** * 淇敼鐢ㄦ埛澶村儚 - * + * * @param userName 鐢ㄦ埛鍚� - * @param avatar 澶村儚鍦板潃 + * @param avatar 澶村儚鍦板潃 * @return 缁撴灉 */ @Override - public boolean updateUserAvatar(String userName, String avatar) - { + public boolean updateUserAvatar(String userName, String avatar) { return userMapper.updateUserAvatar(userName, avatar) > 0; } /** * 閲嶇疆鐢ㄦ埛瀵嗙爜 - * + * * @param user 鐢ㄦ埛淇℃伅 * @return 缁撴灉 */ @Override - public int resetPwd(SysUser user) - { + public int resetPwd(SysUser user) { return userMapper.updateUser(user); } /** * 閲嶇疆鐢ㄦ埛瀵嗙爜 - * + * * @param userName 鐢ㄦ埛鍚� * @param password 瀵嗙爜 * @return 缁撴灉 */ @Override - public int resetUserPwd(String userName, String password) - { + public int resetUserPwd(String userName, String password) { return userMapper.resetUserPwd(userName, password); } /** * 鏂板鐢ㄦ埛瑙掕壊淇℃伅 - * + * * @param user 鐢ㄦ埛瀵硅薄 */ - public void insertUserRole(SysUser user) - { + public void insertUserRole(SysUser user) { this.insertUserRole(user.getUserId(), user.getRoleIds()); } /** * 鏂板鐢ㄦ埛宀椾綅淇℃伅 - * + * * @param user 鐢ㄦ埛瀵硅薄 */ - public void insertUserPost(SysUser user) - { + public void insertUserPost(SysUser user) { Long[] posts = user.getPostIds(); - if (StringUtils.isNotEmpty(posts)) - { + if (StringUtils.isNotEmpty(posts)) { // 鏂板鐢ㄦ埛涓庡矖浣嶇鐞� List<SysUserPost> list = new ArrayList<SysUserPost>(); - for (Long postId : posts) - { + for (Long postId : posts) { SysUserPost up = new SysUserPost(); up.setUserId(user.getUserId()); up.setPostId(postId); @@ -415,18 +404,15 @@ /** * 鏂板鐢ㄦ埛瑙掕壊淇℃伅 - * - * @param userId 鐢ㄦ埛ID + * + * @param userId 鐢ㄦ埛ID * @param roleIds 瑙掕壊缁� */ - public void insertUserRole(Long userId, Long[] roleIds) - { - if (StringUtils.isNotEmpty(roleIds)) - { + public void insertUserRole(Long userId, Long[] roleIds) { + if (StringUtils.isNotEmpty(roleIds)) { // 鏂板鐢ㄦ埛涓庤鑹茬鐞� List<SysUserRole> list = new ArrayList<SysUserRole>(); - for (Long roleId : roleIds) - { + for (Long roleId : roleIds) { SysUserRole ur = new SysUserRole(); ur.setUserId(userId); ur.setRoleId(roleId); @@ -438,33 +424,35 @@ /** * 閫氳繃鐢ㄦ埛ID鍒犻櫎鐢ㄦ埛 - * + * * @param userId 鐢ㄦ埛ID * @return 缁撴灉 */ @Override @Transactional(rollbackFor = Exception.class) - public int deleteUserById(Long userId) - { + public int deleteUserById(Long userId) { // 鍒犻櫎鐢ㄦ埛涓庤鑹插叧鑱� userRoleMapper.deleteUserRoleByUserId(userId); // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶈〃 userPostMapper.deleteUserPostByUserId(userId); - return userMapper.deleteUserById(userId); + SysUser user = userMapper.selectUserById(userId); + int rows = userMapper.deleteUserById(userId); + if (rows > 0) { + syncUserService.deleteUser(user); + } + return rows; } /** * 鎵归噺鍒犻櫎鐢ㄦ埛淇℃伅 - * + * * @param userIds 闇�瑕佸垹闄ょ殑鐢ㄦ埛ID * @return 缁撴灉 */ @Override @Transactional(rollbackFor = Exception.class) - public int deleteUserByIds(Long[] userIds) - { - for (Long userId : userIds) - { + public int deleteUserByIds(Long[] userIds) { + for (Long userId : userIds) { checkUserAllowed(new SysUser(userId)); checkUserDataScope(userId); } @@ -472,81 +460,84 @@ userRoleMapper.deleteUserRole(userIds); // 鍒犻櫎鐢ㄦ埛涓庡矖浣嶅叧鑱� userPostMapper.deleteUserPost(userIds); - return userMapper.deleteUserByIds(userIds); + List<SysUser> list = userMapper.selectUserByIds(StringUtils.joinWith(",", userIds)); + int rows = userMapper.deleteUserByIds(userIds); + if (rows > 0 && !CollectionUtils.isEmpty(list)) { + syncUserService.deleteUsers(list); + } + return rows; } /** * 瀵煎叆鐢ㄦ埛鏁版嵁 - * - * @param userList 鐢ㄦ埛鏁版嵁鍒楄〃 + * + * @param userList 鐢ㄦ埛鏁版嵁鍒楄〃 * @param isUpdateSupport 鏄惁鏇存柊鏀寔锛屽鏋滃凡瀛樺湪锛屽垯杩涜鏇存柊鏁版嵁 - * @param operName 鎿嶄綔鐢ㄦ埛 + * @param operName 鎿嶄綔鐢ㄦ埛 * @return 缁撴灉 */ @Override - public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName) - { - if (StringUtils.isNull(userList) || userList.size() == 0) - { + public String importUser(List<SysUser> userList, Boolean isUpdateSupport, String operName) { + if (StringUtils.isNull(userList) || userList.size() == 0) { throw new ServiceException("瀵煎叆鐢ㄦ埛鏁版嵁涓嶈兘涓虹┖锛�"); } int successNum = 0; int failureNum = 0; + List<SysUser> insertList = new ArrayList<>(); + List<SysUser> updateList = new ArrayList<>(); StringBuilder successMsg = new StringBuilder(); StringBuilder failureMsg = new StringBuilder(); - for (SysUser user : userList) - { - try - { + + for (SysUser user : userList) { + try { // 楠岃瘉鏄惁瀛樺湪杩欎釜鐢ㄦ埛 SysUser u = userMapper.selectUserByUserName(user.getUserName()); - if (StringUtils.isNull(u)) - { + if (StringUtils.isNull(u)) { BeanValidators.validateWithException(validator, user); deptService.checkDeptDataScope(user.getDeptId()); String password = configService.selectConfigByKey("sys.user.initPassword"); user.setPassword(SecurityUtils.encryptPassword(password)); user.setCreateBy(operName); - userMapper.insertUser(user); + if (userMapper.insertUser(user) > 0) { + insertList.add(user); + } successNum++; successMsg.append("<br/>" + successNum + "銆佽处鍙� " + user.getUserName() + " 瀵煎叆鎴愬姛"); - } - else if (isUpdateSupport) - { + } else if (isUpdateSupport) { BeanValidators.validateWithException(validator, user); checkUserAllowed(u); checkUserDataScope(u.getUserId()); deptService.checkDeptDataScope(user.getDeptId()); user.setUserId(u.getUserId()); user.setUpdateBy(operName); - userMapper.updateUser(user); + if (userMapper.updateUser(user) > 0) { + updateList.add(user); + } successNum++; successMsg.append("<br/>" + successNum + "銆佽处鍙� " + user.getUserName() + " 鏇存柊鎴愬姛"); - } - else - { + } else { failureNum++; failureMsg.append("<br/>" + failureNum + "銆佽处鍙� " + user.getUserName() + " 宸插瓨鍦�"); } - } - catch (Exception e) - { + } catch (Exception e) { failureNum++; String msg = "<br/>" + failureNum + "銆佽处鍙� " + user.getUserName() + " 瀵煎叆澶辫触锛�"; failureMsg.append(msg + e.getMessage()); log.error(msg, e); } } - if (failureNum > 0) - { + if (insertList.size() > 0) { + syncUserService.insertUsers(insertList); + } + if (updateList.size() > 0) { + syncUserService.updateUsers(updateList); + } + if (failureNum > 0) { failureMsg.insert(0, "寰堟姳姝夛紝瀵煎叆澶辫触锛佸叡 " + failureNum + " 鏉℃暟鎹牸寮忎笉姝g‘锛岄敊璇涓嬶細"); throw new ServiceException(failureMsg.toString()); - } - else - { + } else { successMsg.insert(0, "鎭枩鎮紝鏁版嵁宸插叏閮ㄥ鍏ユ垚鍔燂紒鍏� " + successNum + " 鏉★紝鏁版嵁濡備笅锛�"); } return successMsg.toString(); } - } diff --git a/se-modules/se-system/src/main/resources/bootstrap.yml b/se-modules/se-system/src/main/resources/bootstrap.yml index 60963fc..760e409 100644 --- a/se-modules/se-system/src/main/resources/bootstrap.yml +++ b/se-modules/se-system/src/main/resources/bootstrap.yml @@ -12,16 +12,17 @@ active: dev cloud: nacos: + username: nacos + password: nAcos_!9#_admIn discovery: # 鏈嶅姟娉ㄥ唽鍦板潃 - #server-addr: 192.168.11.203:8848 server-addr: 127.0.0.1:8848 config: # 閰嶇疆涓績鍦板潃 - #server-addr: 192.168.11.203:8848 server-addr: 127.0.0.1:8848 # 閰嶇疆鏂囦欢鏍煎紡 file-extension: yml # 鍏变韩閰嶇疆 shared-configs: - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension} +enableEncrypt: false \ No newline at end of file diff --git a/se-modules/se-system/src/main/resources/logback.xml b/se-modules/se-system/src/main/resources/logback.xml index 1f21d36..a60457c 100644 --- a/se-modules/se-system/src/main/resources/logback.xml +++ b/se-modules/se-system/src/main/resources/logback.xml @@ -57,7 +57,7 @@ </filter> </appender> - <!-- 绯荤粺妯″潡鏃ュ織绾у埆鎺у埗 --> + <!-- 绯荤粺妯″潡鏃ュ織绾у埆鎺у埗:info,debug --> <logger name="com.se" level="info" /> <!-- Spring鏃ュ織绾у埆鎺у埗 --> <logger name="org.springframework" level="warn" /> diff --git a/se-modules/se-system/src/main/resources/mapper/system/SysMenuMapper.xml b/se-modules/se-system/src/main/resources/mapper/system/SysMenuMapper.xml index 96e77e2..f5e0ae9 100644 --- a/se-modules/se-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/se-modules/se-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -26,10 +26,11 @@ <result property="updateTime" column="update_time" /> <result property="updateBy" column="update_by" /> <result property="remark" column="remark" /> + <result property="mark" column="mark" /> </resultMap> <sql id="selectMenuVo"> - select menu_id, menu_name, parent_id, order_num, path, component, `query`, route_name, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time + select menu_id, menu_name, parent_id, order_num, path, component, `query`, route_name, is_frame, is_cache, menu_type, visible, status, ifnull(perms,'') as perms, icon, create_time, mark from sys_menu </sql> @@ -50,13 +51,13 @@ </select> <select id="selectMenuTreeAll" resultMap="SysMenuResult"> - select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.route_name, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time + select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.route_name, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time, m.mark from sys_menu m where m.menu_type in ('M', 'C') and m.status = 0 order by m.parent_id, m.order_num </select> <select id="selectMenuListByUserId" parameterType="SysMenu" resultMap="SysMenuResult"> - select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.route_name, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time + select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.route_name, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time, m.mark from sys_menu m left join sys_role_menu rm on m.menu_id = rm.menu_id left join sys_user_role ur on rm.role_id = ur.role_id @@ -73,18 +74,41 @@ </if> order by m.parent_id, m.order_num </select> - - <select id="selectMenuTreeByUserId" parameterType="Long" resultMap="SysMenuResult"> - select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.route_name, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time + + <select id="selectMenuTreeByUserId" resultMap="SysMenuResult"> + select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.route_name, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time, m.mark from sys_menu m left join sys_role_menu rm on m.menu_id = rm.menu_id left join sys_user_role ur on rm.role_id = ur.role_id left join sys_role ro on ur.role_id = ro.role_id left join sys_user u on ur.user_id = u.user_id - where u.user_id = #{userId} and m.menu_type in ('M', 'C') and m.status = 0 AND ro.status = 0 + where m.menu_type in ('M', 'C') and m.status = 0 and ro.status = 0 + <if test="userId != null and userId != ''"> + and u.user_id = #{userId} + </if> + <if test="mark != null and mark != ''"> + and m.mark = #{mark} + </if> order by m.parent_id, m.order_num </select> - + + <select id="selectMenusByUserIdAndMark" resultMap="SysMenuResult"> + select distinct m.menu_id, m.parent_id, m.menu_name, m.path, m.component, m.`query`, m.route_name, m.visible, m.status, ifnull(m.perms,'') as perms, m.is_frame, m.is_cache, m.menu_type, m.icon, m.order_num, m.create_time, m.mark + from sys_menu m + left join sys_role_menu rm on m.menu_id = rm.menu_id + left join sys_user_role ur on rm.role_id = ur.role_id + left join sys_role ro on ur.role_id = ro.role_id + left join sys_user u on ur.user_id = u.user_id + where m.menu_type in ('M', 'C', 'F') and m.status = 0 and ro.status = 0 + <if test="userId != null and userId != ''"> + and u.user_id = #{userId} + </if> + <if test="mark != null and mark != ''"> + and m.mark = #{mark} + </if> + order by m.parent_id, m.order_num + </select> + <select id="selectMenuListByRoleId" resultType="Long"> select m.menu_id from sys_menu m @@ -152,6 +176,7 @@ <if test="icon !=null and icon != ''">icon = #{icon},</if> <if test="remark != null and remark != ''">remark = #{remark},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> + <if test="mark != null and mark != ''">mark = #{mark},</if> update_time = sysdate() </set> where menu_id = #{menuId} @@ -176,6 +201,7 @@ <if test="icon != null and icon != ''">icon,</if> <if test="remark != null and remark != ''">remark,</if> <if test="createBy != null and createBy != ''">create_by,</if> + <if test="mark != null and mark != ''">mark,</if> create_time )values( <if test="menuId != null and menuId != 0">#{menuId},</if> @@ -195,6 +221,7 @@ <if test="icon != null and icon != ''">#{icon},</if> <if test="remark != null and remark != ''">#{remark},</if> <if test="createBy != null and createBy != ''">#{createBy},</if> + <if test="mark != null and mark != ''">#{mark},</if> sysdate() ) </insert> diff --git a/se-modules/se-system/src/main/resources/mapper/system/SysUserMapper.xml b/se-modules/se-system/src/main/resources/mapper/system/SysUserMapper.xml index cf65b3e..c324b3d 100644 --- a/se-modules/se-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/se-modules/se-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -130,6 +130,11 @@ <include refid="selectUserVo"/> where u.user_id = #{userId} </select> + + <select id="selectUserByIds" resultMap="SysUserResult"> + <include refid="selectUserVo"/> + where u.user_id in (${ids}) + </select> <select id="checkUserNameUnique" parameterType="String" resultMap="SysUserResult"> select user_id, user_name from sys_user where user_name = #{userName} and del_flag = '0' limit 1 -- Gitblit v1.9.3