feat(admin): implement user level, group and label modules with database, rpc and ui
This commit is contained in:
31
docs/ops/2026-02-10__admin__user-group-db-and-ui.md
Normal file
31
docs/ops/2026-02-10__admin__user-group-db-and-ui.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# 用户分组数据库设计与 RPC (v1)
|
||||
|
||||
## 摘要
|
||||
为“用户分组”功能新增数据库表 `public.ak_user_groups`(支持逻辑删除),并提供管理端 RPC(分页列表/保存/删除/状态切换)。同时启用 RLS,默认仅允许管理端通过 RPC 访问。
|
||||
|
||||
## 动机
|
||||
- 完善用户精细化运营体系,支持对用户进行分组分类。
|
||||
- 替换前端 `pages/mall/admin/user/group.uvue` 中的硬编码 Mock 数据,实现真实数据持久化与完整交互。
|
||||
|
||||
## 影响范围
|
||||
- 数据库:新增 `ak_user_groups` 表及相关索引、RLS 策略、4 个管理端 RPC。
|
||||
- 前端:新增 `userGroupService.uts`,重构 `group.uvue` 页面。
|
||||
|
||||
## 变更清单
|
||||
- 数据库 SQL:
|
||||
- `docs/sql/10_schema/user/ak_user_groups_v1.sql`
|
||||
- `docs/sql/20_rls/user/ak_user_groups_rls_v1.sql`
|
||||
- `docs/sql/30_rpc/user/rpc_admin_user_group_list_v1.sql`
|
||||
- `docs/sql/30_rpc/user/rpc_admin_user_group_save_v1.sql`
|
||||
- `docs/sql/30_rpc/user/rpc_admin_user_group_delete_v1.sql`
|
||||
- `docs/sql/30_rpc/user/rpc_admin_user_group_set_status_v1.sql`
|
||||
- 前端代码:
|
||||
- `services/admin/userGroupService.uts`
|
||||
- `pages/mall/admin/user/group.uvue`
|
||||
|
||||
## 兼容性与风险
|
||||
- 逻辑删除:采用 `deleted_at` 字段,确保历史关联数据不被物理破坏。
|
||||
- 安全性:所有管理操作均通过 `SECURITY DEFINER` RPC 并校验 `admin/analytics` 角色。
|
||||
|
||||
## 验证方式
|
||||
- 执行 SQL 后,通过 Admin 端的“用户分组”菜单进行增删改查操作,观察数据库及界面响应。
|
||||
31
docs/ops/2026-02-10__admin__user-label-db-and-ui.md
Normal file
31
docs/ops/2026-02-10__admin__user-label-db-and-ui.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# 用户标签数据库设计与 RPC (v1)
|
||||
|
||||
## 摘要
|
||||
为“用户标签”功能新增数据库表 `public.ak_user_labels`(支持逻辑删除),并提供管理端 RPC(分页列表/保存/删除/状态切换)。同时启用 RLS,默认仅允许管理端通过 RPC 访问。
|
||||
|
||||
## 动机
|
||||
- 完善用户画像体系,支持对用户进行行为特征标记。
|
||||
- 替换前端 `pages/mall/admin/user/label.uvue` 中的硬编码 Mock 数据,实现真实数据持久化。
|
||||
|
||||
## 影响范围
|
||||
- 数据库:新增 `ak_user_labels` 表及相关索引、RLS 策略、4 个管理端 RPC。
|
||||
- 前端:新增 `userLabelService.uts`,重构 `label.uvue` 页面。
|
||||
|
||||
## 变更清单
|
||||
- 数据库 SQL:
|
||||
- `docs/sql/10_schema/user/ak_user_labels_v1.sql`
|
||||
- `docs/sql/20_rls/user/ak_user_labels_rls_v1.sql`
|
||||
- `docs/sql/30_rpc/user/rpc_admin_user_label_list_v1.sql`
|
||||
- `docs/sql/30_rpc/user/rpc_admin_user_label_save_v1.sql`
|
||||
- `docs/sql/30_rpc/user/rpc_admin_user_label_delete_v1.sql`
|
||||
- `docs/sql/30_rpc/user/rpc_admin_user_label_set_status_v1.sql`
|
||||
- 前端代码:
|
||||
- `services/admin/userLabelService.uts`
|
||||
- `pages/mall/admin/user/label.uvue`
|
||||
|
||||
## 兼容性与风险
|
||||
- 逻辑删除:采用 `deleted_at` 字段,确保历史关联数据不被物理破坏。
|
||||
- 安全性:所有管理操作均通过 `SECURITY DEFINER` RPC 并校验 `admin/analytics` 角色。
|
||||
|
||||
## 验证方式
|
||||
- 执行 SQL 后,通过 Admin 端的“用户标签”菜单进行增删改查操作,观察数据库及界面响应。
|
||||
46
docs/ops/2026-02-10__admin__user-level-db-design.md
Normal file
46
docs/ops/2026-02-10__admin__user-level-db-design.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# 用户等级数据库设计与 RPC(v1)
|
||||
|
||||
## 摘要
|
||||
为“用户等级”功能新增数据库表 `public.ak_user_levels`(支持逻辑删除),并提供 admin 侧管理 RPC(分页列表/保存/删除/状态切换/展示切换)。同时启用 RLS:消费者端仅可读取“启用且展示且未删除”的等级。
|
||||
|
||||
## 动机
|
||||
- 当前 admin 用户等级页面存在硬编码 mock 数据,需要接入数据库。
|
||||
- 统一等级数据口径,为消费者端展示等级提供可靠数据源。
|
||||
|
||||
## 影响范围
|
||||
- 数据库:新增表、索引;启用 RLS 并新增 select policy;新增 5 个 admin RPC。
|
||||
- 前端:后续可通过 `services/` 接入新 RPC,移除 `pages/mall/admin/user/level.uvue` 中 mock。
|
||||
|
||||
## 变更清单
|
||||
- 新增文件:
|
||||
- `docs/sql/10_schema/user/ak_user_levels_v1.sql`
|
||||
- `docs/sql/20_rls/user/ak_user_levels_rls_v1.sql`
|
||||
- `docs/sql/30_rpc/user/rpc_admin_user_level_list_v1.sql`
|
||||
- `docs/sql/30_rpc/user/rpc_admin_user_level_save_v1.sql`
|
||||
- `docs/sql/30_rpc/user/rpc_admin_user_level_delete_v1.sql`
|
||||
- `docs/sql/30_rpc/user/rpc_admin_user_level_set_visible_v1.sql`
|
||||
- `docs/sql/30_rpc/user/rpc_admin_user_level_set_status_v1.sql`
|
||||
|
||||
## 兼容性与风险
|
||||
- consumer 端读取:RLS 仅开放 `anon/authenticated` 对可见/启用/未删除等级的 SELECT;不会暴露删除或禁用的数据。
|
||||
- admin 端管理:通过 `SECURITY DEFINER` RPC 并进行角色鉴权,避免直通表的全局权限。
|
||||
- 逻辑删除:通过 `deleted_at` 字段实现,避免历史引用破坏。
|
||||
|
||||
## 回滚方案
|
||||
- 回滚 schema:删除表 `ak_user_levels`(需人工确认,不在本次脚本中提供)。
|
||||
- 回滚 rpc:删除对应函数(需人工确认,不在本次脚本中提供)。
|
||||
- 回滚 rls:移除 policy 并禁用 RLS(需人工确认)。
|
||||
|
||||
## 验证方式
|
||||
- 在 SQL 控制台依次执行:schema -> rls -> rpc。
|
||||
- 使用 admin 账号调用:
|
||||
- `rpc_admin_user_level_save` 创建数据
|
||||
- `rpc_admin_user_level_list` 验证分页返回
|
||||
- `rpc_admin_user_level_set_visible/status` 验证更新
|
||||
- `rpc_admin_user_level_delete` 验证逻辑删除
|
||||
- 使用普通账号/匿名访问验证仅能看到启用且展示的数据。
|
||||
|
||||
## 关联文档
|
||||
- `docs/project_spec/AGENT_PROJECT_SPEC.md`
|
||||
- `docs/sql/30_rpc/auth/get_current_user_role_v1.sql`
|
||||
- `docs/sql/11_roles_and_permissions_strategy.md`
|
||||
Reference in New Issue
Block a user