chore: push latest changes
This commit is contained in:
243
docs/AI-FIX-REPORT.md
Normal file
243
docs/AI-FIX-REPORT.md
Normal 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)
|
||||
- sys(api)
|
||||
- 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
|
||||
- wechat(api)
|
||||
- v1: `wechat.controller.ts` 9
|
||||
- Java: `WechatController.java` 9
|
||||
- weapp(api)
|
||||
- v1: `weapp.controller.ts` 6
|
||||
- Java: `WeappController.java` 7
|
||||
- pay(api)
|
||||
- v1: `pay.controller.ts` 4
|
||||
- Java: `PayController.java` 4
|
||||
- member(api)
|
||||
- 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
|
||||
- login(api)
|
||||
- v1: `login.controller.ts` 7、`register.controller.ts` 3
|
||||
- Java: `LoginController.java` 7、`RegisterController.java` 2
|
||||
- diy(api)
|
||||
- v1: `diy-form.controller.ts` 6、`diy.controller.ts` 4
|
||||
- Java: `DiyFormController.java` 6、`DiyController.java` 4
|
||||
- channel(api)
|
||||
- v1: `channel/app.controller.ts` 2
|
||||
- Java: `channel/AppController.java` 2
|
||||
- agreement(api)
|
||||
- v1: `agreement.controller.ts` 1
|
||||
- Java: `AgreementController.java` 1
|
||||
- addon(api)
|
||||
- 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
|
||||
|
||||
## 模块差异与证据(按域)
|
||||
- sys(api)
|
||||
- 证据(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` — 六个 GET;v1 缺 `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`
|
||||
|
||||
- wechat(api)
|
||||
- 证据(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>' }`
|
||||
|
||||
- weapp(api)
|
||||
- 证据(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)
|
||||
|
||||
- pay(api)
|
||||
- 证据(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`
|
||||
- 差异:无(路径与方法一致)
|
||||
|
||||
- member(api)
|
||||
- 证据(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`
|
||||
- 差异:无显著差异(路径与方法一致,返回结构键名部分需逐项核验)
|
||||
|
||||
- login(api)
|
||||
- 证据(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 为 3,Java 为 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 19,Java 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 方法数 4;Java 方法数 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`
|
||||
@@ -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 文件确认路由/方法/参数/返回结构一致;异常信息一致。
|
||||
- 合并前必须满足《开发指导原则》的“验收标准”。
|
||||
|
||||
@@ -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
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
1087
docs/routes-full-report.md
Normal file
File diff suppressed because it is too large
Load Diff
1230
docs/routes-modules-report.json
Normal file
1230
docs/routes-modules-report.json
Normal file
File diff suppressed because it is too large
Load Diff
194
docs/routes-modules-report.md
Normal file
194
docs/routes-modules-report.md
Normal 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
|
||||
Reference in New Issue
Block a user