diff --git a/schoolNewsServ/.bin/mysql/sql/createTableFile.sql b/schoolNewsServ/.bin/mysql/sql/createTableFile.sql
deleted file mode 100644
index a076c87..0000000
--- a/schoolNewsServ/.bin/mysql/sql/createTableFile.sql
+++ /dev/null
@@ -1,31 +0,0 @@
--- --------------------------------------------------------
--- 文件上传记录表
--- --------------------------------------------------------
-CREATE TABLE IF NOT EXISTS `tb_sys_file` (
- `id` VARCHAR(50) NOT NULL COMMENT '主键ID',
- `file_id` VARCHAR(64) NOT NULL COMMENT '文件ID',
- `file_name` VARCHAR(255) NOT NULL COMMENT '存储文件名(UUID生成)',
- `original_name` VARCHAR(255) NOT NULL COMMENT '原始文件名',
- `file_path` VARCHAR(500) NOT NULL COMMENT '文件存储路径',
- `file_url` VARCHAR(500) DEFAULT NULL COMMENT '文件访问URL',
- `file_size` BIGINT NOT NULL COMMENT '文件大小(字节)',
- `file_type` VARCHAR(50) DEFAULT NULL COMMENT '文件类型(如:image、document、video等)',
- `mime_type` VARCHAR(100) DEFAULT NULL COMMENT 'MIME类型(如:image/jpeg)',
- `storage_type` VARCHAR(20) NOT NULL DEFAULT 'local' COMMENT '存储类型(local-本地存储、minio-MinIO存储、oss-阿里云OSS等)',
- `module` VARCHAR(50) DEFAULT NULL COMMENT '所属模块(如:user、news、course等)',
- `business_id` VARCHAR(64) DEFAULT NULL COMMENT '业务ID(关联的业务数据ID)',
- `uploader` VARCHAR(64) DEFAULT NULL COMMENT '上传者用户ID',
- `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- `delete_time` DATETIME DEFAULT NULL COMMENT '删除时间',
- `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除(0-否,1-是)',
- PRIMARY KEY (`id`),
- INDEX `idx_file_id` (`file_id`),
- INDEX `idx_file_name` (`file_name`),
- INDEX `idx_uploader` (`uploader`),
- INDEX `idx_module_business` (`module`, `business_id`),
- INDEX `idx_storage_type` (`storage_type`),
- INDEX `idx_deleted` (`deleted`),
- INDEX `idx_create_time` (`create_time`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文件上传记录表';
-
diff --git a/schoolNewsServ/.bin/mysql/sql/createTableSystem.sql b/schoolNewsServ/.bin/mysql/sql/createTableSystem.sql
index 3401066..4c0b361 100644
--- a/schoolNewsServ/.bin/mysql/sql/createTableSystem.sql
+++ b/schoolNewsServ/.bin/mysql/sql/createTableSystem.sql
@@ -87,26 +87,39 @@ CREATE TABLE `tb_sys_notification` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统通知表';
-- 文件上传记录表
+-- --------------------------------------------------------
+-- 文件上传记录表
+-- --------------------------------------------------------
DROP TABLE IF EXISTS `tb_sys_file`;
-CREATE TABLE `tb_sys_file` (
- `id` VARCHAR(50) NOT NULL COMMENT '文件ID',
- `file_name` VARCHAR(255) NOT NULL COMMENT '文件名',
- `original_name` VARCHAR(255) NOT NULL COMMENT '原始文件名',
- `file_path` VARCHAR(500) NOT NULL COMMENT '文件路径',
- `file_url` VARCHAR(500) DEFAULT NULL COMMENT '访问URL',
- `file_size` BIGINT(20) DEFAULT 0 COMMENT '文件大小(字节)',
- `file_type` VARCHAR(50) DEFAULT NULL COMMENT '文件类型',
- `mime_type` VARCHAR(100) DEFAULT NULL COMMENT 'MIME类型',
- `module` VARCHAR(50) DEFAULT NULL COMMENT '所属模块',
- `business_id` VARCHAR(50) DEFAULT NULL COMMENT '业务ID',
- `uploader` VARCHAR(50) DEFAULT NULL COMMENT '上传者',
- `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
- PRIMARY KEY (`id`),
- KEY `idx_module` (`module`),
- KEY `idx_business` (`business_id`),
- KEY `idx_uploader` (`uploader`),
- KEY `idx_create_time` (`create_time`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='文件上传记录表';
+CREATE TABLE IF NOT EXISTS `tb_sys_file` (
+ `id` VARCHAR(50) NOT NULL COMMENT '主键ID',
+ `file_id` VARCHAR(64) NOT NULL COMMENT '文件ID',
+ `file_name` VARCHAR(255) NOT NULL COMMENT '存储文件名(UUID生成)',
+ `original_name` VARCHAR(255) NOT NULL COMMENT '原始文件名',
+ `file_path` VARCHAR(500) NOT NULL COMMENT '文件存储路径',
+ `file_url` VARCHAR(500) DEFAULT NULL COMMENT '文件访问URL',
+ `file_size` BIGINT NOT NULL COMMENT '文件大小(字节)',
+ `file_type` VARCHAR(50) DEFAULT NULL COMMENT '文件类型(如:image、document、video等)',
+ `mime_type` VARCHAR(100) DEFAULT NULL COMMENT 'MIME类型(如:image/jpeg)',
+ `storage_type` VARCHAR(20) NOT NULL DEFAULT 'local' COMMENT '存储类型(local-本地存储、minio-MinIO存储、oss-阿里云OSS等)',
+ `module` VARCHAR(50) DEFAULT NULL COMMENT '所属模块(如:user、news、course等)',
+ `business_id` VARCHAR(64) DEFAULT NULL COMMENT '业务ID(关联的业务数据ID)',
+ `uploader` VARCHAR(64) DEFAULT NULL COMMENT '上传者用户ID',
+ `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `update_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+ `delete_time` DATETIME DEFAULT NULL COMMENT '删除时间',
+ `deleted` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否删除(0-否,1-是)',
+ PRIMARY KEY (`id`),
+ INDEX `idx_file_id` (`file_id`),
+ INDEX `idx_file_name` (`file_name`),
+ INDEX `idx_uploader` (`uploader`),
+ INDEX `idx_module_business` (`module`, `business_id`),
+ INDEX `idx_storage_type` (`storage_type`),
+ INDEX `idx_deleted` (`deleted`),
+ INDEX `idx_create_time` (`create_time`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文件上传记录表';
+
+
-- 数据字典表
DROP TABLE IF EXISTS `tb_sys_dict_type`;
diff --git a/schoolNewsServ/.bin/mysql/sql/createTableUser.sql b/schoolNewsServ/.bin/mysql/sql/createTableUser.sql
index f895dc7..003781d 100644
--- a/schoolNewsServ/.bin/mysql/sql/createTableUser.sql
+++ b/schoolNewsServ/.bin/mysql/sql/createTableUser.sql
@@ -31,6 +31,7 @@ CREATE TABLE `tb_sys_user_info` (
`family_name` VARCHAR(50) DEFAULT NULL COMMENT '姓',
`given_name` VARCHAR(50) DEFAULT NULL COMMENT '名',
`full_name` VARCHAR(100) DEFAULT NULL COMMENT '全名',
+ `level` INT(4) DEFAULT 1 COMMENT '等级',
`id_card` VARCHAR(50) DEFAULT NULL COMMENT '身份证号',
`address` VARCHAR(255) DEFAULT NULL COMMENT '地址',
`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
diff --git a/schoolNewsServ/.bin/mysql/sql/initAll.sql b/schoolNewsServ/.bin/mysql/sql/initAll.sql
index 727f957..3171408 100644
--- a/schoolNewsServ/.bin/mysql/sql/initAll.sql
+++ b/schoolNewsServ/.bin/mysql/sql/initAll.sql
@@ -35,9 +35,6 @@ SOURCE createTableAI.sql;
-- 10. 创建系统配置和日志相关表
SOURCE createTableSystem.sql;
--- 11. 创建文件系统相关表
-SOURCE createTableFile.sql;
-
-- =====================================================
-- 插入初始数据
-- =====================================================
diff --git a/schoolNewsServ/.bin/mysql/sql/initMenuData.sql b/schoolNewsServ/.bin/mysql/sql/initMenuData.sql
index af71c92..2d24095 100644
--- a/schoolNewsServ/.bin/mysql/sql/initMenuData.sql
+++ b/schoolNewsServ/.bin/mysql/sql/initMenuData.sql
@@ -5,13 +5,15 @@ INSERT INTO `tb_sys_dept` (id,dept_id,name, description) VALUES ('1','root_depar
INSERT INTO `tb_sys_dept` (id,dept_id,name, parent_id, description) VALUES ('2','default_department', '默认部门', 'root_department', '系统默认创建的部门');
-- 插入角色数据
-INSERT INTO `tb_sys_role` (id,role_id, name, description) VALUES ('1','superadmin', '管理员', '系统管理员角色');
-INSERT INTO `tb_sys_role` (id,role_id, name, description) VALUES ('2','freedom', '自由角色', '自由角色');
+INSERT INTO `tb_sys_role` (id,role_id, name, description) VALUES ('1','superadmin', '超级管理员', '超级管理员角色');
+INSERT INTO `tb_sys_role` (id,role_id, name, description) VALUES ('2','admin', '管理员', '管理员角色');
+INSERT INTO `tb_sys_role` (id,role_id, name, description) VALUES ('3','freedom', '自由角色', '自由角色');
-- 插入部门-角色关联数据
INSERT INTO `tb_sys_dept_role` (id, dept_id, role_id, creator, create_time) VALUES
('1', 'root_department', 'superadmin', '1', now()),
-('2', 'default_department', 'freedom', '1', now());
+('2', 'default_department', 'admin', '1', now()),
+('3', 'default_department', 'freedom', '1', now());
-- 插入用户-角色关联数据
INSERT INTO `tb_sys_user_dept_role` (id, user_id, dept_id, role_id, creator, create_time) VALUES ('1', '1', 'root_department', 'superadmin', '1', now());
@@ -36,10 +38,11 @@ INSERT INTO `tb_sys_permission` (id,permission_id, name, code, description, modu
('6','perm_system_user_manage', '系统用户查看', 'system:user:manage', '系统用户查看权限', 'module_system', '1', now()),
('7','perm_system_module_manage', '系统模块查看', 'system:module:manage', '系统模块查看权限', 'module_system', '1', now()),
('8','perm_news_manage', '新闻管理', 'news:manage', '新闻管理权限', 'module_news', '1', now()),
-('9','perm_study_manage', '学习管理', 'study:manage', '学习管理权限', 'module_study', '1', now()),
-('10','perm_ai_manage', 'AI管理', 'ai:manage', 'AI管理权限', 'module_ai', '1', now()),
-('11','perm_usercenter_manage', '用户中心管理', 'usercenter:manage', '用户中心管理权限', 'module_usercenter', '1', now()),
-('12','perm_file_manage', '文件管理', 'file:manage', '文件管理权限', 'module_file', '1', now());
+('9','perm_news_article_add', '文章添加', 'news:manage', '文章添加权限', 'module_news', '1', now()),
+('10','perm_study_manage', '学习管理', 'study:manage', '学习管理权限', 'module_study', '1', now()),
+('11','perm_ai_manage', 'AI管理', 'ai:manage', 'AI管理权限', 'module_ai', '1', now()),
+('12','perm_usercenter_manage', '用户中心管理', 'usercenter:manage', '用户中心管理权限', 'module_usercenter', '1', now()),
+('13','perm_file_manage', '文件管理', 'file:manage', '文件管理权限', 'module_file', '1', now());
-- 插入角色-权限关联数据
INSERT INTO `tb_sys_role_permission` (id, role_id, permission_id, creator, create_time) VALUES
@@ -52,11 +55,12 @@ INSERT INTO `tb_sys_role_permission` (id, role_id, permission_id, creator, creat
('6', 'superadmin', 'perm_system_user_manage', '1', now()),
('7', 'superadmin', 'perm_system_module_manage', '1', now()),
('8', 'superadmin', 'perm_news_manage', '1', now()),
-('9', 'superadmin', 'perm_study_manage', '1', now()),
-('10', 'superadmin', 'perm_ai_manage', '1', now()),
-('11', 'superadmin', 'perm_usercenter_manage', '1', now()),
-('12', 'superadmin', 'perm_file_manage', '1', now()),
-('13', 'freedom', 'perm_default', '1', now());
+('9', 'superadmin', 'perm_news_article_add', '1', now()),
+('10', 'superadmin', 'perm_study_manage', '1', now()),
+('11', 'superadmin', 'perm_ai_manage', '1', now()),
+('12', 'superadmin', 'perm_usercenter_manage', '1', now()),
+('13', 'superadmin', 'perm_file_manage', '1', now()),
+('14', 'freedom', 'perm_default', '1', now());
-- 插入前端菜单数据
INSERT INTO `tb_sys_menu` (id, menu_id, name, parent_id, url, component, icon, order_num, type, layout, creator, create_time) VALUES
@@ -110,6 +114,9 @@ INSERT INTO `tb_sys_menu` (id, menu_id, name, parent_id, url, component, icon, o
('3002', 'menu_admin_article', '文章管理', 'menu_admin_resource_manage', '/admin/manage/resource/article', 'admin/manage/resource/ArticleManagementView', 'el-icon-document', 2, 1, 'NavigationLayout', '1', now()),
('3003', 'menu_admin_data_records', '数据记录', 'menu_admin_resource_manage', '/admin/manage/resource/data-records', 'admin/manage/resource/DataRecordsView', 'el-icon-data-line', 3, 1, 'NavigationLayout', '1', now()),
+-- 文章相关
+('3010', 'menu_article_add', '文章添加', 'menu_admin_article', '/article/add', 'article/ArticleAddView', 'el-icon-plus', 1, 3, 'NavigationLayout', '1', now()),
+
-- 运营管理
('4000', 'menu_admin_content_manage', '运营管理', NULL, '', '', 'el-icon-s-operation', 4, 1, '', '1', now()),
('4001', 'menu_admin_banner', 'Banner管理', 'menu_admin_content_manage', '/admin/manage/content/banner', 'admin/manage/content/BannerManagementView', 'el-icon-picture', 1, 1, 'NavigationLayout', '1', now()),
@@ -159,6 +166,7 @@ INSERT INTO `tb_sys_menu_permission` (id, permission_id, menu_id, creator, creat
('117', 'perm_default', 'menu_account_settings', '1', now()),
('118', 'perm_ai_manage', 'menu_ai_assistant', '1', now()),
('119', 'perm_default', 'menu_user_dropdown', '1', now()),
+('120', 'perm_news_article_add', 'menu_article_add', '1', now()),
-- 后端管理菜单权限关联
diff --git a/schoolNewsServ/.bin/mysql/sql/reInit.sh b/schoolNewsServ/.bin/mysql/sql/reInit.sh
index 56a2f28..36474fa 100644
--- a/schoolNewsServ/.bin/mysql/sql/reInit.sh
+++ b/schoolNewsServ/.bin/mysql/sql/reInit.sh
@@ -145,6 +145,7 @@ show_initialization_info() {
print_message $YELLOW " - 学习管理"
print_message $YELLOW " - AI智能体"
print_message $YELLOW " - 系统配置"
+ print_message $YELLOW " - 文件管理"
print_message $BLUE "====================================================="
}
diff --git a/schoolNewsServ/admin/pom.xml b/schoolNewsServ/admin/pom.xml
index 2b9d03f..7daec84 100644
--- a/schoolNewsServ/admin/pom.xml
+++ b/schoolNewsServ/admin/pom.xml
@@ -75,6 +75,13 @@
org.xyzh.App
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ true
+
+
diff --git a/schoolNewsServ/admin/src/main/resources/application.yml b/schoolNewsServ/admin/src/main/resources/application.yml
index f1174d1..3d19668 100644
--- a/schoolNewsServ/admin/src/main/resources/application.yml
+++ b/schoolNewsServ/admin/src/main/resources/application.yml
@@ -61,19 +61,22 @@ school-news:
max-login-attempts: 5
lockout-duration: 30 # 锁定30分钟
- # 免登录白名单
+ # 免登录白名单(需要包含 context-path)
white-list:
- - "/auth/login"
- - "/auth/logout"
- - "/auth/captcha"
- - "/auth/health"
- - "/actuator/**"
- - "/swagger-ui/**"
- - "/v3/api-docs/**"
- - "/favicon.ico"
- - "/error"
- - "/public/**"
- - "/static/**"
+ - "/schoolNewsServ/auth/login"
+ - "/schoolNewsServ/auth/logout"
+ - "/schoolNewsServ/auth/captcha"
+ - "/schoolNewsServ/auth/health"
+ - "/schoolNewsServ/actuator/.*"
+ - "/schoolNewsServ/swagger-ui/.*"
+ - "/schoolNewsServ/v3/api-docs/.*"
+ - "/schoolNewsServ/favicon.ico"
+ - "/schoolNewsServ/error"
+ - "/schoolNewsServ/public/.*"
+ - "/schoolNewsServ/static/.*"
+ - "/schoolNewsServ/file/download/.*"
+
+
# MyBatis Plus配置
mybatis-plus:
diff --git a/schoolNewsServ/admin/uploads/article/24561ba221724f94b531aa23f88a0f28.png b/schoolNewsServ/admin/uploads/article/24561ba221724f94b531aa23f88a0f28.png
new file mode 100644
index 0000000..9ad1bfc
Binary files /dev/null and b/schoolNewsServ/admin/uploads/article/24561ba221724f94b531aa23f88a0f28.png differ
diff --git a/schoolNewsServ/admin/uploads/article/45c16fe3396c492d8fba095bfe6f3e14.png b/schoolNewsServ/admin/uploads/article/45c16fe3396c492d8fba095bfe6f3e14.png
new file mode 100644
index 0000000..9ad1bfc
Binary files /dev/null and b/schoolNewsServ/admin/uploads/article/45c16fe3396c492d8fba095bfe6f3e14.png differ
diff --git a/schoolNewsServ/admin/uploads/article/6bad0dd548104624bc2310d5b8b38d7f.png b/schoolNewsServ/admin/uploads/article/6bad0dd548104624bc2310d5b8b38d7f.png
new file mode 100644
index 0000000..9ad1bfc
Binary files /dev/null and b/schoolNewsServ/admin/uploads/article/6bad0dd548104624bc2310d5b8b38d7f.png differ
diff --git a/schoolNewsServ/admin/uploads/article/804c28b50eb648d386c732108ddf3bf1.mp4 b/schoolNewsServ/admin/uploads/article/804c28b50eb648d386c732108ddf3bf1.mp4
new file mode 100644
index 0000000..fafe930
Binary files /dev/null and b/schoolNewsServ/admin/uploads/article/804c28b50eb648d386c732108ddf3bf1.mp4 differ
diff --git a/schoolNewsServ/admin/uploads/article/86a8484291d247ab910508cd9ed1f6e1.png b/schoolNewsServ/admin/uploads/article/86a8484291d247ab910508cd9ed1f6e1.png
new file mode 100644
index 0000000..9ad1bfc
Binary files /dev/null and b/schoolNewsServ/admin/uploads/article/86a8484291d247ab910508cd9ed1f6e1.png differ
diff --git a/schoolNewsServ/admin/uploads/article/943a4127215e4d9488cbc9c2879426d5.png b/schoolNewsServ/admin/uploads/article/943a4127215e4d9488cbc9c2879426d5.png
new file mode 100644
index 0000000..9ad1bfc
Binary files /dev/null and b/schoolNewsServ/admin/uploads/article/943a4127215e4d9488cbc9c2879426d5.png differ
diff --git a/schoolNewsServ/admin/uploads/article/9670700ffb284e52b0d0f7218f0ccea5.png b/schoolNewsServ/admin/uploads/article/9670700ffb284e52b0d0f7218f0ccea5.png
new file mode 100644
index 0000000..9ad1bfc
Binary files /dev/null and b/schoolNewsServ/admin/uploads/article/9670700ffb284e52b0d0f7218f0ccea5.png differ
diff --git a/schoolNewsServ/admin/uploads/article/975c1f9de18e4d73a3749fb1c5d793c7.png b/schoolNewsServ/admin/uploads/article/975c1f9de18e4d73a3749fb1c5d793c7.png
new file mode 100644
index 0000000..9ad1bfc
Binary files /dev/null and b/schoolNewsServ/admin/uploads/article/975c1f9de18e4d73a3749fb1c5d793c7.png differ
diff --git a/schoolNewsServ/admin/uploads/article/af58b571b1f7439392f7af6111c78a88.png b/schoolNewsServ/admin/uploads/article/af58b571b1f7439392f7af6111c78a88.png
new file mode 100644
index 0000000..9ad1bfc
Binary files /dev/null and b/schoolNewsServ/admin/uploads/article/af58b571b1f7439392f7af6111c78a88.png differ
diff --git a/schoolNewsServ/admin/uploads/article/bf244c41e04e44d38aa13d11c256a2ec.png b/schoolNewsServ/admin/uploads/article/bf244c41e04e44d38aa13d11c256a2ec.png
new file mode 100644
index 0000000..9ad1bfc
Binary files /dev/null and b/schoolNewsServ/admin/uploads/article/bf244c41e04e44d38aa13d11c256a2ec.png differ
diff --git a/schoolNewsServ/admin/uploads/article/df49dddde6734464a235fadc3ec9e57f.png b/schoolNewsServ/admin/uploads/article/df49dddde6734464a235fadc3ec9e57f.png
new file mode 100644
index 0000000..9ad1bfc
Binary files /dev/null and b/schoolNewsServ/admin/uploads/article/df49dddde6734464a235fadc3ec9e57f.png differ
diff --git a/schoolNewsServ/admin/uploads/article/f5f5531946a340e688f34c99c2d06ecd.png b/schoolNewsServ/admin/uploads/article/f5f5531946a340e688f34c99c2d06ecd.png
new file mode 100644
index 0000000..9ad1bfc
Binary files /dev/null and b/schoolNewsServ/admin/uploads/article/f5f5531946a340e688f34c99c2d06ecd.png differ
diff --git a/schoolNewsServ/api/api-system/src/main/java/org/xyzh/api/system/user/UserService.java b/schoolNewsServ/api/api-system/src/main/java/org/xyzh/api/system/user/UserService.java
index a99b25c..bb457a0 100644
--- a/schoolNewsServ/api/api-system/src/main/java/org/xyzh/api/system/user/UserService.java
+++ b/schoolNewsServ/api/api-system/src/main/java/org/xyzh/api/system/user/UserService.java
@@ -8,6 +8,7 @@ import org.xyzh.common.dto.user.TbSysUser;
import org.xyzh.common.dto.user.TbSysUserDeptRole;
import org.xyzh.common.dto.user.TbSysUserInfo;
import org.xyzh.common.vo.UserDeptRoleVO;
+import org.xyzh.common.vo.UserVO;
/**
* @description UserRemoteService.java文件描述 用户远程服务接口
@@ -198,4 +199,13 @@ public interface UserService {
* @since 2025-10-06
*/
ResultDomain updateUserInfo(TbSysUserInfo userInfo);
+
+ /**
+ * @description 获取用户信息总览
+ * @param userId 用户ID
+ * @return ResultDomain 用户信息总览
+ * @author yslg
+ * @since 2025-10-18
+ */
+ ResultDomain getUserInfoTotal(String userId);
}
diff --git a/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/dto/user/TbSysUserInfo.java b/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/dto/user/TbSysUserInfo.java
index f9c7b53..64cce88 100644
--- a/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/dto/user/TbSysUserInfo.java
+++ b/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/dto/user/TbSysUserInfo.java
@@ -56,7 +56,14 @@ public class TbSysUserInfo extends BaseDTO {
private String fullName;
/**
- * @description ID卡号
+ * @description 等级
+ * @author yslg
+ * @since 2025-10-18
+ */
+ private Integer level;
+
+ /**
+ * @description 身份证号
* @author yslg
* @since 2025-09-11
*/
@@ -117,6 +124,14 @@ public class TbSysUserInfo extends BaseDTO {
this.fullName = fullName;
}
+ public Integer getLevel() {
+ return level;
+ }
+
+ public void setLevel(Integer level) {
+ this.level = level;
+ }
+
public String getIdCard() {
return idCard;
}
@@ -144,6 +159,7 @@ public class TbSysUserInfo extends BaseDTO {
", familyName='" + familyName + '\'' +
", givenName='" + givenName + '\'' +
", fullName='" + fullName + '\'' +
+ ", level=" + level +
", idCard='" + idCard + '\'' +
", address='" + address + '\'' +
", createTime=" + getCreateTime() +
diff --git a/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/vo/UserVO.java b/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/vo/UserVO.java
index 0d80551..98051ae 100644
--- a/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/vo/UserVO.java
+++ b/schoolNewsServ/common/common-dto/src/main/java/org/xyzh/common/vo/UserVO.java
@@ -1,5 +1,7 @@
package org.xyzh.common.vo;
+import java.util.Date;
+
public class UserVO {
private String id;
@@ -9,17 +11,20 @@ public class UserVO {
private String phone;
private String wechatID;
private String avatar;
- private String gender;
+ private Integer gender;
private String familyName;
private String givenName;
private String fullName;
+ private Integer level;
private String idCard;
private String address;
- private String createTime;
- private String updateTime;
- private String deleteTime;
- private String deleted;
- private String status;
+ private String deptName;
+ private String roleName;
+ private Date createTime;
+ private Date updateTime;
+ private Date deleteTime;
+ private Boolean deleted;
+ private Integer status;
public String getId() {
return id;
}
@@ -62,10 +67,10 @@ public class UserVO {
public void setAvatar(String avatar) {
this.avatar = avatar;
}
- public String getGender() {
+ public Integer getGender() {
return gender;
}
- public void setGender(String gender) {
+ public void setGender(Integer gender) {
this.gender = gender;
}
public String getFamilyName() {
@@ -98,34 +103,52 @@ public class UserVO {
public void setAddress(String address) {
this.address = address;
}
- public String getCreateTime() {
+ public String getDeptName() {
+ return deptName;
+ }
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+ public String getRoleName() {
+ return roleName;
+ }
+ public void setRoleName(String roleName) {
+ this.roleName = roleName;
+ }
+ public Integer getLevel() {
+ return level;
+ }
+ public void setLevel(Integer level) {
+ this.level = level;
+ }
+ public Date getCreateTime() {
return createTime;
}
- public void setCreateTime(String createTime) {
+ public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
- public String getUpdateTime() {
+ public Date getUpdateTime() {
return updateTime;
}
- public void setUpdateTime(String updateTime) {
+ public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
- public String getDeleteTime() {
+ public Date getDeleteTime() {
return deleteTime;
}
- public void setDeleteTime(String deleteTime) {
+ public void setDeleteTime(Date deleteTime) {
this.deleteTime = deleteTime;
}
- public String getDeleted() {
+ public Boolean getDeleted() {
return deleted;
}
- public void setDeleted(String deleted) {
+ public void setDeleted(Boolean deleted) {
this.deleted = deleted;
}
- public String getStatus() {
+ public Integer getStatus() {
return status;
}
- public void setStatus(String status) {
+ public void setStatus(Integer status) {
this.status = status;
}
diff --git a/schoolNewsServ/file/pom.xml b/schoolNewsServ/file/pom.xml
index 26ea5dd..29e6be9 100644
--- a/schoolNewsServ/file/pom.xml
+++ b/schoolNewsServ/file/pom.xml
@@ -78,4 +78,16 @@
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/schoolNewsServ/file/src/main/resources/application.yaml b/schoolNewsServ/file/src/main/resources/application.yaml
index a211b86..42bdaa0 100644
--- a/schoolNewsServ/file/src/main/resources/application.yaml
+++ b/schoolNewsServ/file/src/main/resources/application.yaml
@@ -46,7 +46,7 @@ file:
- type: local
enabled: true
base-path: ./uploads
- url-prefix: http://localhost:8080/files
+
# MinIO存储配置(如不需要可以删除或设置enabled为false)
# - type: minio
@@ -55,8 +55,10 @@ file:
# access-key: minioadmin
# secret-key: minioadmin
# bucket-name: school-news
-
-# 服务端口
-server:
- port: 8086
+# 认证配置
+school-news:
+ auth:
+ # 免登录白名单 - file模块
+ white-list:
+ - "/file/download/**"
diff --git a/schoolNewsServ/system/src/main/java/org/xyzh/system/mapper/UserMapper.java b/schoolNewsServ/system/src/main/java/org/xyzh/system/mapper/UserMapper.java
index 398b8d6..6629b89 100644
--- a/schoolNewsServ/system/src/main/java/org/xyzh/system/mapper/UserMapper.java
+++ b/schoolNewsServ/system/src/main/java/org/xyzh/system/mapper/UserMapper.java
@@ -5,6 +5,7 @@ import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.xyzh.common.dto.user.TbSysUser;
import org.xyzh.common.dto.user.TbSysUserInfo;
+import org.xyzh.common.vo.UserVO;
import java.util.List;
@@ -123,4 +124,13 @@ public interface UserMapper extends BaseMapper {
* @since 2025-10-06
*/
int updateUserInfo(@Param("userInfo") TbSysUserInfo userInfo);
+
+ /**
+ * @description 获取用户信息总览
+ * @param userId 用户ID
+ * @return UserVO 用户信息总览
+ * @author yslg
+ * @since 2025-10-18
+ */
+ UserVO selectUserInfoTotal(@Param("userId") String userId);
}
diff --git a/schoolNewsServ/system/src/main/java/org/xyzh/system/user/service/impl/SysUserServiceImpl.java b/schoolNewsServ/system/src/main/java/org/xyzh/system/user/service/impl/SysUserServiceImpl.java
index c8b863f..26a8873 100644
--- a/schoolNewsServ/system/src/main/java/org/xyzh/system/user/service/impl/SysUserServiceImpl.java
+++ b/schoolNewsServ/system/src/main/java/org/xyzh/system/user/service/impl/SysUserServiceImpl.java
@@ -12,6 +12,7 @@ import org.xyzh.common.dto.user.TbSysUserDeptRole;
import org.xyzh.common.dto.user.TbSysUserInfo;
import org.xyzh.common.utils.IDUtils;
import org.xyzh.common.vo.UserDeptRoleVO;
+import org.xyzh.common.vo.UserVO;
import org.xyzh.system.mapper.UserMapper;
import org.xyzh.system.mapper.UserInfoMapper;
import org.xyzh.system.mapper.UserDeptRoleMapper;
@@ -713,4 +714,19 @@ public class SysUserServiceImpl implements SysUserService {
}
+ @Override
+ public ResultDomain getUserInfoTotal(String userId) {
+ ResultDomain resultDomain = new ResultDomain<>();
+ try {
+ logger.info("开始获取用户信息总览:{}", userId);
+ UserVO userVO = userMapper.selectUserInfoTotal(userId);
+
+ resultDomain.success("获取用户信息总览成功", userVO);
+ return resultDomain;
+ } catch (Exception e) {
+ logger.error("获取用户信息总览失败:{}", userId, e);
+ resultDomain.fail("获取用户信息总览失败:" + e.getMessage());
+ return resultDomain;
+ }
+ }
}
\ No newline at end of file
diff --git a/schoolNewsServ/system/src/main/resources/mapper/UserInfoMapper.xml b/schoolNewsServ/system/src/main/resources/mapper/UserInfoMapper.xml
index abf72bb..50ad816 100644
--- a/schoolNewsServ/system/src/main/resources/mapper/UserInfoMapper.xml
+++ b/schoolNewsServ/system/src/main/resources/mapper/UserInfoMapper.xml
@@ -9,6 +9,7 @@
+
@@ -18,7 +19,7 @@
- id, user_id, avatar, gender, family_name, given_name, full_name, id_card, address, create_time, update_time, delete_time, deleted
+ id, user_id, avatar, gender, family_name, given_name, full_name, level, id_card, address, create_time, update_time, delete_time, deleted
@@ -37,6 +38,7 @@
family_name = #{userInfo.familyName},
given_name = #{userInfo.givenName},
full_name = #{userInfo.fullName},
+ level = #{userInfo.level},
id_card = #{userInfo.idCard},
address = #{userInfo.address},
updater = #{userInfo.updater},
diff --git a/schoolNewsServ/system/src/main/resources/mapper/UserMapper.xml b/schoolNewsServ/system/src/main/resources/mapper/UserMapper.xml
index 28b9a4f..c452200 100644
--- a/schoolNewsServ/system/src/main/resources/mapper/UserMapper.xml
+++ b/schoolNewsServ/system/src/main/resources/mapper/UserMapper.xml
@@ -32,6 +32,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
id, username, password, email, phone, wechat_id,
@@ -228,4 +244,27 @@
WHERE user_id = #{userInfo.userID} AND deleted = 0
+
+
+
+
diff --git a/schoolNewsServ/usercenter/src/main/java/org/xyzh/usercenter/controller/UserProfileController.java b/schoolNewsServ/usercenter/src/main/java/org/xyzh/usercenter/controller/UserProfileController.java
index 7d1ac0e..42b22bc 100644
--- a/schoolNewsServ/usercenter/src/main/java/org/xyzh/usercenter/controller/UserProfileController.java
+++ b/schoolNewsServ/usercenter/src/main/java/org/xyzh/usercenter/controller/UserProfileController.java
@@ -10,6 +10,7 @@ import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.dto.system.TbSysFile;
import org.xyzh.common.dto.user.TbSysUser;
import org.xyzh.common.dto.user.TbSysUserInfo;
+import org.xyzh.common.vo.UserVO;
import org.xyzh.api.system.user.UserService;
import org.xyzh.common.annotation.HttpLogin;
import org.xyzh.common.core.domain.LoginDomain;
@@ -39,13 +40,13 @@ public class UserProfileController {
* 获取个人信息
*/
@GetMapping("/info")
- public ResultDomain getUserProfile(@HttpLogin LoginDomain loginDomain) {
+ public ResultDomain getUserProfile(@HttpLogin LoginDomain loginDomain) {
// TODO: 实现获取个人信息
- ResultDomain result = userService.getUserInfoById(loginDomain.getUser().getID());
+ ResultDomain result = userService.getUserInfoTotal(loginDomain.getUser().getID());
if (result.isSuccess()) {
return result;
} else {
- ResultDomain result2 = new ResultDomain<>();
+ ResultDomain result2 = new ResultDomain<>();
result2.fail(result.getCode(), result.getMessage());
return result2;
}