第5篇:Alpha阶段Day5冲刺日志

项目冲刺 - day5

1. 每天举行站立式会议image

2. 昨天已完成的工作

邢子昂:完成 T09(题目表设计),搭建 T10(题目增删改查 API)的 Service 层。
庄成杰:完成 T08(学科管理页面)的列表与新增功能开发。
张翔:完成 T13(试卷增删改查 API)的 “新增 / 查询” 接口开发。

3. 今天计划完成的工作

邢子昂:完成 T10(题目增删改查 API)全量开发,与前端联调 “题目列表” 接口,同时开发题目批量导入接口
庄成杰:完成 T08(学科管理页面)的编辑 / 删除功能开发,开始 T11(题目管理页面)的框架搭建,同时实现题目搜索功能(按题型 / 学科筛选)
张翔:完成 T13(试卷增删改查 API)的 “编辑 / 删除” 接口开发,开始 “试卷关联题目” 接口开发,适配题目批量选择的前端组件参数。

4. 工作中遇到的困难

邢子昂:Excel 批量导入题目时,不同题型的答案格式不统一(单选是字符串、多选是数组),导致解析错误;解决方案:在 Excel 模板中明确标注题型对应的答案格式,后端按题型分类解析。
庄成杰:题目管理页面多条件搜索时,接口参数拼接混乱(题型、学科 ID、关键词同时传参);解决方案:使用URLSearchParams统一拼接查询参数,确保接口请求格式正确。
张翔:试卷关联题目时,题目数量超过 20 个后页面出现卡顿;解决方案:实现题目列表的虚拟滚动加载,仅渲染可视区域内的题目。

5. 发布项目燃尽图

image

6. 最新模块

T10 题目 API 开发
@RestController
@RequestMapping("/api/question")
public class QuestionController {
@Autowired
private QuestionService questionService;

// 新增题目
@PostMapping
public AjaxResult addQuestion(@Validated @RequestBody Question question) {
    boolean success = questionService.save(question);
    return AjaxResult.success(success);
}

// 分页查询题目
@GetMapping("/list")
public AjaxResult listQuestions(@RequestParam Integer pageNum, @RequestParam Integer pageSize) {
    Page<Question> page = new Page<>(pageNum, pageSize);
    IPage<Question> result = questionService.page(page);
    return AjaxResult.success(result);
}

}

@PostMapping("/batchImport")
public AjaxResult batchImportQuestions(@RequestParam("file") MultipartFile file) {
try {
List questions = ExcelUtils.readExcel(file, Question.class);
// 按题型解析答案格式
questions.forEach(q -> {
if (q.getType() == 2) { // 多选:将答案字符串转为数组格式
q.setAnswer("[" + q.getAnswer() + "]");
}
});
boolean success = questionService.saveBatch(questions);
return AjaxResult.success(success);
} catch (Exception e) {
return AjaxResult.error("批量导入失败:" + e.getMessage());
}
}

7. 每日每人总结

邢子昂:题目 API 联调顺利,参数校验的补充让接口更健壮。

庄成杰:学科页面的 CRUD 闭环完成,题目管理页面的框架可复用学科页面逻辑。

张翔:试卷 API 的基础功能完成,关联题目的接口逻辑已理清,明天可快速实现。

posted @ 2025-12-03 19:17  jslisten  阅读(4)  评论(0)    收藏  举报