diff --git a/react-ui/src/pages/User/Center/index.tsx b/react-ui/src/pages/User/Center/index.tsx
index 7272fa3..4028e11 100644
--- a/react-ui/src/pages/User/Center/index.tsx
+++ b/react-ui/src/pages/User/Center/index.tsx
@@ -60,122 +60,89 @@
 
 
   //  渲染用户信息
+  // @ts-ignore
   const renderUserInfo = ({
-    userName,
-    phonenumber,
-    email,
-    sex,
-    dept,
-    uploadCount,
-    downloadCount,
-    rateCount,
-    score,
-  }: Partial<API.CurrentUser>) => {
+                            userName,
+                            phonenumber,
+                            email,
+                            sex,
+                            dept,
+                            uploadCount,
+                            downloadCount,
+                            rateCount,
+                            score,
+                            level,
+                          }: Partial<API.CurrentUser>) => {
     return (
       <List>
         <List.Item>
           <div>
-            <UserOutlined
-              style={{
-                marginRight: 8,
-              }}
-            />
+            <UserOutlined style={{ marginRight: 8 }} />
             用户名
           </div>
           <div>{userName}</div>
         </List.Item>
         <List.Item>
           <div>
-            <ManOutlined
-              style={{
-                marginRight: 8,
-              }}
-            />
+            <ManOutlined style={{ marginRight: 8 }} />
             性别
           </div>
           <div>{sex === '1' ? '女' : '男'}</div>
         </List.Item>
         <List.Item>
           <div>
-            <MobileOutlined
-              style={{
-                marginRight: 8,
-              }}
-            />
+            <MobileOutlined style={{ marginRight: 8 }} />
             电话
           </div>
           <div>{phonenumber}</div>
         </List.Item>
         <List.Item>
           <div>
-            <MailOutlined
-              style={{
-                marginRight: 8,
-              }}
-            />
+            <MailOutlined style={{ marginRight: 8 }} />
             邮箱
           </div>
           <div>{email}</div>
         </List.Item>
         <List.Item>
           <div>
-            <MailOutlined
-              style={{
-                marginRight: 8,
-              }}
-            />
+            <MailOutlined style={{ marginRight: 8 }} />
             上传量
           </div>
           <div>{uploadCount}</div>
         </List.Item>
         <List.Item>
           <div>
-            <MailOutlined
-              style={{
-                marginRight: 8,
-              }}
-            />
+            <MailOutlined style={{ marginRight: 8 }} />
             下载量
           </div>
           <div>{downloadCount}</div>
         </List.Item>
         <List.Item>
           <div>
-            <MailOutlined
-              style={{
-                marginRight: 8,
-              }}
-            />
+            <MailOutlined style={{ marginRight: 8 }} />
             分享率
           </div>
           <div>{rateCount}</div>
         </List.Item>
-        {/* <List.Item>
-          <div>
-            <ClusterOutlined
-              style={{
-                marginRight: 8,
-              }}
-            />
-            部门
-          </div>
-          <div>{dept?.deptName}</div>
-        </List.Item> */}
         <List.Item>
           <div>
-            <MailOutlined
-              style={{
-                marginRight: 8,
-              }}
-            />
+            <MailOutlined style={{ marginRight: 8 }} />
             积分
           </div>
           <div>{score}</div>
         </List.Item>
+        <List.Item>
+          <div>
+            <MailOutlined style={{ marginRight: 8 }} />
+            用户等级
+          </div>
+          <div>{level}</div>
+        </List.Item>
       </List>
     );
   };
 
