chore: push latest changes

This commit is contained in:
wanwu
2025-11-16 22:13:57 +08:00
parent de821ae5fd
commit 7ede50739b
780 changed files with 101983 additions and 10460 deletions

243
docs/AI-FIX-REPORT.md Normal file
View File

@@ -0,0 +1,243 @@
# API 对比与修复方案
## 概览统计
- v1 控制器: adminapi 81、api 24、core 4、boot 4、ai 2、src 1、apps 1合计 113
- v1 接口: adminapi 552、api 108、core 9、boot 8、ai 8、src 4、apps 3合计 692
- Java 控制器: adminapi 122、api 45合计 167
- Java 接口: adminapi 850、api 200合计 1050
- 分布一致性:两侧以 `/adminapi` 为主、`/api` 次之;方法分布均以 `GET` 为主,`POST/PUT` 次之,`DELETE` 较少,无 `PATCH`
## 模块覆盖明细v1 vs Java
- sysapi
- v1: `sys-config.controller.ts` 5、`sys-verify.controller.ts` 6、`upload.controller.ts` 4、`captcha.controller.ts` 1
- Java: `SysConfigController.java` 7、`SysVerifyController.java` 6、`UploadController.java` 4、`CaptchaController.java` 1
- wechatapi
- v1: `wechat.controller.ts` 9
- Java: `WechatController.java` 9
- weappapi
- v1: `weapp.controller.ts` 6
- Java: `WeappController.java` 7
- payapi
- v1: `pay.controller.ts` 4
- Java: `PayController.java` 4
- memberapi
- v1: `member.controller.ts` 9、`member-cash-out.controller.ts` 13、`member-account.controller.ts` 8、`member-address.controller.ts` 5、`member-sign.controller.ts` 6
- Java: `MemberController.java` 9、`MemberCashOutController.java` 13、`MemberAccountController.java` 8、`MemberAddressController.java` 5、`MemberSignController.java` 6
- loginapi
- v1: `login.controller.ts` 7、`register.controller.ts` 3
- Java: `LoginController.java` 7、`RegisterController.java` 2
- diyapi
- v1: `diy-form.controller.ts` 6、`diy.controller.ts` 4
- Java: `DiyFormController.java` 6、`DiyController.java` 4
- channelapi
- v1: `channel/app.controller.ts` 2
- Java: `channel/AppController.java` 2
- agreementapi
- v1: `agreement.controller.ts` 1
- Java: `AgreementController.java` 1
- addonapi
- v1: `addon.controller.ts` 1
- Java: `AddonController.java` 1
- adminapi样本
- v1: `sys-*` 合计 19`sys-config.controller.ts:19`)、`member-*` 合计 19、`site-*` 合计 18、`notice-*` 合计 27、`diy-*` 合计 24、`niucloud-*` 合计 13、`pay-*` 合计 8、`login-*` 合计 4
- Java: 对应 `sys/*` 19、`member/*` 19、`site/*` 18、`notice/*` 27、`diy/*` 24、`niucloud/*` 13、`pay/*` 8、`login/*` 2
## 模块差异与证据(按域)
- sysapi
- 证据v1
- `wwjcloud/libs/wwjcloud-core/src/controllers/api/sys/sys-config.controller.ts:50,60,70,80,90` — 五个 GET 路由已对齐 Java
- `wwjcloud/libs/wwjcloud-core/src/controllers/api/sys/sys-verify.controller.ts:35,45,55,69,77,85` — 六个路由已对齐(含 POST `verify/{code}`
- `wwjcloud/libs/wwjcloud-core/src/controllers/api/sys/upload.controller.ts:47,61,75,86` — 四个 POST 路由已对齐
- `wwjcloud/libs/wwjcloud-core/src/controllers/api/sys/captcha.controller.ts:35``GET /api/captcha` 对齐
- 证据Java
- `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/api/sys/SysConfigController.java:64,75,86,96,107,140` — 六个 GETv1 缺 `member_mobile_exist`
- `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/api/sys/SysVerifyController.java:25,36,48,59,72,85` — 六个路由对齐
- `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/api/sys/UploadController.java:24,31,38,47` — 四个 POST 对齐
- `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/api/sys/CaptchaController.java:13-15``GET /api/captcha` 对齐
- 差异:缺失 `GET /api/member_mobile_exist``verify_detail` 参数名 `{code}` vs `:id`
- wechatapi
- 证据v1`wwjcloud/libs/wwjcloud-core/src/controllers/api/wechat/wechat.controller.ts:30,41,49,59,67,75,83,91,99`
- 证据Java`niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/api/wechat/WechatController.java:38,48,60,69,78,87,98,107,116`
- 差异:`GET /api/wechat/user` 返回结构需按 Java 包装为 `{ data: '<json-string>' }`
- weappapi
- 证据v1`wwjcloud/libs/wwjcloud-core/src/controllers/api/weapp/weapp.controller.ts:38,50,62,74,86,98`
- 证据Java`niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/api/weapp/WeappController.java:28,37,46,56,65,75`
- 差异:`getMsgJumpPath` 的查询参数名 `out_trade_no`Java vs `outTradeNo`v1
- payapi
- 证据v1`wwjcloud/libs/wwjcloud-core/src/controllers/api/pay/pay.controller.ts:25,34-55,56-68,70-84`
- 证据Java`niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/api/pay/PayController.java:31-34,47-57,64-67,69-72`
- 差异:无(路径与方法一致)
- memberapi
- 证据v1`member-cash-out.controller.ts:44,62,73,83,93,102,112,125,140,153,165,174,188`(示例)
- 证据Java`MemberCashOutController.java:33-36,43-48,55-59,66-70,77-80,87-93,101-105,112-115,122-127,134-137,144-147,155-159,166-172`
- 差异:无显著差异(路径与方法一致,返回结构键名部分需逐项核验)
- loginapi
- 证据v1`login.controller.ts:44,62,86,106,119,146,159`
- 证据Java`LoginController.java:53-57,65-70,78-83,90-93,100-105,112-116,119-131`
- 差异:`register.controller.ts` 方法数 v1 为 3Java 为 2需核验新增方法来源与必要性
- adminapi/login
- 证据v1`adminapi/login/login.controller.ts:40,60,73-107,114-122`
- 证据Java`adminapi/login/LoginController.java:39-43,50-53,56-67`
- 差异:`tokenInfo` 返回结构差异(`SaResult` vs `{ code,msg,data }`方法总数差异v1:4 vs Java:2
- 其他 adminapi 模块(样本)
- sys`sys-config.controller.ts`v1 19Java 19`sys-poster.controller.ts`v1/Java 13
- site`site.controller.ts`v1/Java 18`site-group.controller.ts`v1/Java 8
- notice`niu-sms.controller.ts`v1/Java 27`notice.controller.ts`v1/Java 7
- diy`diy-form.controller.ts`v1/Java 24`diy.controller.ts`v1/Java 17
- niucloud`cloud.module.controller.ts`v1/Java 8`module.controller.ts`v1/Java 5
- pay`pay.controller.ts`v1/Java 8
- 证据来源:方法装饰器计数基于源码检索(已在“总体规模”与“分布统计”中给出),可按需继续展开到每个具体路由的 `file:line`
## 问题分类
- 缺失接口
- v1 缺少 `GET /api/member_mobile_exist`Java 已实现)
- 路径参数不一致
- `GET /api/verify_detail/{code}`Java vs `GET /api/verify_detail/:id`v1
- 业务实现不一致
- `POST /api/verify/{code}`Java 为核销执行v1 目前调用校验逻辑而非核销执行
- 方法数量轻微差异(需逐路由核验)
- 管理端 login 控制器v1 方法数 4Java 方法数 2可能包含额外路由或组合
- 响应结构不一致(新增)
- `GET /api/wechat/user`Java 返回 `{ data: '<json-string>' }`v1 直接返回对象(需按 Java 包装为字符串字段)
- `GET /adminapi/login/tokenInfo`Java 返回 `SaResult.data(SaTokenInfo)`v1 返回 `{ code,msg,data }` 结构(需按项目统一策略确认是否对齐 SaResult 形态)
## 证据与代码定位
- 缺失接口
- Java `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/api/sys/SysConfigController.java:140``GET /api/member_mobile_exist`
- v1 `wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/api/sys/sys-config.controller.ts` — 未见对应方法
- 路径参数不一致
- Java `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/api/sys/SysVerifyController.java:59``GET /api/verify_detail/{code}`
- v1 `wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/api/sys/sys-verify.controller.ts:69``GET /api/verify_detail/:id`
- 业务实现不一致
- Java `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/api/sys/SysVerifyController.java:85-93``POST /api/verify/{code}` 调用 `verifyCode`
- v1 `wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/api/sys/sys-verify.controller.ts:85-93` — 当前调用 `checkVerifier`
- 方法数量差异(样本)
- v1 `wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/adminapi/login/login.controller.ts` — 方法装饰器计数 4
- Java `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/adminapi/login/LoginController.java` — 方法计数 2
- 响应结构不一致(证据)
- v1 `wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/api/wechat/wechat.controller.ts:41-47` — 直接返回 service 数据对象
- Java `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/api/wechat/WechatController.java:48-53` — 返回 `Map<String,String>{ data: '<json-string>' }`
- v1 `wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/adminapi/login/login.controller.ts:73-107` — 返回 `{ code,msg,data }`
- Java `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/adminapi/login/LoginController.java:56-59` — 返回 `SaResult.data(StpUtil.getTokenInfo())`
- 参数命名不一致(证据)
- Weapp 消息跳转路径:
- v1 `wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/api/weapp/weapp.controller.ts:98-105``@Get('getMsgJumpPath') @Query('outTradeNo')`
- Java `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/api/weapp/WeappController.java:75-77``@GetMapping('/getMsgJumpPath') @RequestParam('out_trade_no')`
## 修复方案清单
- 缺失接口:补齐 `GET /api/member_mobile_exist`
- 路由定义:`@Controller('/api') @Get('member_mobile_exist')`
- 输入:`openid`Query`Channel`Header默认 `h5`);对齐 Java 逻辑
- 位置:`wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/api/sys/sys-config.controller.ts`
- 验收:返回键包含 `member_mobile_exist``member_exist`
- 路径参数一致化:`verify_detail`
- 将 v1 路由从 `@Get('verify_detail/:id')` 改为 `@Get('verify_detail/:code')`
- DTO/Param统一使用 `code` 字段绑定与传递
- 位置:`wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/api/sys/sys-verify.controller.ts:69`
- 验收:`GET /api/verify_detail/{code}` 返回明细正确,参数名与 Java 一致
- 业务实现一致化:`POST /api/verify/{code}`
- 将 v1 方法体从 `checkVerifier` 调用改为 `verifyCode` 调用
- 位置:`wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/api/sys/sys-verify.controller.ts:85-93`
- 验收:成功返回 `Result.success()`;失败返回 `Result.fail()`,与 Java 行为一致
- 管理端 login 差异核验
- 对比 v1 与 Java 的管理端 login 路由明细(含路径、方法、鉴权)
- 若 v1 存在额外路由需确认其业务来源与必要性;否则按 Java 精简或调整到对应模块
- 位置:
- v1 `wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/adminapi/login/login.controller.ts`
- Java `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/adminapi/login/LoginController.java`
- 响应结构一致化(新增)
- `GET /api/wechat/user`:按 Java 将 service 返回对象序列化为 JSON 字符串并包装到 `{ data: string }`
- `GET /adminapi/login/tokenInfo`:与团队达成统一策略后,对齐至 `SaResult.data(...)` 等效形态或保持 `{ code,msg,data }` 并在映射工具中设置例外规则
- 参数命名一致化(新增)
- `GET /api/weapp/getMsgJumpPath`:将 v1 的 `outTradeNo` 统一为 `out_trade_no`Query 参数名),保持服务层入参兼容;或在服务层做参数别名映射以不破坏现有前端
## 执行步骤(建议)
- 步骤 1新增 `member_mobile_exist` 方法于 `sys-config.controller.ts`,对齐 Java 入参与服务层返回结构
- 步骤 2统一 `verify_detail` 路由参数名为 `code`,更新 DTO/Param 绑定与服务层入参
- 步骤 3修正 `POST /api/verify/{code}``verifyCode` 业务调用,按结果返回 success/fail
- 步骤 4核验管理端 login 路由,清单化差异并修复(必要时迁移或删除冗余)
- 步骤 5运行映射检查与 e2e 路由校验(含返回结构键名与 HTTP 方法)
## 验收标准
- 路由一致性路径、HTTP 方法、参数名完全与 Java 一致
- 返回结构:键名与层级对齐(例如 `member_exist``member_mobile_exist`
- 业务语义:`verifyCode` 实际执行核销流程;`verify_detail` 正确按 `code` 查询
- 安全一致:`/adminapi` 使用统一守卫(如 Jwt/Roles`/api` 按实际要求应用公开或鉴权
- 检查通过:`auto-mapping-checker.js` 映射检查零差异e2e 覆盖关键路径全部通过
## 全量证据索引
- 生成的路由全量报告(不做任何推断):
- `docs/routes-full-report.md` — 摘要与前 50 的示例列表
- `docs/routes-full-report.json` — 完整的 Nest/Java 路由列表与差异数组,含 `file:line`
- `docs/routes-modules-report.md` — 按模块聚合的差异统计与样例证据
- `docs/routes-modules-report.json` — 模块字典,包含各模块的 nest/java 路由数与缺失计数
## 模块修复优先级(依据 routes-modules-report.md
- `adminapi/goods` — 差异计数最高(缺失于 v1: 122证据示例`webroot/addon/shop/java/.../AttrController.java:27`
- `adminapi/marketing` — 次高(缺失于 v1: 68证据示例`.../marketing/CouponController.java:28`
- `adminapi/delivery` — 高(缺失于 v1: 52证据示例`.../delivery/CompanyController.java:22`
- `adminapi/member` — 高(缺失于 v1: 28缺失于 java: 21证据示例`.../MemberAccountController.java:25`
- `adminapi/notice` — 高(缺失于 v1: 26缺失于 java: 23证据示例`.../NiuSmsController.java:19`
- `adminapi/addon` — 高(缺失于 v1: 24缺失于 java: 19证据示例`.../AddonController.java:124`
- `adminapi/order``api/goods``api/marketing``api/order``api/refund` — 与前端强相关,建议同步推进;详见 `routes-modules-report.md`
## 批次修复计划
- 批次一(前端使用密集):`adminapi/dict``adminapi/channel``adminapi/member`
- 批次二(商城域):`adminapi/goods``adminapi/marketing``adminapi/delivery``api/goods``api/order``api/refund`
- 每批次完成后:更新 `routes-full-report.{json,md}``routes-modules-report.{json,md}`,并在本文件标记模块“已消除”与证据 `file:line`
## AI 修复任务指令(逐项可执行)
- 任务 A补齐 `GET /api/member_mobile_exist`(已修复)
- 证据Java `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/api/sys/SysConfigController.java:140`
- 位置v1 `wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/api/sys/sys-config.controller.ts`
- 行为:新增 `@Get('member_mobile_exist')`,读取 `openid`Query`Channel`Header默认 `h5`),调用对应服务方法并返回包含 `member_exist``member_mobile_exist`
- 任务 B统一 `verify_detail` 路径参数名(已修复)
- 证据Java `SysVerifyController.java:59` 使用 `{code}`v1 `sys-verify.controller.ts:69` 使用 `:id`
- 位置v1 `wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/api/sys/sys-verify.controller.ts`
- 行为:将路由改为 `@Get('verify_detail/:code')`DTO/Param 绑定字段统一为 `code`
- 任务 C修正 `POST /api/verify/{code}` 的业务实现(已修复)
- 证据Java `SysVerifyController.java:85-93` 调用 `verifyCode`v1 `sys-verify.controller.ts:85-93` 当前调用 `checkVerifier`
- 位置v1 `wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/api/sys/sys-verify.controller.ts`
- 行为:方法体改为调用核销执行服务 `verifyCode`,按结果返回 `Result.success()``Result.fail()`
- 任务 D对齐 `GET /api/wechat/user` 的返回结构(已修复)
- 证据Java `WechatController.java:48-53` 返回 `{ data: '<json-string>' }`v1 `wechat.controller.ts:41-47` 返回对象本身
- 位置v1 `wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/api/wechat/wechat.controller.ts`
- 行为:将 service 返回对象序列化为 JSON 字符串并包装到 `{ data: string }`
- 任务 E对齐 `GET /api/weapp/getMsgJumpPath` 的参数名(已修复)
- 证据Java `WeappController.java:75-77` 使用 `out_trade_no`v1 `weapp.controller.ts:98-105` 使用 `outTradeNo`
- 位置v1 `wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/api/weapp/weapp.controller.ts`
- 行为Query 参数名改为 `out_trade_no`,或在服务层增加参数别名映射以兼容现有前端
- 任务 F管理端 `tokenInfo` 返回结构统一(需团队确认)
- 证据Java `adminapi/login/LoginController.java:56-59` 使用 `SaResult.data(...)`v1 `adminapi/login/login.controller.ts:73-107` 返回 `{ code,msg,data }`
- 位置v1 `wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/adminapi/login/login.controller.ts`
- 行为:按统一策略对齐返回结构;若保持 `{ code,msg,data }`,在映射工具配置例外映射,确保差异不被计为错误
## 影响范围与回归建议
- 受影响模块:`sys-config``sys-verify``login(adminapi)`
- 回归建议:
- 新增/变更路由的 4xx/5xx 行为与防抖/限流(如有)
- 租户隔离(`siteId`/`Channel`)与鉴权策略的一致性
- 上传/核销等接口在 H5/Weapp 渠道的参数来源与头信息
## 参考文件位置
- v1
- `wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/api/sys/sys-config.controller.ts`
- `wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/api/sys/sys-verify.controller.ts`
- `wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/adminapi/login/login.controller.ts`
- Java
- `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/api/sys/SysConfigController.java`
- `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/api/sys/SysVerifyController.java`
- `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/adminapi/login/LoginController.java`

View File

@@ -238,4 +238,16 @@ curl -s -X POST http://localhost:3001/api/ai/recovery/drain
### 参考链接
- 配置指南:`docs/CONFIG_SETUP.md`
- 开发指南:`docs/DEVELOPMENT-GUIDE.md`
- 端点细节:`docs/AI-RECOVERY-DEV.md`
- 端点细节:`docs/AI-RECOVERY-DEV.md`
### 代码对齐执行流程(必须)
- 步骤 1全量扫描
- 匹配模式:`getSiteId\(\)\s*\|\|\s*0``Number\(this\.requestContext\.getSiteId\(\) \|\| 0\)``RequestUtils\.channel\(\) \|\|\s*['"]h5['"]`、控制器手工注入上下文字段(如 `param.siteId = ...`)。
- 步骤 2按批次修改
- 批次 A统一改为 `RequestContextService.getSiteId()` 或使用 `param.siteId/param.memberId`,禁止默认值。
- 批次 B渠道来源改为 `RequestUtils.channel()`,默认值由方法内部提供。
- 批次 C控制器移除手工注入上下文字段服务层从上下文或 `param` 读取。
- 批次 D参数名/路由/返回结构与 VO 子对象对齐 Java示例`out_trade_no`、微信 `{ data: '<json-string>' }`、提现 `transfer` 子对象)。
- 步骤 3验证与验收
- 运行扫描自检,确保批次关键模式清零。
- 对照 Java 文件确认路由/方法/参数/返回结构一致;异常信息一致。
- 合并前必须满足《开发指导原则》的“验收标准”。

View File

@@ -308,4 +308,35 @@ curl -s -X POST http://localhost:3001/api/ai/recovery/drain
### 参考
- 详细指南:`docs/AI-RECOVERY-DEV.md`
- 工作流规范:`docs/AI-WORKFLOW-GUIDE.md`
- 工作流规范:`docs/AI-WORKFLOW-GUIDE.md`
## 对齐 Java 迁移规则(强约束)
- 只替换为 NestJS/boot 写法,不改变任何业务逻辑与数据流。
- 路由/方法/参数/返回结构必须与 Java 1:1 对齐;禁止新增/删改字段与键名。
- 参数与上下文来源:
- `siteId/memberId` 统一由 `RequestContextService.getSiteId()``RequestContextService.memberId` 获取,或由上层传入 `param.siteId/param.memberId`;控制器禁止手动写入上下文字段。
- `Channel` 仅在 Java 明确默认值的场景保留默认Header `Channel` 默认 `h5`),否则禁止使用 `|| 'h5'`
- 默认值与返回:
- 禁止新增默认值(如 `getSiteId() || 0``|| ''``|| 0`);仅保留与 Java 对齐的配置/JSON 读取默认(等价 `getStr(...,"" )``getInt(...,0)`)。
- 返回结构与 Java 对齐(例如 `{ data: '<json-string>' }`),禁止附加额外键。
- 路由与方法:
- 路径/HTTP 方法严格一致(如 `GET /api/verify_detail/{code}`),参数名对齐(如 `out_trade_no`)。
- 不新增非 Java 的调试/演示接口。
- 服务层与控制器职责:
- 登录/权限校验由守卫处理;服务层不做“未登录”等过度校验。
- 服务层使用传参 `param.*` 或上下文读取,禁止在服务层覆盖传入值。
- VO 构建与 Java 一致(如提现 `transfer` 子对象),仅映射必要字段。
- 查询与分页:
- where 条件对齐 Java`siteId/memberId/id` 组合等),排序与分页一致(同字段/顺序/limit/skip
- 异常与校验:
- 异常信息与 Java 文案一致;参数校验放在 DTO/管道/验证器,不在服务层硬编码。
- 类型与结构:
- 避免 `as any` 类型逃逸;保持 DTO/VO 类型清晰JSON/VO 转换遵循 Java 结构(等效 `BeanUtils.copyProperties` 行为)。
- 变更流程(必须遵循):
- 先“扫描 → 标记 → 按批次改动 → 验证”,不得边看边改。
- 批次 A清理 `Number(this.requestContext.getSiteId() || 0)``getSiteId() || 0`
- 批次 B清理 `RequestUtils.channel() || 'h5'`(保留方法内部默认)。
- 批次 C控制器移除手工注入上下文字段`siteId`)。
- 批次 D参数名/路由/返回结构对齐(如 `out_trade_no`、VO 子对象)。
- 批次完成后,用关键模式自检:`getSiteId\(\)\s*\|\|\s*0``Number\(this\.requestContext\.getSiteId\(\) \|\| 0\)``RequestUtils\.channel\(\) \|\|\s*['"]h5['"]`
- 验收标准:
- 路由/方法/参数名/返回结构与 Java 100% 一致;无默认值污染;控制器不手工注入上下文字段;查询与分页排序一致;异常信息一致;类型明确无无谓 `as any`

42231
docs/routes-full-report.json Normal file

File diff suppressed because it is too large Load Diff

1087
docs/routes-full-report.md Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,194 @@
# Routes Modules Report
## Summary
- Nest routes: 701
- Java routes: 2030
## Modules (sorted by missing_in_nest + missing_in_java)
- adminapi/goods — nest 0, java 124, missing_in_nest 122, missing_in_java 0
- missing_in_nest `MIXED /adminapi/shop/goods/attr/adminapi/shop/goods/attr` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/adminapi/goods/AttrController.java:27
- missing_in_nest `GET /adminapi/shop/goods/attr` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/adminapi/goods/AttrController.java:40
- missing_in_nest `GET /adminapi/shop/goods/attr/list` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/adminapi/goods/AttrController.java:52
- adminapi/sys — nest 123, java 282, missing_in_nest 49, missing_in_java 38
- missing_in_nest `MIXED /adminapi/notice/adminapi/notice` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/sys/SysNoticeController.java:21
- missing_in_nest `MIXED /adminapi/sys/adminapi/sys` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/sys/SystemController.java:15
- missing_in_nest `GET /adminapi/sys/agreement/{key}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/sys/SysAgreementController.java:46
- adminapi/marketing — nest 0, java 69, missing_in_nest 68, missing_in_java 0
- missing_in_nest `MIXED /adminapi/shop/goods/coupon/adminapi/shop/goods/coupon` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/adminapi/marketing/CouponController.java:28
- missing_in_nest `GET /adminapi/shop/goods/coupon/init` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/adminapi/marketing/CouponController.java:36
- missing_in_nest `GET /adminapi/shop/goods/coupon` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/adminapi/marketing/CouponController.java:49
- adminapi/delivery — nest 0, java 53, missing_in_nest 52, missing_in_java 0
- missing_in_nest `MIXED /adminapi/shop/delivery/company/adminapi/shop/delivery/company` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/adminapi/delivery/CompanyController.java:22
- missing_in_nest `GET /adminapi/shop/delivery/company` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/adminapi/delivery/CompanyController.java:35
- missing_in_nest `GET /adminapi/shop/delivery/company/list` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/adminapi/delivery/CompanyController.java:47
- adminapi/member — nest 71, java 158, missing_in_nest 28, missing_in_java 21
- missing_in_nest `MIXED /adminapi/member/account/adminapi/member/account` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/member/MemberAccountController.java:25
- missing_in_nest `GET /adminapi/member/account/change_type/{account_type}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/member/MemberAccountController.java:168
- missing_in_nest `MIXED /adminapi/member/address/adminapi/member/address` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/member/MemberAddressController.java:23
- adminapi/notice — nest 38, java 84, missing_in_nest 26, missing_in_java 23
- missing_in_nest `MIXED /adminapi/notice/niusms/adminapi/notice/niusms` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/notice/NiuSmsController.java:19
- missing_in_nest `POST /adminapi/notice/niusms/account/reset/password/{username}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/notice/NiuSmsController.java:92
- missing_in_nest `GET /adminapi/notice/niusms/account/info/{username}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/notice/NiuSmsController.java:105
- adminapi/addon — nest 53, java 118, missing_in_nest 24, missing_in_java 19
- missing_in_nest `MIXED /adminapi/adminapi` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/addon/AppController.java:29
- missing_in_nest `POST /adminapi/addon/install/{addon}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/addon/AddonController.java:124
- missing_in_nest `POST /adminapi/addon/cloudinstall/{addon}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/addon/AddonController.java:136
- adminapi/order — nest 0, java 42, missing_in_nest 41, missing_in_java 0
- missing_in_nest `MIXED /adminapi/shop/adminapi/shop` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/adminapi/order/ShopInvoiceController.java:22
- missing_in_nest `MIXED /adminapi/shop/order/config/adminapi/shop/order/config` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/adminapi/order/ConfigController.java:19
- missing_in_nest `GET /adminapi/shop/order/config` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/adminapi/order/ConfigController.java:29
- adminapi/site — nest 40, java 90, missing_in_nest 19, missing_in_java 15
- missing_in_nest `MIXED /adminapi/site/account/adminapi/site/account` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/site/SiteAccountLogController.java:26
- missing_in_nest `GET /adminapi/site/account/{id}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/site/SiteAccountLogController.java:53
- missing_in_nest `MIXED /adminapi/site/adminapi/site` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/site/SiteController.java:30
- api/member — nest 41, java 92, missing_in_nest 15, missing_in_java 14
- missing_in_nest `MIXED /api/member/api/member` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/member/MemberSignController.java:16
- missing_in_nest `GET /api/member/account/fromtype/{accountType}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/member/MemberAccountController.java:116
- missing_in_nest `GET /api/member/address/{id}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/member/MemberAddressController.java:39
- api/goods — nest 0, java 31, missing_in_nest 29, missing_in_java 0
- missing_in_nest `MIXED /api/shop/goods/category/api/shop/goods/category` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/api/goods/CategoryController.java:27
- missing_in_nest `GET /api/shop/goods/category/config` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/api/goods/CategoryController.java:38
- missing_in_nest `GET /api/shop/goods/category/tree` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/api/goods/CategoryController.java:48
- adminapi/niucloud — nest 13, java 30, missing_in_nest 14, missing_in_java 13
- missing_in_nest `MIXED /adminapi/niucloud/adminapi/niucloud` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/niucloud/ModuleController.java:19
- missing_in_nest `GET /adminapi/niucloud/build` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/niucloud/CloudController.java:30
- missing_in_nest `POST /adminapi/niucloud/build` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/niucloud/CloudController.java:40
- adminapi/diy — nest 54, java 118, missing_in_nest 14, missing_in_java 11
- missing_in_nest `MIXED /adminapi/diy/adminapi/diy` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/diy/DiyFormController.java:32
- missing_in_nest `GET /adminapi/diy/diy/{id}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/diy/DiyController.java:74
- missing_in_nest `PUT /adminapi/diy/diy/{id}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/diy/DiyController.java:100
- api/marketing — nest 0, java 21, missing_in_nest 18, missing_in_java 0
- missing_in_nest `GET /api/shop/coupon` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/api/marketing/CouponController.java:38
- missing_in_nest `GET /api/shop/coupon/{id}` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/api/marketing/CouponController.java:51
- missing_in_nest `POST /api/shop/coupon` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/api/marketing/CouponController.java:64
- adminapi/user — nest 13, java 28, missing_in_nest 8, missing_in_java 7
- missing_in_nest `MIXED /adminapi/user/adminapi/user` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/user/UserController.java:29
- missing_in_nest `GET /adminapi/user/user/{id}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/user/UserController.java:58
- missing_in_nest `PUT /adminapi/user/user/{uid}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/user/UserController.java:80
- api/sys — nest 25, java 64, missing_in_nest 9, missing_in_java 6
- missing_in_nest `MIXED /api/api` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/sys/TaskController.java:13
- missing_in_nest `MIXED /api/area/api/area` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/sys/SysAreaController.java:14
- missing_in_nest `GET /api/area/list_by_pid/{pid}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/sys/SysAreaController.java:25
- adminapi/pay — nest 22, java 52, missing_in_nest 8, missing_in_java 6
- missing_in_nest `MIXED /adminapi/pay/adminapi/pay` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/pay/PayTransferController.java:23
- missing_in_nest `POST /adminapi/pay/channel/set/{channel}/{type}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/pay/PayChannelController.java:66
- missing_in_nest `GET /adminapi/pay/channel/lists/{channel}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/pay/PayChannelController.java:77
- api/order — nest 0, java 15, missing_in_nest 14, missing_in_java 0
- missing_in_nest `MIXED /api/shop/order/api/shop/order` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/api/order/OrderController.java:18
- missing_in_nest `GET /api/shop/order` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/api/order/OrderController.java:35
- missing_in_nest `GET /api/shop/order/{order_id}` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/api/order/OrderController.java:46
- adminapi/channel — nest 15, java 36, missing_in_nest 8, missing_in_java 5
- missing_in_nest `MIXED /adminapi/channel/app/adminapi/channel/app` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/channel/AppController.java:29
- missing_in_nest `GET /adminapi/channel/app/version/{id}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/channel/AppController.java:79
- missing_in_nest `PUT /adminapi/channel/app/version/{id}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/channel/AppController.java:103
- adminapi/article — nest 0, java 13, missing_in_nest 13, missing_in_java 0
- missing_in_nest `MIXED /adminapi/cms/category/adminapi/cms/category` 证据: niucloud-java/webroot/addon/cms/java/src/main/java/com/niu/cms/controller/adminapi/article/ArticleCategoryController.java:25
- missing_in_nest `GET /adminapi/cms/category` 证据: niucloud-java/webroot/addon/cms/java/src/main/java/com/niu/cms/controller/adminapi/article/ArticleCategoryController.java:38
- missing_in_nest `GET /adminapi/cms/category/{id}` 证据: niucloud-java/webroot/addon/cms/java/src/main/java/com/niu/cms/controller/adminapi/article/ArticleCategoryController.java:50
- api/refund — nest 0, java 12, missing_in_nest 12, missing_in_java 0
- missing_in_nest `MIXED /api/shop/api/shop` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/api/refund/RefundController.java:18
- missing_in_nest `GET /api/shop/order/refund` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/api/refund/RefundController.java:30
- missing_in_nest `GET /api/shop/order/refund/{order_refund_no}` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/api/refund/RefundController.java:40
- adminapi/dict — nest 8, java 18, missing_in_nest 6, missing_in_java 5
- missing_in_nest `MIXED /adminapi/dict/adminapi/dict` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/dict/DictController.java:24
- missing_in_nest `GET /adminapi/dict/dict/{id}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/dict/DictController.java:50
- missing_in_nest `GET /adminapi/dict/dictionary/type/{type}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/dict/DictController.java:62
- adminapi/login — nest 8, java 22, missing_in_nest 7, missing_in_java 4
- missing_in_nest `MIXED /adminapi/captcha/adminapi/captcha` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/login/CaptchaController.java:28
- missing_in_nest `MIXED /adminapi/sys/config/adminapi/sys/config/` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/login/ConfigController.java:20
- missing_in_nest `MIXED /logout/adminapi/login` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/login/LoginController.java:29
- adminapi/generator — nest 12, java 26, missing_in_nest 5, missing_in_java 4
- missing_in_nest `MIXED /adminapi/generator/adminapi/generator` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/generator/GenerateController.java:32
- missing_in_nest `GET /adminapi/generator/generator/{id}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/generator/GenerateController.java:58
- missing_in_nest `PUT /adminapi/generator/generator/{id}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/generator/GenerateController.java:85
- adminapi/wechat — nest 20, java 50, missing_in_nest 6, missing_in_java 3
- missing_in_nest `MIXED /adminapi/wechat/adminapi/wechat` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/wechat/MenuController.java:17
- missing_in_nest `MIXED /adminapi/wechat/reply/adminapi/wechat/reply` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/wechat/ReplyController.java:23
- missing_in_nest `GET /adminapi/wechat/reply/keywords/{id}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/wechat/ReplyController.java:44
- api/pay — nest 4, java 10, missing_in_nest 5, missing_in_java 4
- missing_in_nest `MIXED /pay/notify/{site_id}/{channel}/{type}/{action}/api` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/pay/PayController.java:19
- missing_in_nest `POST /pay/notify/{site_id}/{channel}/{type}/{action}/pay` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/pay/PayController.java:31
- missing_in_nest `MIXED /pay/notify/{site_id}/{channel}/{type}/{action}/pay/notify/{site_id}/{channel}/{type}/{action}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/pay/PayController.java:48
- api/cart — nest 0, java 9, missing_in_nest 9, missing_in_java 0
- missing_in_nest `MIXED /api/shop/cart/api/shop/cart` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/api/cart/CartController.java:17
- missing_in_nest `GET /api/shop/cart` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/api/cart/CartController.java:29
- missing_in_nest `GET /api/shop/cart/goods` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/api/cart/CartController.java:39
- adminapi/refund — nest 0, java 8, missing_in_nest 8, missing_in_java 0
- missing_in_nest `MIXED /adminapi/shop/order/refund/adminapi/shop/order/refund` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/adminapi/refund/RefundController.java:17
- missing_in_nest `GET /adminapi/shop/order/refund` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/adminapi/refund/RefundController.java:31
- missing_in_nest `GET /adminapi/shop/order/refund/{id}` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/adminapi/refund/RefundController.java:41
- ai.controller.ts — nest 7, java 0, missing_in_nest 0, missing_in_java 7
- missing_in_java `GET /ai/recovery/status` 证据: wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-ai/src/manager/controllers/ai.controller.ts:55
- missing_in_java `GET /ai/recovery/process-one` 证据: wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-ai/src/manager/controllers/ai.controller.ts:61
- missing_in_java `POST /ai/recovery/process-one` 证据: wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-ai/src/manager/controllers/ai.controller.ts:62
- adminapi/upload — nest 4, java 10, missing_in_nest 4, missing_in_java 3
- missing_in_nest `MIXED /adminapi/sys/adminapi/sys/` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/upload/StorageController.java:28
- missing_in_nest `GET /adminapi/sys/storage/{storageType}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/upload/StorageController.java:54
- missing_in_nest `PUT /adminapi/sys/storage/{storageType}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/upload/StorageController.java:66
- adminapi/shop_address — nest 0, java 7, missing_in_nest 7, missing_in_java 0
- missing_in_nest `MIXED /adminapi/shop/shop_address/adminapi/shop/shop_address` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/adminapi/shop_address/ShopAddressController.java:21
- missing_in_nest `GET /adminapi/shop/shop_address` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/adminapi/shop_address/ShopAddressController.java:34
- missing_in_nest `GET /adminapi/shop/shop_address/{id}` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/adminapi/shop_address/ShopAddressController.java:46
- adminapi/verify — nest 7, java 18, missing_in_nest 4, missing_in_java 2
- missing_in_nest `MIXED /adminapi/verify/verifier/adminapi/verify/verifier` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/verify/VerifierController.java:26
- missing_in_nest `DELETE /adminapi/verify/verifier/{id}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/verify/VerifierController.java:74
- missing_in_nest `MIXED /adminapi/verify/verify/adminapi/verify/verify` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/verify/VerifyController.java:22
- api/article — nest 0, java 6, missing_in_nest 6, missing_in_java 0
- missing_in_nest `MIXED /api/cms/category/api/cms/category` 证据: niucloud-java/webroot/addon/cms/java/src/main/java/com/niu/cms/controller/api/article/ArticleCategoryController.java:15
- missing_in_nest `GET /api/cms/category` 证据: niucloud-java/webroot/addon/cms/java/src/main/java/com/niu/cms/controller/api/article/ArticleCategoryController.java:27
- missing_in_nest `MIXED /api/cms/article/api/cms/article` 证据: niucloud-java/webroot/addon/cms/java/src/main/java/com/niu/cms/controller/api/article/ArticleController.java:18
- api/exchange — nest 0, java 8, missing_in_nest 6, missing_in_java 0
- missing_in_nest `GET /api/shop/exchange` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/api/exchange/ExchangeController.java:31
- missing_in_nest `GET /api/shop/exchange/goods/{id}` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/api/exchange/ExchangeController.java:43
- missing_in_nest `GET /api/shop/exchange/components` 证据: niucloud-java/webroot/addon/shop/java/src/main/java/com/niu/shop/controller/api/exchange/ExchangeController.java:48
- adminapi/home — nest 6, java 14, missing_in_nest 3, missing_in_java 2
- missing_in_nest `MIXED /adminapi/home/adminapi/home` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/home/SiteController.java:28
- missing_in_nest `GET /adminapi/home/site/{id}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/home/SiteController.java:57
- missing_in_nest `PUT /adminapi/home/site/{id}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/home/SiteController.java:70
- adminapi/weapp — nest 12, java 30, missing_in_nest 3, missing_in_java 1
- missing_in_nest `MIXED /adminapi/weapp/adminapi/weapp` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/weapp/VersionController.java:24
- missing_in_nest `MIXED /adminapi/weapp/template/adminapi/weapp/template` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/weapp/TemplateController.java:19
- missing_in_nest `GET /adminapi/weapp/upload/{key}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/weapp/VersionController.java:71
- api/wechat — nest 10, java 24, missing_in_nest 3, missing_in_java 1
- missing_in_nest `MIXED /serve/{site_id}/serve/{site_id}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/wechat/ServeController.java:26
- missing_in_nest `MIXED /serve/{site_id}/api/wechat` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/wechat/ServeController.java:15
- missing_in_nest `MIXED /api/wechat/api/wechat` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/wechat/WechatController.java:26
- adminapi/wxoplatform — nest 13, java 38, missing_in_nest 3, missing_in_java 0
- missing_in_nest `MIXED /adminapi/wxoplatform/adminapi/wxoplatform` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/wxoplatform/WeappVersionController.java:27
- missing_in_nest `POST /adminapi/wxoplatform/server` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/wxoplatform/ServerController.java:22
- missing_in_nest `POST /adminapi/wxoplatform/message/{appid}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/wxoplatform/ServerController.java:43
- api/agreement — nest 1, java 4, missing_in_nest 2, missing_in_java 1
- missing_in_nest `MIXED /api/agreement/api/agreement` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/agreement/AgreementController.java:16
- missing_in_nest `GET /api/agreement/{key}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/agreement/AgreementController.java:30
- missing_in_java `GET /api/agreement/:key` 证据: wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/api/agreement/agreement.controller.ts:29
- api/weapp — nest 7, java 18, missing_in_nest 2, missing_in_java 1
- missing_in_nest `MIXED /serve/{site_id}/api/weapp` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/weapp/ServeController.java:14
- missing_in_nest `MIXED /api/weapp/api/weapp` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/weapp/WeappController.java:18
- missing_in_java `GET /api/weapp/serve/:site_id` 证据: wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/api/weapp/serve.controller.ts:18
- adminapi/stat — nest 6, java 16, missing_in_nest 2, missing_in_java 0
- missing_in_nest `MIXED /adminapi/stat/adminapi/stat` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/stat/StatController.java:24
- missing_in_nest `MIXED /adminapi/hour/adminapi/hour` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/stat/StatHourController.java:22
- api/diy — nest 10, java 24, missing_in_nest 2, missing_in_java 0
- missing_in_nest `MIXED /api/diy/api/diy` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/diy/DiyController.java:19
- missing_in_nest `MIXED /api/diy/form/api/diy/form` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/diy/DiyFormController.java:16
- api/login — nest 10, java 22, missing_in_nest 1, missing_in_java 1
- missing_in_nest `POST /api/send/mobile/{type}` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/login/LoginController.java:100
- missing_in_java `POST /api/send/mobile/:type` 证据: wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/api/login/login.controller.ts:119
- ai-knowledge.controller.ts — nest 1, java 0, missing_in_nest 0, missing_in_java 1
- missing_in_java `GET /ai/knowledge/equivalence` 证据: wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-ai/src/manager/controllers/ai-knowledge.controller.ts:13
- adminapi/aliapp — nest 3, java 8, missing_in_nest 1, missing_in_java 0
- missing_in_nest `MIXED /adminapi/aliapp/adminapi/aliapp` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/aliapp/ConfigController.java:24
- adminapi/auth — nest 6, java 14, missing_in_nest 1, missing_in_java 0
- missing_in_nest `MIXED /adminapi/auth/adminapi/auth` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/auth/AuthController.java:27
- adminapi/index — nest 1, java 4, missing_in_nest 1, missing_in_java 0
- missing_in_nest `MIXED /adminapi/index/adminapi/index` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/adminapi/index/PromotionAdvController.java:13
- api/addon — nest 1, java 4, missing_in_nest 1, missing_in_java 0
- missing_in_nest `MIXED /api/addon/api/addon` 证据: niucloud-java/niucloud-core/target/classes/com/niu/core/controller/api/addon/AddonController.java:15
- core/core-addon.controller.ts — nest 6, java 0, missing_in_nest 0, missing_in_java 1
- missing_in_java `GET /core/addon/setup/:id` 证据: wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/core/core-addon.controller.ts:36
- core/http-server-error.controller.ts — nest 1, java 0, missing_in_nest 0, missing_in_java 1
- missing_in_java `ALL /error` 证据: wwjcloud-nest-v1/wwjcloud/libs/wwjcloud-core/src/controllers/core/http-server-error.controller.ts:16
- adminapi/index.controller.ts — nest 4, java 0, missing_in_nest 0, missing_in_java 0
- api/channel — nest 2, java 6, missing_in_nest 0, missing_in_java 0
- core/core-async.controller.ts — nest 2, java 0, missing_in_nest 0, missing_in_java 0
- core/core-queue-control.controller.ts — nest 1, java 0, missing_in_nest 0, missing_in_java 0