PageSourceSearch

https://gowind.cloud/assets/backend-modules.html-CKYR5LNG.js

js gowind.cloud collected 2026-10-05 22:12:20 UTC 34,564 bytes, 24 lines download raw bytes

1import{_ as n,c as i,a,o as s}from"./app-B7HVJ7q3.js";const l={};function t(c,e){return s(),i("div",null,[...e[0]||(e[0]=[a(`<h1 id="后端核心模块详解" tabindex="-1"><a class="header-anchor" href="#后端核心模块详解"><span>后端核心模块详解</span></a></h1><p>本文档深入剖析 GoWind Admin 后端各个核心业务模块的设计与实现,涵盖认证授权、用户管理、租户管理、权限体系、字典管理等模块。</p><h2 id="一、认证与授权模块" tabindex="-1"><a class="header-anchor" href="#一、认证与授权模块"><span>一、认证与授权模块</span></a></h2><p>认证(Authentication)和授权(Authorization)是后端安全体系的核心,GoWind Admin 在此模块做了大量设计。</p><h3 id="_1-认证服务-authenticationservice" tabindex="-1"><a class="header-anchor" href="#_1-认证服务-authenticationservice"><span>1. 认证服务(AuthenticationService)</span></a></h3><p>认证服务位于 <code>internal/service/authentication_service.go</code>,负责处理用户登录、登出、令牌刷新、验证码等核心流程。</p><h4 id="登录流程" tabindex="-1"><a class="header-anchor" href="#登录流程"><span>登录流程</span></a></h4><p>系统支持多种 OAuth 2.0 授权类型(Grant Type):</p><table><thead><tr><th>Grant Type</th><th>说明</th><th>实现状态</th></tr></thead><tbody><tr><td><code>password</code></td><td>用户名密码登录</td><td>✅ 已实现</td></tr><tr><td><code>refresh_token</code></td><td>刷新令牌</td><td>✅ 已实现</td></tr><tr><td><code>client_credentials</code></td><td>客户端凭据</td><td>❌ 预留接口</td></tr></tbody></table><p><strong>密码登录的完整流程</strong>:</p><ol><li>验证验证码(可选)</li><li>通过 <code>UserCredentialRepo</code> 验证用户凭证(用户名 + 密码)</li><li>获取用户信息,检查用户状态</li><li>解析用户权限信息(<code>resolveUserAuthority</code>): <ul><li>检查用户是否被禁用</li><li>获取用户角色列表</li><li>获取角色关联的权限列表</li><li>验证是否拥有后台访问权限(<code>SystemAccessBackendPermissionCode</code>)</li></ul></li><li>生成 JWT Access Token 和 Refresh Token</li><li>返回令牌信息</li></ol><h4 id="验证码机制" tabindex="-1"><a class="header-anchor" href="#验证码机制"><span>验证码机制</span></a></h4><p>系统内置验证码生成与验证功能,支持图形验证码:</p><ul><li><code>GenerateCaptcha</code>:生成验证码图片(Base64 编码)</li><li><code>VerifyCaptcha</code>:验证用户输入的验证码</li></ul><h4 id="令牌管理" tabindex="-1"><a class="header-anchor" href="#令牌管理"><span>令牌管理</span></a></h4><ul><li><strong>Access Token</strong>:用于 API 请求认证,有效期较短</li><li><strong>Refresh Token</strong>:用于刷新 Access Token,有效期较长</li><li>令牌缓存通过 <code>UserTokenCache</code> 管理,基于 Redis 实现</li></ul><h3 id="_2-认证中间件" tabindex="-1"><a class="header-anchor" href="#_2-认证中间件"><span>2. 认证中间件</span></a></h3><p>认证中间件位于 <code>pkg/middleware/auth/</code>,在 REST Server 中通过 Selector 中间件模式注入:</p><div class="language-go line-numbers-mode" data-highlighter="prismjs" data-ext="go"><pre><code><span class="line"><span class="token comment">// 白名单机制:以下接口不需要认证</span></span>
2<span class="line">rpc<span class="token punctuation">.</span><span class="token function">AddWhiteList</span><span class="token punctuation">(</span></span>
3<span class="line">    adminV1<span class="token punctuation">.</span>OperationAuthenticationServiceLogin<span class="token punctuation">,</span></span>
4<span class="line">    adminV1<span class="token punctuation">.</span>OperationAuthenticationServiceGenerateCaptcha<span class="token punctuation">,</span></span>
5<span class="line">    adminV1<span class="token punctuation">.</span>OperationAuthenticationServiceVerifyCaptcha<span class="token punctuation">,</span></span>
6<span class="line"><span class="token punctuation">)</span></span>
7<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>中间件核心功能:</p><ul><li>从请求 Header 中提取 JWT Token</li><li>验证 Token 有效性</li><li>解析用户信息(UserId、TenantId、Roles 等)注入到 Context</li><li>支持 Ent Viewer 上下文注入,实现数据级别的隔离</li></ul><h3 id="_3-授权引擎" tabindex="-1"><a class="header-anchor" href="#_3-授权引擎"><span>3. 授权引擎</span></a></h3><p>授权模块位于 <code>pkg/authorizer/</code>,封装了多种权限策略引擎:</p><table><thead><tr><th>
7引擎</th><th>配置值</th><th>说明</th></tr></thead><tbody><tr><td>Casbin</td><td><code>casbin</code></td><td>轻量级权限控制,支持 ACL、RBAC 等模型</td></tr><tr><td>OPA</td><td><code>opa</code></td><td>Open Policy Agent,强大的策略引擎</td></tr><tr><td>Zanzibar</td><td><code>zanzibar</code></td><td>Google Zanzibar 模型,支持 Keto 和 OpenFGA</td></tr><tr><td>Noop</td><td><code>noop</code></td><td>空实现,不进行权限校验</td></tr></tbody></table><p>通过 <code>auth.yaml</code> 配置切换授权引擎:</p><div class="language-yaml line-numbers-mode" data-highlighter="prismjs" data-ext="yml"><pre><code><span class="line"><span class="token key atrule">authz</span><span class="token punctuation">:</span></span>
8<span class="line">  <span class="token key atrule">type</span><span class="token punctuation">:</span> <span class="token string">&quot;noop&quot;</span>  <span class="token comment"># casbin, opa, zanzibar, noop</span></span>
9<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="_4-审计日志中间件" tabindex="-1"><a class="header-anchor" href="#_4-审计日志中间件"><span>4. 审计日志中间件</span></a></h3><p>审计日志中间件位于 <code>pkg/middleware/logging/</code>,自动记录:</p><ul><li><strong>API 审计日志</strong>:记录每次 API 请求的详细信息</li><li><strong>登录日志</strong>:记录用户登录行为(成功/失败)</li></ul><p>中间件通过回调函数将日志写入数据库:</p><div class="language-go line-numbers-mode" data-highlighter="prismjs" data-ext="go"><pre><code><span class="line">applogging<span class="token punctuation">.</span><span class="token function">Server</span><span class="token punctuation">(</span></span>
10<span class="line">    applogging<span class="token punctuation">.</span><span class="token function">WithWriteApiLogFunc</span><span class="token punctuation">(</span><span class="token keyword">func</span><span class="token punctuation">(</span>ctx context<span class="token punctuation">.</span>Context<span class="token punctuation">,</span> data <span class="token operator">*</span>auditV1<span class="token punctuation">.</span>ApiAuditLog<span class="token punctuation">)</span> <span class="token builtin">error</span> <span class="token punctuation">{</span></span>
11<span class="line">        <span class="token keyword">return</span> apiAuditLogRepo<span class="token punctuation">.</span><span class="token function">Create</span><span class="token punctuation">(</span>ctx<span class="token punctuation">,</span> <span class="token operator">&amp;</span>auditV1<span class="token punctuation">.</span>CreateApiAuditLogRequest<span class="token punctuation">{</span>Data<span class="token punctuation">:</span> data<span class="token punctuation">}</span><span class="token punctuation">)</span></span>
12<span class="line">    <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span></span>
13<span class="line">    applogging<span class="token punctuation">.</span><span class="token function">WithWriteLoginLogFunc</span><span class="token punctuation">(</span><span class="token keyword">func</span><span class="token punctuation">(</span>ctx context<span class="token punctuation">.</span>Context<span class="token punctuation">,</span> data <span class="token operator">*</span>auditV1<span class="token punctuation">.</span>LoginAuditLog<span class="token punctuation">)</span> <span class="token builtin">error</span> <span class="token punctuation">{</span></span>
14<span class="line">        <span class="token keyword">return</span> loginLogRepo<span class="token punctuation">.</span><span class="token function">Create</span><span class="token punctuation">(</span>ctx<span class="token punctuation">,</span> <span class="token operator">&amp;</span>auditV1<span class="token punctuation">.</span>CreateLoginAuditLogRequest<span class="token punctuation">{</span>Data<span class="token punctuation">:</span> data<span class="token punctuation">}</span><span class="token punctuation">)</span></span>
15<span class="line">    <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">,</span></span>
16<span class="line"><span class="token punctuation">)</span></span>
17<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="二、用户管理模块" tabindex="-1"><a class="header-anchor" href="#二、用户管理模块"><span>二、用户管理模块</span></a></h2><h3 id="_1-用户服务-userservice" tabindex="-1"><a class="header-anchor" href="#_1-用户服务-userservice"><span>1. 用户服务(UserService)</span></a></h3><p>位于 <code>internal/service/user_service.go</code>,提供完整的用户 CRUD 管理:</p><p><strong>核心功能</strong>:</p><ul><li>创建用户(支持多角色、多部门、设置主管)</li><li>更新用户信息</li><li>删除用户(支持批量)</li><li>获取用户详情</li><li>列表查询(支持分页、高级查询、按部门联动)</li><li>禁用/启用用户</li><li>设置/取消主管</li><li>重置密码</li><li>配置多角色</li><li>配置多部门</li><li>一键登录指定用户</li></ul><h3 id="_2-用户凭证服务-usercredentialservice" tabindex="-1"><a class="header-anchor" href="#_2-用户凭证服务-usercredentialservice"><span>2. 用户凭证服务(UserCredentialService)</span></a></h3><p>位于 <code>internal/service/user_credential_service.go</code>,管理用户认证凭证:</p><ul><li>支持多种凭证类型:用户名密码、手机号、邮箱等</li><li>密码加密存储</li><li>凭证验证(支持密码解密验证)</li></ul><h3 id="_3-用户档案服务-userprofileservice" tabindex="-1"><a class="header-anchor" href="#_3-用户档案服务-userprofileservice"><span>3. 用户档案服务(UserProfileService)</span></a></h3><p>位于 <code>internal/service/user_profile_service.go</code>,管理用户个人资料:</p><ul><li>查看/修改个人信息</li><li>查看最后登录信息</li><li>修改密码</li></ul><h3 id="_4-数据层" tabindex="-1"><a class="header-anchor" href="#_4-数据层"><span>4. 数据层</span></a></h3><p>用户数据层位于 <code>internal/data/</code>,核心 Repo 包括:</p><table><thead><tr><th>
17Repo</th><th>文件</th><th>说明</th></tr></thead><tbody><tr><td><code>UserRepo</code></td><td><code>user_repo.go</code></td><td>用户主表操作</td></tr><tr><td><code>UserCredentialRepo</code></td><td><code>user_credential_repo.go</code></td><td>用户凭证操作</td></tr><tr><td><code>UserRoleRepo</code></td><td><code>user_role_repo.go</code></td><td>用户-角色关联</td></tr><tr><td><code>UserOrgUnitRepo</code></td><td><code>user_org_unit_repo.go</code></td><td>用户-组织关联</td></tr><tr><td><code>UserPositionRepo</code></td><td><code>user_position_repo.go</code></td><td>用户-职位关联</td></tr><tr><td><code>UserTokenCache</code></td><td><code>user_token_cache.go</code></td><td>用户令牌缓存(Redis)</td></tr></tbody></table><h2 id="三、租户管理模块" tabindex="-1"><a class="header-anchor" href="#三、租户管理模块"><span>三、租户管理模块</span></a></h2><h3 id="租户服务-tenantservice" tabindex="-1"><a class="header-anchor" href="#租户服务-tenantservice"><span>租户服务(TenantService)</span></a></h3><p>位于 <code>internal/service/tenant_service.go</code>,提供多租户管理能力:</p><p><strong>核心功能</strong>:</p><ul><li>创建租户(自动初始化租户部门、默认角色和管理员)</li><li>管理租户套餐</li><li>禁用/启用租户</li><li>一键登录租户管理员</li></ul><p><strong>租户创建流程</strong>:</p><ol><li>创建租户记录</li><li>自动创建租户默认部门</li><li>创建租户默认角色</li><li>创建租户管理员账号</li><li>将管理员关联到角色和部门</li></ol><h3 id="多租户关系模型" tabindex="-1"><a class="header-anchor" href="#多租户关系模型"><span>多租户关系模型</span></a></h3><p>系统支持两种租户关系模型,通过 <code>constants.DefaultUserTenantRelationType</code> 配置:</p><p><strong>一对一模型</strong>(<code>UserTenantRelationOneToOne</code>):</p><ul><li>一个用户只属于一个租户</li><li>登录时直接根据用户的 <code>TenantId</code> 获取权限</li></ul><p><strong>一对多模型</strong>(<code>UserTenantRelationOneToMany</code>):</p><ul><li>一个用户可以属于多个租户</li><li>通过 <code>MembershipRepo</code> 管理多租户关系</li><li>登录时需要遍历所有活跃的成员身份,合并权限</li></ul><h2 id="四、权限体系模块" tabindex="-1"><a class="header-anchor" href="#四、权限体系模块"><span>四、权限体系模块</span></a></h2><p>GoWind Admin 的权限体系包含菜单权限、接口权限、数据权限三个维度。</p><h3 id="_1-权限服务-permissionservice" tabindex="-1"><a class="header-anchor" href="#_1-权限服务-permissionservice"><span>1. 权限服务(PermissionService)</span></a></h3><p>位于 <code>internal/service/permission_service.go</code>,管理权限点和权限分组:</p><ul><li>创建/更新/删除权限</li><li>权限分组管理</li><li>权限与 API 接口关联</li><li>权限与菜单关联</li><li>权限策略管理</li></ul><h3 id="_2-角色服务-roleservice" tabindex="-1"><a class="header-anchor" href="#_2-角色服务-roleservice"><span>2. 角色服务(RoleService)</span></a></h3><p>位于 <code>internal/service/role_service.go</code>,管理角色和角色分组:</p><ul><li>创建/更新/删除角色</li><li>角色分组管理</li><li>角色关联权限</li><li>角色关联用户</li><li>按角色联动用户</li><li>批量添加/移除员工</li></ul><h3 id="_3-菜单服务-menuservice" tabindex="-1"><a class="header-anchor" href="#_3-菜单服务-menuservice"><span>3. 菜单服务(MenuService)</span></a></h3><p>位于 <code>internal/service/menu_service.go</code>,管理系统菜单:</p><ul><li>支持三种菜单类型:目录、菜单、按钮</li><li>树形结构管理</li><li>菜单关联权限</li></ul><h3 id="_4-api-接口服务-apiservice" tabindex="-1"><a class="header-anchor" href="#_4-api-接口服务-apiservice"><span>4. API 接口服务(ApiService)</span></a></h3><p>位于 <code>internal/service/api_service.go</code>,管理后端 API 接口:</p><ul><li>接口注册与管理</li><li>接口同步功能(从路由自动同步)</li><li>接口关联权限点</li><li>支持树形列表展示</li><li>操作日志请求参数和响应结果配置</li></ul><h3 id="_5-数据权限" tabindex="-1"><a class="header-anchor" href="#_5-数据权限"><span>5. 数据权限</span></a></h3><p>数据权限通过角色配置,支持以下数据范围:</p><table><thead><tr><th>
17数据范围</th><th>说明</th></tr></thead><tbody><tr><td><code>SELF</code></td><td>仅本人数据</td></tr><tr><td><code>UNIT_ONLY</code></td><td>本部门数据</td></tr><tr><td><code>UNIT_AND_CHILD</code></td><td>本部门及下级部门数据</td></tr><tr><td><code>SELECTED_UNITS</code></td><td>指定部门数据</td></tr><tr><td><code>ALL</code></td><td>全部数据</td></tr></tbody></table><p>数据权限优先级:<code>ALL &gt; SELECTED_UNITS &gt; UNIT_AND_CHILD &gt; UNIT_ONLY &gt; SELF</code></p><h2 id="五、组织架构模块" tabindex="-1"><a class="header-anchor" href="#五、组织架构模块"><span>五、组织架构模块</span></a></h2><h3 id="_1-组织管理-orgunitservice" tabindex="-1"><a class="header-anchor" href="#_1-组织管理-orgunitservice"><span>1. 组织管理(OrgUnitService)</span></a></h3><p>位于 <code>internal/service/org_unit_service.go</code>,管理组织架构:</p><ul><li>树形结构组织管理</li><li>支持多级组织层级</li><li>组织路径自动维护</li></ul><h3 id="_2-部门管理" tabindex="-1"><a class="header-anchor" href="#_2-部门管理"><span>2. 部门管理</span></a></h3><p>部门通过组织架构模块统一管理,支持:</p><ul><li>树形列表展示</li><li>按部门联动用户</li><li>部门关联角色</li></ul><h3 id="_3-职位管理-positionservice" tabindex="-1"><a class="header-anchor" href="#_3-职位管理-positionservice"><span>3. 职位管理(PositionService)</span></a></h3><p>位于 <code>internal/service/position_service.go</code>,管理用户职务:</p><ul><li>职位作为用户的标签属性</li><li>支持用户关联多个职位</li></ul><h2 id="六、字典管理模块" tabindex="-1"><a class="header-anchor" href="#六、字典管理模块"><span>六、字典管理模块</span></a></h2><h3 id="_1-字典类型服务-dicttypeservice" tabindex="-1"><a class="header-anchor" href="#_1-字典类型服务-dicttypeservice"><span>1. 字典类型服务(DictTypeService)</span></a></h3><p>位于 <code>internal/service/dict_type_service.go</code>,管理数据字典大类:</p><ul><li>创建/更新/删除字典大类</li><li>字典大类与字典条目联动</li></ul><h3 id="_2-字典条目服务-dictentryservice" tabindex="-1"><a class="header-anchor" href="#_2-字典条目服务-dictentryservice"><span>2. 字典条目服务(DictEntryService)</span></a></h3><p>位于 <code>internal/service/dict_entry_service.go</code>,管理字典小类/条目:</p><ul><li>支持按字典大类联动</li><li>服务端多列排序</li><li>数据导入和导出</li><li>国际化支持(<code>DictEntryI18nRepo</code>)</li></ul><h2 id="七、任务调度模块" tabindex="-1"><a class="header-anchor" href="#七、任务调度模块"><span>七、任务调度模块</span></a></h2><h3 id="任务服务-taskservice" tabindex="-1"><a class="header-anchor" href="#任务服务-taskservice"><span>任务服务(TaskService)</span></a></h3><p>位于 <code>internal/service/task_service.go</code>,基于 Asynq 实现分布式任务调度:</p><ul><li>任务新增、修改、删除</li><li>任务启动、暂停</li><li>立即执行</li><li>查看任务运行日志</li></ul><p>Asynq Server 配置(<code>server.yaml</code>):</p><div class="language-yaml line-numbers-mode" data-highlighter="prismjs" data-ext="yml"><pre><code><span class="line"><span class="token key atrule">asynq</span><span class="token punctuation">:</span></span>
18<span class="line">  <span class="token key atrule">uri</span><span class="token punctuation">:</span> <span class="token string">&quot;redis://:*Abcd123456@redis:6379/1&quot;</span></span>
19<span class="line">  <span class="token key atrule">concurrency</span><span class="token punctuation">:</span> <span class="token number">10</span></span>
20<span class="line">  <span class="token key atrule">queues</span><span class="token punctuation">:</span></span>
21<span class="line">    <span class="token key atrule">critical</span><span class="token punctuation">:</span> <span class="token number">10</span></span>
22<span class="line">    <span class="token key atrule">default</span><span class="token punctuation">:</span> <span class="token number">5</span></span>
23<span class="line">    <span class="token key atrule">low</span><span class="token punctuation">:</span> <span class="token number">1</span></span>
24<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="八、文件管理模块" tabindex="-1"><a class="header-anchor" href="#八、文件管理模块"><span>八、文件管理模块</span></a></h2><h3 id="_1-文件服务-fileservice" tabindex="-1"><a class="header-anchor" href="#_1-文件服务-fileservice"><span>1. 文件服务(FileService)</span></a></h3><p>位于 <code>internal/service/file_service.go</code>,管理文件元数据:</p><ul><li>文件查询、下载、删除</li><li>复制文件地址</li><li>图片大图查看</li></ul><h3 id="_2-文件传输服务-filetransferservice" tabindex="-1"><a class="header-anchor" href="#_2-文件传输服务-filetransferservice"><span>2. 文件传输服务(FileTransferService)</span></a></h3><p>位于 <code>internal/service/file_transfer_service.go</code>,处理文件上传下载:</p><ul><li>支持上传到 OSS(MinIO)或本地存储</li><li>文件下载</li><li>文件传输路由需要手动注册(不能使用代码生成器的 Handler)</li></ul><blockquote><p><strong>注意</strong>:文件传输服务由于涉及 multipart form 数据处理,无法使用 Protobuf 自动生成的 Handler,需要在 <code>rest_server.go</code> 中手动注册路由。</p></blockquote><h2 id="九、消息管理模块" tabindex="-1"><a class="header-anchor" href="#九、消息管理模块"><span>九、消息管理模块</span></a></h2><h3 id="_1-站内信服务-internalmessageservice" tabindex="-1"><a class="header-anchor" href="#_1-站内信服务-internalmessageservice"><span>1. 站内信服务(InternalMessageService)</span></a></h3><p>位于 <code>internal/service/internal_message_service.go</code>:</p><ul><li>发送消息给指定用户</li><li>查看用户已读状态和已读时间</li><li>消息详细查看、删除</li><li>标为已读、全部已读</li></ul><h3 id="_2-消息分类服务-internalmessagecategoryservice" tabindex="-1"><a class="header-anchor" href="#_2-消息分类服务-internalmessagecategoryservice"><span>2. 消息分类服务(InternalMessageCategoryService)</span></a></h3><p>位于 <code>internal/service/internal_message_category_service.go</code>:</p><ul><li>支持二级自定义消息分类</li><li>用于消息管理时的分类选择</li></ul><h3 id="_3-消息接收者服务-internalmessagerecipientservice" tabindex="-1"><a class="header-anchor" href="#_3-消息接收者服务-internalmessagerecipientservice"><span>3. 消息接收者服务(InternalMessageRecipientService)</span></a></h3><p>位于 <code>internal/service/internal_message_recipient_service.go</code>:</p><ul><li>管理消息接收者</li><li>支持指定用户、角色、部门等多种接收范围</li></ul><h2 id="十、日志审计模块" tabindex="-1"><a class="header-anchor" href="#十、日志审计模块"><span>十、日志审计模块</span></a></h2><h3 id="_1-登录审计日志-loginauditlogservice" tabindex="-1"><a class="header-anchor" href="#_1-登录审计日志-loginauditlogservice"><span>1. 登录审计日志(LoginAuditLogService)</span></a></h3><ul><li>记录用户登录成功和失败日志</li><li>支持 IP 归属地记录</li></ul><h3 id="_2-api-审计日志-apiauditlogservice" tabindex="-1"><a class="header-anchor" href="#_2-api-审计日志-apiauditlogservice"><span>2. API 审计日志(ApiAuditLogService)</span></a></h3><ul><li>记录 API 请求的详细信息</li><li>通过中间件自动采集</li></ul><h3 id="_3-操作审计日志-operationauditlogservice" tabindex="-1"><a class="header-anchor" href="#_3-操作审计日志-operationauditlogservice"><span>3. 操作审计日志(OperationAuditLogService)</span></a></h3><ul><li>记录用户操作日志(正常和异常)</li><li>支持 IP 归属地记录</li><li>查看操作日志详情</li></ul><h3 id="_4-数据访问审计日志-dataaccessauditlogservice" tabindex="-1"><a class="header-anchor" href="#_4-数据访问审计日志-dataaccessauditlogservice"><span>4. 数据访问审计日志(DataAccessAuditLogService)</span></a></h3><ul><li>记录数据访问行为</li></ul><h3 id="_5-权限审计日志-permissionauditlogservice" tabindex="-1"><a class="header-anchor" href="#_5-权限审计日志-permissionauditlogservice"><span>5. 权限审计日志(PermissionAuditLogService)</span></a></h3><ul><li>记录权限变更操作</li></ul><h3 id="_6-策略评估日志-policyevaluationlogservice" tabindex="-1"><a class="header-anchor" href="#_6-策略评估日志-policyevaluationlogservice"><span>6. 策略评估日志(PolicyEvaluationLogService)</span></a></h3><ul><li>记录权限策略评估过程</li></ul><h2 id="十一、登录策略模块" tabindex="-1"><a class="header-anchor" href="#十一、登录策略模块"><span>十一、登录策略模块</span></a></h2><h3 id="登录策略服务-loginpolicyservice" tabindex="-1"><a class="header-anchor" href="#登录策略服务-loginpolicyservice"><span>登录策略服务(LoginPolicyService)</span></a></h3><p>位于 <code>internal/service/login_policy_service.go</code>:</p><ul><li>管理登录策略规则</li><li>可配置 IP 白名单/黑名单</li><li>可配置时间限制</li><li>可配置登录失败锁定策略</li></ul><h2 id="十二、语言管理模块" tabindex="-1"><a class="header-anchor" href="#十二、语言管理模块"><span>十二、语言管理模块</span></a></h2><h3 id="语言服务-languageservice" tabindex="-1"><a class="header-anchor" href="#语言服务-languageservice"><span>语言服务(LanguageService)</span></a></h3><p>位于 <code>internal/service/language_service.go</code>:</p><ul><li>管理系统支持的语言列表</li><li>国际化(i18n)基础数据</li><li>与字典条目国际化联动</li></ul>`,138)])])}const o=n(l,[["render",t]]),d=JSON.parse('{"path":"/admin/backend-modules.html","title":"后端核心模块详解","lang":"en-US","frontmatter":{},"headers":[{"level":2,"title":"一、认证与授权模块","slug":"一、认证与授权模块","link":"#一、认证与授权模块","children":[{"level":3,"title":"1. 认证服务(AuthenticationService)","slug":"_1-认证服务-authenticationservice","link":"#_1-认证服务-authenticationservice","children":[]},{"level":3,"title":"2. 认证中间件","slug":"_2-认证中间件","link":"#_2-认证中间件","children":[]},{"level":3,"title":"3. 授权引擎","slug":"_3-授权引擎","link":"#_3-授权引擎","children":[]},{"level":3,"title":"4. 审计日志中间件","slug":"_4-审计日志中间件","link":"#_4-审计日志中间件","children":[]}]},{"level":2,"title":"二、用户管理模块","slug":"二、用户管理模块","link":"#二、用户管理模块","children":[{"level":3,"title":"1. 用户服务(UserService)","slug":"_1-用户服务-userservice","link":"#_1-用户服务-userservice","children":[]},{"level":3,"title":"2. 用户凭证服务(UserCredentialService)","slug":"_2-用户凭证服务-usercredentialservice","link":"#_2-用户凭证服务-usercredentialservice","children":[]},{"level":3,"title":"3. 用户档案服务(UserProfileService)","slug":"_3-用户档案服务-userprofileservice","link":"#_3-用户档案服务-userprofileservice","children":[]},{"level":3,"title":"4. 数据层","slug":"_4-数据层","link":"#_4-数据层","children":[]}]},{"level":2,"title":"三、租户管理模块","slug":"三、租户管理模块","link":"#三、租户管理模块","children":[{"level":3,"title":"租户服务(TenantService)","slug":"租户服务-tenantservice","link":"#租户服务-tenantservice","children":[]},{"level":3,"title":"多租户关系模型","slug":"多租户关系模型","link":"#多租户关系模型","children":[]}]},{"level":2,"title":"四、权限体系模块","slug":"四、权限体系模块","link":"#四、权限体系模块","children":[{"level":3,"title":"1. 权限服务(PermissionService)","slug":"_1-权限服务-permissionservice","link":"#_1-权限服务-permissionservice","children":[]},{"level":3,"title":"2. 角色服务(RoleService)","slug":"_2-角色服务-roleservice","link":"#_2-角色服务-roleservice","children":[]},{"level":3,"title":"3. 菜单服务(MenuService)","slug":"_3-菜单服务-menuservice","link":"#_3-菜单服务-menuservice","children":[]},{"level":3,"title":"4. API 接口服务(ApiService)","slug":"_4-api-接口服务-apiservice","link":"#_4-api-接口服务-apiservice","children":[]},{"level":3,"title":"5. 数据权限","slug":"_5-数据权限","link":"#_5-数据权限","children":[]}]},{"level":2,"title":"五、组织架构模块","slug":"五、组织架构模块","link":"#五、组织架构模块","children":[{"level":3,"title":"1. 组织管理(OrgUnitService)","slug":"_1-组织管理-orgunitservice","link":"#_1-ç
24»„织管理-orgunitservice","children":[]},{"level":3,"title":"2. 部门管理","slug":"_2-部门管理","link":"#_2-部门管理","children":[]},{"level":3,"title":"3. 职位管理(PositionService)","slug":"_3-职位管理-positionservice","link":"#_3-职位管理-positionservice","children":[]}]},{"level":2,"title":"六、字典管理模块","slug":"六、字典管理模块","link":"#六、字典管理模块","children":[{"level":3,"title":"1. 字典类型服务(DictTypeService)","slug":"_1-字典类型服务-dicttypeservice","link":"#_1-字典类型服务-dicttypeservice","children":[]},{"level":3,"title":"2. 字典条目服务(DictEntryService)","slug":"_2-字典条目服务-dictentryservice","link":"#_2-字典条目服务-dictentryservice","children":[]}]},{"level":2,"title":"七、任务调度模块","slug":"七、任务调度模块","link":"#七、任务调度模块","children":[{"level":3,"title":"任务服务(TaskService)","slug":"任务服务-taskservice","link":"#任务服务-taskservice","children":[]}]},{"level":2,"title":"八、文件管理模块","slug":"八、文件管理模块","link":"#八、文件管理模块","children":[{"level":3,"title":"1. 文件服务(FileService)","slug":"_1-文件服务-fileservice","link":"#_1-文件服务-fileservice","children":[]},{"level":3,"title":"2. 文件传输服务(FileTransferService)","slug":"_2-文件传输服务-filetransferservice","link":"#_2-文件传输服务-filetransferservice","children":[]}]},{"level":2,"title":"九、消息管理模块","slug":"九、消息管理模块","link":"#九、消息管理模块","children":[{"level":3,"title":"1. 站内信服务(InternalMessageService)","slug":"_1-站内信服务-internalmessageservice","link":"#_1-站内信服务-internalmessageservice","children":[]},{"level":3,"title":"2. 消息分类服务(InternalMessageCategoryService)","slug":"_2-消息分类服务-internalmessagecategoryservice","link":"#_2-消息分类服务-internalmessagecategoryservice","children":[]},{"level":3,"title":"3. 消息接收者服务(InternalMessageRecipientService)","slug":"_3-消息接收者服务-internalmessagerecipientservice","link":"#_3-消息接收者服务-internalmessagerecipientservice","children":[]}]},{"level":2,"title":"十、日志审计模块","slug":"十、日志审计模块","link":"#十、日志审计模块","children":[{"level":3,"title":"1. 登录审计日志(LoginAuditLogService)","slug":"_1-登录审计日志-loginauditlogservice","link":"#_1-登录审计日志-loginauditlogservice","children":[]},{"level":3,"title":"2. API 审计日志(ApiAuditLogService)","slug":"_2-api-审计日志-apiauditlogservice","link":"#_2-api-审计日志-apiauditlogservice","children":[]},{"level":3,"title":"3. 操作审计日志(OperationAuditLogService)","slug":"_3-操作审计日志-operationauditlogservice","link":"#_3-操作审计日志-operationauditlogservice","children":[]},{"level":3,"title":"4. 数据访问审计日志(DataAccessAuditLogService)","slug":"_4-数据访问审计日志-dataaccessauditlogservice","link":"#_4-数据访问审计日志-dataaccessauditlogservice","children":[]},{"level":3,"title":"5. 权限审计日志(PermissionAuditLogService)","slug":"_5-权限审计日志-permissionauditlogservice","link":"#_5-权限审计日志-permissionauditlogservice","children":[]},{"level":3,"title":"6. 策略评估日志(PolicyEvaluationLogService)","slug":"_6-策略评估日志-policyevaluationlogservice","link":"#_6-策略评估日志-policyevaluationlogservice","children":[]}]},{"level":2,"title":"十一、登录策略模块","slug":"十一、登录策略模块","link":"#十一、登录策略模块","children":[{"level":3,"title":"登录策略服务(LoginPolicyService)","slug":"登录策略服务-loginpolicyservice","link":"#登录策略服务-loginpolicyservice","children":[]}]},{"level":2,"title":"十二、语言管理模块","slug":"十二、语言管理模块","link":"#十二、语言管理模块","children":[{"level":3,"title":"语言服务(LanguageService)","slug":"语言服务-languageservice","link":"#语言服务-languageservice","children":[]}]}
24],"git":{"updatedTime":1780586020000,"contributors":[{"name":"Bobo","username":"Bobo","email":"[email protected]","commits":1,"url":"https://github.com/Bobo"}],"changelog":[{"hash":"87b8f49b88e6ed7701d9d8014bef92cdc7df73f5","time":1780586020000,"email":"[email protected]","author":"Bobo","message":"docs(admin): 添加后端文档并更新侧边栏配置"}]},"filePathRelative":"admin/backend-modules.md"}');export{o as comp,d as data};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.