[P2] 后端代码存在多项质量问题 #4

Open
opened 2026-01-18 17:04:17 +08:00 by tangweijie · 0 comments
Owner

问题描述

后端代码存在多项代码质量问题,包括重复 import、空指针风险、未实现的方法等。

涉及文件

  • backend/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/evaluationreport/EvaluationReportServiceImpl.java
  • backend/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/evaluationreport/llm/impl/EvaluationReportLlmServiceImpl.java
  • backend/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/dashboard/impl/PrisonDashboardServiceImpl.java

问题详情

1. 重复的 import 语句 (P2)

文件: EvaluationReportServiceImpl.java:35

import static cn.iocoder.yudao.module.prison.enums.ErrorCodeConstants.*;
// 重复 import
import static cn.iocoder.yudao.module.prison.enums.ErrorCodeConstants.*;

2. generateReportContent 未实现 (P2)

文件: EvaluationReportLlmServiceImpl.java:89-93

@Override
public boolean generateReportContent(Long reportId) {
    // TODO: 实现批量生成报告内容
    return false;
}

该方法直接返回 false,调用方可能误解为生成失败。

3. 空指针风险 (P2)

文件: PrisonDashboardServiceImpl.java:89-92

PrisonerDO prisoner = prisonerService.getPrisoner(prisonerId);
if (prisoner == null) {
    return vo;  // 返回空的 VO,前端可能展示空数据
}

当罪犯不存在时,返回空的 VO 对象而不是抛出异常或更合适的错误响应。

4. AI Log 硬编码 creator (P3)

文件: EvaluationReportLlmServiceImpl.java:177

logDO.setCreator("system");  // 应该是当前登录用户

应该使用 SecurityFrameworkUtils.getLoginUserId() 获取真实用户。

5. SQL 注释语法错误 (P3)

文件: prison_module.sql 多处

`deleted` bit(1) NOT NULL DEFAULT b'0 COMMENT '是否删除',

b'0' 后面缺少右括号,应该是 b'0' COMMENT

影响

  • 重复 import 虽不影响运行但影响代码可读性
  • 未实现的方法可能导致调用方逻辑错误
  • 空指针风险可能导致前端展示异常数据
  • SQL 语法错误可能导致脚本执行失败

建议修复

  1. 删除重复的 import 语句
  2. 在未实现的方法中抛出 UnsupportedOperationException
  3. 对空指针情况抛出明确的业务异常
  4. 使用 SecurityFrameworkUtils 获取当前用户
  5. 修复 SQL 脚本中的语法错误

优先级

P2 (Medium)

标签

bug, backend, code-quality

## 问题描述 后端代码存在多项代码质量问题,包括重复 import、空指针风险、未实现的方法等。 ## 涉及文件 - `backend/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/evaluationreport/EvaluationReportServiceImpl.java` - `backend/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/evaluationreport/llm/impl/EvaluationReportLlmServiceImpl.java` - `backend/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/dashboard/impl/PrisonDashboardServiceImpl.java` ## 问题详情 ### 1. 重复的 import 语句 (P2) **文件**: `EvaluationReportServiceImpl.java:35` ```java import static cn.iocoder.yudao.module.prison.enums.ErrorCodeConstants.*; // 重复 import import static cn.iocoder.yudao.module.prison.enums.ErrorCodeConstants.*; ``` ### 2. generateReportContent 未实现 (P2) **文件**: `EvaluationReportLlmServiceImpl.java:89-93` ```java @Override public boolean generateReportContent(Long reportId) { // TODO: 实现批量生成报告内容 return false; } ``` 该方法直接返回 `false`,调用方可能误解为生成失败。 ### 3. 空指针风险 (P2) **文件**: `PrisonDashboardServiceImpl.java:89-92` ```java PrisonerDO prisoner = prisonerService.getPrisoner(prisonerId); if (prisoner == null) { return vo; // 返回空的 VO,前端可能展示空数据 } ``` 当罪犯不存在时,返回空的 VO 对象而不是抛出异常或更合适的错误响应。 ### 4. AI Log 硬编码 creator (P3) **文件**: `EvaluationReportLlmServiceImpl.java:177` ```java logDO.setCreator("system"); // 应该是当前登录用户 ``` 应该使用 `SecurityFrameworkUtils.getLoginUserId()` 获取真实用户。 ### 5. SQL 注释语法错误 (P3) **文件**: `prison_module.sql` 多处 ```sql `deleted` bit(1) NOT NULL DEFAULT b'0 COMMENT '是否删除', ``` `b'0'` 后面缺少右括号,应该是 `b'0' COMMENT`。 ## 影响 - 重复 import 虽不影响运行但影响代码可读性 - 未实现的方法可能导致调用方逻辑错误 - 空指针风险可能导致前端展示异常数据 - SQL 语法错误可能导致脚本执行失败 ## 建议修复 1. 删除重复的 import 语句 2. 在未实现的方法中抛出 `UnsupportedOperationException` 3. 对空指针情况抛出明确的业务异常 4. 使用 `SecurityFrameworkUtils` 获取当前用户 5. 修复 SQL 脚本中的语法错误 ## 优先级 P2 (Medium) ## 标签 bug, backend, code-quality
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tangweijie/xlcp-backend#4
No description provided.