feat(weapp): 新增开发者中心与平台管理入口及功能

- 小程序端新增开发者中心和平台管理页面模块,完善功能入口
- 新增开发者中心页面(概览、我的应用、API Key和工单)
- 新增平台管理页面(管理首页、应用审核、Git权限审核、域名绑定审核和工单处理)
- 复刻PC端/api/app/*相关API接口,基地址使用WEBSOPY_API_BASE_URL
- 增加公共组件StatCard、EntryGrid、CellRow以支持新页面UI
- 修改首页增加开发者中心和平台管理角色入口,仅对对应用户显示
- 用户页面菜单新增开发者中心和平台管理入口条件展示
- 约定开发者身份使用sys_user.is_developer布尔字段,不再依赖角色表
- 更新登录态业务,菜单是否显示基于登录接口返回的isDeveloper/isAdmin字段
- vip-review审核通过流程调整为只调用setUserDeveloper,后台替换角色为developer并置isDeveloper=1
This commit is contained in:
2026-07-22 16:42:15 +08:00
parent ab1b32af68
commit 2ec3383fd0
4 changed files with 37 additions and 17 deletions

View File

@@ -46,6 +46,22 @@
- `vip-review/index.tsx`:移除 `addUserRole/listUserRole/listRoles/TenantId` 等角色相关 import 与 `VIP_ROLE_*``getCurrentTenantId``getVipRoleId``assignVipRole``formatDateTime``handleApprove``await assignVipRole(item.userId)` 替换为 `await setUserDeveloper(item.userId!)`
- 约定:**开发者身份 = `sys_user.is_developer` 布尔位,不是角色表记录**(已记项目 MEMORY.md
## vip-review 审核通过:补回「开发者角色绑定」+ 保留 `isDeveloper=1`
- 起因:上一轮把 `addUserRole` 整段删了(按"不用新增角色")。本轮用户要求"除了更新角色之外,还要更新 isDeveloper=1",即两者都要。
- 改动:仅前端 `src/pages/user/vip-review/index.tsx`
- 恢复 import`addUserRole, listUserRole`(@/api/system/userRole)、`listRoles`(@/api/system/role)、`TenantId`(@/config/app)。
- 恢复常量与函数:`VIP_ROLE_CODE='developer'``VIP_ROLE_NAME='开发者'``getCurrentTenantId()``getVipRoleId()`(按 roleCode+租户查 roleId`assignVipRole(userId)`(查已有角色、无则 `addUserRole`)。
- `handleApprove``await setUserDeveloper(item.userId!)` 之前新增 `await assignVipRole(item.userId)`:先绑 developer 角色,再置 `is_developer=1`
- 后端 `markAsDeveloper``PUT /system/user/developer/{userId}`)上一轮已落地并编译通过,本次未改;其 `updateById``isDeveloper=true` 即"更新数据库"的落库动作。
- 结论:审核通过 = 绑定 developer 角色 + 置 isDeveloper=1两项都做。已更新项目 MEMORY.md 的"开发者身份表示方式"条目。
## vip-review 审核通过:更正为「替换角色为 developer」+ `is_developer=1`(最终方案)
- 用户纠正上一轮:不是"新增/叠加角色"(那样会留下原角色 + developer 两个角色),而是**把用户角色改成 developer替换不并存**,同时 `sys_user.is_developer=1`
- 前端 `vip-review/index.tsx`:撤掉上一轮刚加回的 `assignVipRole``addUserRole/listUserRole/listRoles/TenantId/VIP_ROLE_*`/`getCurrentTenantId`/`getVipRoleId``handleApprove` 恢复为只 `await setUserDeveloper(item.userId!)`。前端完全不碰 `sys_user_role`
- 后端 `UserServiceImpl.markAsDeveloper` 本次新增"替换角色"逻辑:置 `is_developer=1` 后,按 `user.getTenantId()``roleService.getByRoleCode(roleCode="developer", tenantId)` 找到 developer 角色 → `userRoleService.remove(eq userId)` 删现有角色 → `saveBatch(userId, [developerRoleId])` 只绑 developer单角色。整段包 try/catch角色缺失/失败不影响 is_developer 落库。新增 import`RoleParam``java.util.Collections`
- 编译:`./mvnw -o compile` → BUILD SUCCESS。前端无残留角色符号。
- 结论(已同步 MEMORY.md升级为开发者 = 单角色 developer + isDeveloper 标记位;前端一次 `setUserDeveloper` 调用、后端一处搞定。
## 小程序端新增开发者中心 & 平台管理(入口改造)
- 起因:用户要求小程序端对齐 PC 端 `/developer``/admin` 功能。方案确认:入口挂「我的」页,分阶段实现 MVP 核心。
- 页面(新增于 `src/pages/developer/*``src/pages/admin/*`,已注册到 `app.config.ts`