+
   // 渲染tab切换
   const renderChildrenByTabKey = (tabValue: tabKeyType) => {
     if (tabValue === 'base') {
@@ -205,6 +172,8 @@
                 <div className={styles.avatarHolder} onClick={() => { setCropperModalOpen(true) }}>
                   <img alt="" src={currentUser.avatar} />
                 </div>
+
+                  ``  `````````````````````````````````1
                 {renderUserInfo(currentUser)}
                 <Divider dashed />
                 {/* <div className={styles.team}>
diff --git a/react-ui/src/services/ant-design-pro/typings.d.ts b/react-ui/src/services/ant-design-pro/typings.d.ts
index 4ee1264..20f44dc 100644
--- a/react-ui/src/services/ant-design-pro/typings.d.ts
+++ b/react-ui/src/services/ant-design-pro/typings.d.ts
@@ -1,54 +1,110 @@
+/* eslint-disable */
+// 该文件由 OneAPI 自动生成，请勿手动修改！
+
 declare namespace API {
-  type CurrentUser = UserInfo & {
-    signature?: string;
-    title?: string;
-    group?: string;
-    tags?: { key?: string; label?: string }[];
-    notifyCount?: number;
-    unreadCount?: number;
-    country?: string;
-    access?: string;
-    geographic?: {
-      province?: { label?: string; key?: string };
-      city?: { label?: string; key?: string };
-    };
+  interface PageInfo {
+    current?: number;
+    pageSize?: number;
+    total?: number;
+    list?: Array<Record<string, any>>;
+  }
+
+  interface PageInfo_UserInfo_ {
+    current?: number;
+    pageSize?: number;
+    total?: number;
+    list?: Array<UserInfo>;
+  }
+
+  interface Result {
+    code: number;
+    msg: string;
+    data?: Record<string, any>;
+  }
+
+  interface Result_PageInfo_UserInfo__ {
+    code: number;
+    msg: string;
+    data?: PageInfo_UserInfo_;
+  }
+  interface UserInfoResult {
+    code?: number;
+    msg?: string;
+    user: UserInfo;
+    permissions: any;
+    roles: any;
+  }
+
+  interface Result_string_ {
+    success?: boolean;
+    errorMessage?: string;
+    data?: string;
+  }
+
+  type UserGenderEnum = 'MALE' | 'FEMALE';
+
+  interface UserInfo {
+    userId?: string;
+    userName?: string;
+    nickName?: string;
+    avatar?: string;
+    sex?: string;
+    email?: string;
+    gender?: UserGenderEnum;
+    unreadCount: number;
     address?: string;
-    phone?: string;
+    phonenumber?: string;
+    dept?: Dept;
+    roles?: Role[];
+    permissions: string[];
+    uploadCount?: number;
+    downloadCount?: number;
+    rateCount?: number;
+    score?: number;
+  }
+
+  interface UserInfoVO {
+    name?: string;
+    /** nick */
+    nickName?: string;
+    /** email */
+    email?: string;
+  }
+
+  type definitions_0 = null;
+
+  type MenuItemMeta = {
+    title: string;
+    icon: string;
+    noCache: boolean;
+    link: string;
   };
 
-  type ErrorResponse = {
-    /** 业务约定的错误码 */
-    errorCode: string;
-    /** 业务上的错误信息 */
-    errorMessage?: string;
-    /** 业务上的请求是否成功 */
+  type RoutersMenuItem = {
+    alwaysShow?: boolean;
+    children?: RoutersMenuItem[];
+    component?: string;
+    hidden?: boolean;
+    meta: MenuItemMeta;
+    name: string;
+    path: string;
+    redirect?: string;
+    [key: string]: any;
+  };
+  interface GetRoutersResult {
+    code: number;
+    msg: string;
+    data: RoutersMenuItem[];
+  }
+
+  type NoticeIconList = {
+    data?: NoticeIconItem[];
+    /** 列表的内容总数 */
+    total?: number;
     success?: boolean;
   };
 
-  type FakeCaptcha = {
-    code?: number;
-    status?: string;
-  };
-
-  type getFakeCaptchaParams = {
-    /** 手机号 */
-    phone?: string;
-  };
-
-  type LoginParams = {
-    username?: string;
-    password?: string;
-    uuid?: string;
-    autoLogin?: boolean;
-    type?: string;
-  };
-
-  type LoginResult = {
-    code: number;
-    msg?: string;
-    type?: string;
-    token?: string;
-  };
+  type NoticeIconItemType = 'notification' | 'message' | 'event';
 
   type NoticeIconItem = {
     id?: string;
@@ -63,46 +119,77 @@
     type?: NoticeIconItemType;
   };
 
-  type NoticeIconItemType = 'notification' | 'message' | 'event';
-
-  type NoticeIconList = {
-    data?: NoticeIconItem[];
-    /** 列表的内容总数 */
-    total?: number;
-    success?: boolean;
+  export type MenuType = {
+    menuId: number;
+    menuName: string;
+    parentId: string;
+    orderNum: number;
+    path: string;
+    component: string;
+    isFrame: number;
+    isCache: number;
+    menuType: string;
+    visible: string;
+    status: string;
+    perms: string;
+    icon: string;
+    createBy: string;
+    createTime: Date;
+    updateBy: string;
+    updateTime: Date;
+    remark: string;
   };
 
-  type PageParams = {
-    current?: number;
-    pageSize?: number;
+  export type MenuListParams = {
+    menuId?: string;
+    menuName?: string;
+    parentId?: string;
+    orderNum?: string;
+    path?: string;
+    component?: string;
+    isFrame?: string;
+    isCache?: string;
+    menuType?: string;
+    visible?: string;
+    status?: string;
+    perms?: string;
+    icon?: string;
+    createBy?: string;
+    createTime?: string;
+    updateBy?: string;
+    updateTime?: string;
+    remark?: string;
+    pageSize?: string;
+    currentPage?: string;
+    filter?: string;
+    sorter?: string;
   };
 
-  type RuleList = {
-    data?: RuleListItem[];
-    /** 列表的内容总数 */
-    total?: number;
-    success?: boolean;
+  export type DictTypeType = {
+    dictId: number;
+    dictName: string;
+    dictType: string;
+    status: string;
+    createBy: string;
+    createTime: Date;
+    updateBy: string;
+    updateTime: Date;
+    remark: string;
   };
 
-  type RuleListItem = {
-    key?: number;
-    disabled?: boolean;
-    href?: string;
-    avatar?: string;
-    name?: string;
-    owner?: string;
-    desc?: string;
-    callNo?: number;
-    status?: number;
-    updatedAt?: string;
-    createdAt?: string;
-    progress?: number;
-  };
-
-  type ruleParams = {
-    /** 当前的页码 */
-    current?: number;
-    /** 页面的容量 */
-    pageSize?: number;
+  export type DictTypeListParams = {
+    dictId?: string;
+    dictName?: string;
+    dictType?: string;
+    status?: string;
+    createBy?: string;
+    createTime?: string;
+    updateBy?: string;
+    updateTime?: string;
+    remark?: string;
+    pageSize?: string;
+    currentPage?: string;
+    filter?: string;
+    sorter?: string;
   };
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
index 1d34237..c19ae8c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -1,6 +1,8 @@
 package com.ruoyi.web.controller.system;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 import jakarta.servlet.http.HttpServletResponse;
 import org.apache.commons.lang3.ArrayUtils;
@@ -31,8 +33,7 @@
 import com.ruoyi.system.service.ISysPostService;
 import com.ruoyi.system.service.ISysRoleService;
 import com.ruoyi.system.service.ISysUserService;
-import java.util.Map;
-import java.util.HashMap;
+
 /**
  * 用户信息
  * 
@@ -54,7 +55,6 @@
     @Autowired
     private ISysPostService postService;
 
-
     @GetMapping("/profile/info")
     public AjaxResult getUserRateInfo() {
         Long userId = getUserId(); // 当前登录用户ID
@@ -62,6 +62,7 @@
         int uploadCount = userService.getUploadByUserId(userId);
         int downloadCount = userService.getDownloadByUserId(userId);
         int score = userService.getUserScore(userId);
+        int level = userService.getUserLevel(userId);
 
         // 计算上传率（可选）
         String rateCount = "0%";
@@ -75,10 +76,11 @@
         rateInfo.put("downloadCount", downloadCount);
         rateInfo.put("rateCount", rateCount);
         rateInfo.put("score", score);
+        rateInfo.put("level", level);
 
         return AjaxResult.success(rateInfo);
     }
-    
+
     /**
      * 获取用户列表
      */
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
index b17312e..9e14af8 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -124,9 +124,8 @@
      * @return 结果
      */
     public SysUser checkEmailUnique(String email);
-
     public int getUploadByUserId(Long userId);
     public int getDownloadByUserId(Long userId);
     public int getUserScore(Long userId);
-
+    public int getUserLevel(Long userId);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
index a27cb01..bec77ff 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -209,4 +209,6 @@
     public int getDownloadByUserId(Long userId);
 
     public int getUserScore(Long userId);
+
+    public int getUserLevel(Long userId);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index ef2b2a3..503581e 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -562,4 +562,9 @@
     public int getUserScore(Long userId) {
         return userMapper.getUserScore(userId);
     }
+
+    @Override
+    public int getUserLevel(Long userId) {
+        return userMapper.getUserLevel(userId);
+    }
 }
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index d222434..2423536 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -71,6 +71,16 @@
 		SELECT score FROM user_score WHERE user_id = #{userId}
 	</select>
 
+	<!-- 获取用户等级（总积分 / 10 向下取整） -->
+	<select id="getUserLevel" resultType="int">
+		SELECT IFNULL(SUM(score), 10) / 10
+		FROM user_tag_scores
+		WHERE user_id = #{userId}
+	</select>
+
+
+
+
 	<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
 		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
 		left join sys_dept d on u.dept_id = d.dept_id
