Files
wwjcloud-nest-v1/.trae/documents/后端一致性问题清单(Java-vs-NestV1).md

57 lines
4.2 KiB
Markdown
Raw Permalink Normal View History

# 后端一致性问题清单Java vs Nest v1
仅列出不一致项,供后端开发 AI 按 Java 源码核实与修复。每条均给出 Java 具体文件位置(含行号范围)。
## 1缺失控制器API 任务接口
- 差异Nest v1 缺少 `GET /api/task/growth``GET /api/task/point`
- Java 基准:`niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/api/sys/TaskController.java:19-27`
- 修复建议:在 v1 增加对应 `api/sys/task` 控制器与端点,实现从 `ITaskService` 获取成长任务与积分任务并返回 `Result.success(...)`
## 2缺失端点小程序消息推送
- 差异Nest v1 存在控制器但无方法Java 端提供 `/api/weapp/serve/{site_id}`
- Java 基准:`niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/api/weapp/ServeController.java:25-29`
- 修复建议:在 v1 的 `/api/weapp` 控制器中添加 `serve/{site_id}` 端点,设置站点 `RequestUtils.setSiteId(siteId)`,调用 `IServeService.service(request, response)`
## 3缺失端点公众号消息推送
- 差异Nest v1 存在控制器但无方法Java 端提供 `/api/wechat/serve/{site_id}`
- Java 基准:`niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/api/wechat/ServeController.java:26-30`
- 修复建议:在 v1 的 `/api/wechat` 控制器中添加 `serve/{site_id}` 端点,设置站点并调用 `IServeService.service(request, response)`
## 4错误统一处理`/error` 响应逻辑缺失
- 差异Nest v1 控制器存在但无方法Java 端实现了状态码分支并返回 `Result.fail(...)`
- Java 基准:`niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/core/HttpServerErrorController.java:16-33`
- 修复建议:在 v1 的 `/error` 控制器实现 `handleError` 逻辑,按照 500 / 404 / 其他状态返回 `Result.fail(code, message)` 并附 `contextPath`
## 5异步任务接口响应语义不一致
- 差异:`GET /core/task/async`
- Java仅返回固定消息“异步任务开始”
- Nest v1返回异步执行结果对象
- Java 基准:`niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/core/CoreAsyncTaskController.java:41-45`
- 修复建议:将 v1 的 `/async` 响应改为 `Result.success("异步任务开始")`,与 Java 语义对齐;同步 `/sync` 保持返回执行结果
## 6插件控制器多处行为与权限不一致
- 差异:`/core/addon/*`
- `/javaSetup`Java 执行 `AddonInstallJavaTools.installExec("shop")` 后返回空成功v1 返回检查结果对象
- `/setup/{id}`Java 执行 `installCheck` 后还执行 `install("shop", "local")`v1 仅执行检查
- `/exception`Java 抛出运行时异常v1 返回成功
- `/auth`Java 抛出 `AuthException`v1 返回成功
- `/saCheckLogin`Java 需登录(`@SaCheckLogin`v1 标记公开访问(`@Public`
- Java 基准:
- `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/core/CoreAddonController.java:31-35`javaSetup
- `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/core/CoreAddonController.java:42-47`setup/{id}
- `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/core/CoreAddonController.java:54-60`exception
- `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/core/CoreAddonController.java:67-73`auth
- `niucloud-java/niucloud-core/src/main/java/com/niu/core/controller/core/CoreAddonController.java:75-79`saCheckLogin
- 修复建议:
- `/javaSetup``/setup/{id}` 按 Java 流程执行对应安装工具与安装动作,返回空成功
- `/exception``/auth` 改为抛出与 Java 对应的异常类型,交由全局异常处理器响应
- `/saCheckLogin` 取消公开访问,启用登录守卫,语义对齐 Java 的登录校验
## 7多余控制器Nest v1
- 差异:`NiuExceptionHandlerController` 在 v1 存在但 Java 端无对应控制器
- 说明:可保留作为框架级占位;若需对齐 Java可删除或实现为全局异常处理而非控制器形式
---
注:以上为截至当前检索的全部不一致项。修复时需严格对齐 Java 业务逻辑与接口契约,完成后建议运行端到端契约测试以验证路由、参数与响应一致性。