57 lines
4.2 KiB
Markdown
57 lines
4.2 KiB
Markdown
# 后端一致性问题清单(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 业务逻辑与接口契约,完成后建议运行端到端契约测试以验证路由、参数与响应一致性。
|