Sprint Blog 4 (Dec 31-Jan 1) from“Pulse news stream”
1. 核心需求明确:结合管理员实际使用场景,梳理导出功能核心需求:① 支持多格式导出,优先实现Excel(.xlsx)、CSV两种主流格式,适配不同离线使用场景;3. 核心价值:新闻导出功能的新增,使管理员系统形成“数据治理(删改)-数据备份(导出)”的完整管理闭环,不仅提升了数据管理的安全性与灵活性,更适配了校园新闻归档、数据统计分析等专属需求,进一步强化管理员系统的实用价值。2. 数据校验:对
一、 阶段承接与功能升级背景
1. 上一阶段成果衔接:上一阶段已成功开发管理员系统基础功能,实现了新闻单条/批量删除、多字段修改及完善的权限控制机制,解决了RSS采集数据的治理难题;但在功能验证与需求复盘过程中,发现现有管理能力仍存在短板,亟需补充数据导出相关功能;
2. 功能升级背景:基于运营与数据管理的实际需求,管理员提出核心诉求:① 需将新闻数据导出为离线文件,用于数据备份、归档存储;② 支持按筛选条件导出指定新闻(如特定时间段、特定分类的校园新闻),便于针对性数据分析;因此,本次冲刺聚焦管理员系统功能升级,核心新增新闻导出功能,同时优化现有删改功能细节;
3. 核心价值:新闻导出功能的新增,使管理员系统形成“数据治理(删改)-数据备份(导出)”的完整管理闭环,不仅提升了数据管理的安全性与灵活性,更适配了校园新闻归档、数据统计分析等专属需求,进一步强化管理员系统的实用价值。
二、 核心功能升级:新闻导出功能开发过程与实现细节
本次管理员系统升级基于原有技术架构(前端Vue+后端SpringBoot+MySQL)推进,核心围绕“多格式导出、筛选条件适配、性能优化”三大关键环节实现新闻导出功能,同时兼容现有删改功能,确保系统整体稳定性:
(一) 新闻导出功能需求拆解与技术选型
1. 核心需求明确:结合管理员实际使用场景,梳理导出功能核心需求:① 支持多格式导出,优先实现Excel(.xlsx)、CSV两种主流格式,适配不同离线使用场景;② 支持按筛选条件导出,可根据新闻类型(常规/福大校园)、发布时间范围、分类标签等条件精准导出目标数据;③ 导出数据字段可配置,默认包含新闻ID、标题、正文摘要、来源、发布时间、分类标签,支持管理员自定义选择导出字段;④ 支持批量导出大量数据,确保导出过程不卡顿、数据不丢失;
2. 技术选型:后端选用EasyExcel框架实现Excel导出(优势:内存占用低、支持大数据量导出),CSV导出通过Java原生IO流实现;前端新增导出操作入口与参数配置弹窗,通过Axios调用后端导出接口,实现导出请求提交与文件下载触发;
(二) 新闻导出功能核心实现细节
1. 后端导出接口开发:
- 接口设计:新增统一导出接口,支持通过请求参数指定导出格式(excel/csv)、筛选条件(新闻类型、时间范围、分类ID等)、自定义字段列表;接口采用异步处理机制,避免大量数据导出时阻塞主线程;
- 数据处理:通过MyBatis-Plus实现多条件联合查询,精准筛选目标新闻数据;针对大数据量导出(如1000+条新闻),采用分页查询+流式写入文件的方式,降低内存占用,避免OOM异常;
- 格式适配:Excel导出时,通过EasyExcel注解定义单元格样式(表头加粗、字段对齐),并对长文本字段(如正文摘要)进行自动换行设置;CSV导出时,统一编码为UTF-8,避免中文乱码问题;
2. 前端交互与适配实现:
- 操作入口设计:在管理员系统新闻管理列表页,新增“导出新闻”按钮,与现有“批量删除”按钮并列;点击后弹出导出配置弹窗,支持格式选择、筛选条件补充、导出字段勾选;
- 导出流程优化:提交导出请求后,前端显示“导出中”加载状态,同时通过轮询接口获取导出进度;导出完成后自动触发文件下载,无需管理员手动触发;若导出失败,显示具体失败原因(如筛选条件无数据、格式选择错误);
- 福大专栏适配:在导出筛选条件中,单独增设“福州大学专栏新闻”专属筛选项,支持按校园分类标签(校团委通知、学术活动等)精准导出校园新闻数据,适配校园数据归档需求;
- 权限控制适配:导出功能复用现有管理员权限控制机制,后端接口添加权限校验拦截器,仅持有有效Token的管理员可发起导出请求;同时在操作日志中新增“导出”操作类型,记录导出管理员账号、导出条件、导出时间、数据量等信息,确保操作可追溯;

(三) 现有删改功能优化细节
在推进导出功能开发的同时,针对上一阶段测试反馈的问题,对现有新闻删改功能进行细节优化:
- 删除功能优化:新增“删除回收站”模块,逻辑删除的新闻自动移入回收站,支持7天内恢复,避免误删除导致的数据丢失;回收站数据超过7天自动清理,释放存储资源;
- 修改功能优化:优化新闻编辑弹窗的字段校验逻辑,新增正文实时保存功能(每30秒自动保存草稿),避免编辑过程中页面刷新导致内容丢失;针对福大校园新闻,优化分类标签选择体验,支持模糊搜索标签


三、 阶段进展与全功能联调成果
1. 已完成的核心工作:
- 完成管理员系统功能升级,新增新闻Excel/CSV格式导出功能,支持多条件筛选、自定义字段导出;
- 完成导出功能与现有权限控制、操作日志模块的对接,确保权限安全与操作可追溯;
- 完成新闻删改功能细节优化,新增删除回收站、正文自动保存等实用功能;
- 完成管理员系统全功能联调(删改+导出+权限控制),实现与前端界面、RSS采集数据的无缝适配;
- 完成福州大学专栏新闻的专属导出适配,确保校园新闻分类导出精准性;
- 更新《管理员系统操作手册》,补充导出功能操作流程与注意事项。
2. 全功能联调与测试成果:
- 功能测试:管理员系统全功能测试用例40条(含导出功能15条、删改优化功能10条、联调功能15条),通过率97.5%,仅1条大数据量导出(5000+条)时进度显示延迟问题已修复;
- 性能测试:单批次导出1000条新闻耗时≤3秒,批量删除50条新闻耗时≤1秒,操作响应流畅无卡顿;权限校验无遗漏,未出现未授权访问、操作日志缺失等问题;
- 兼容性测试:管理员系统在主流浏览器(Chrome、Firefox、Edge、Safari)中均能正常运行,导出文件格式兼容各类办公软件(Excel、WPS、记事本等)。
四、 开发过程中遇到的问题与解决
本次管理员系统升级开发过程中,主要遇到大数据量导出性能、导出文件中文乱码、功能联调适配三大核心问题,已针对性解决:
1. 问题1:大数据量导出时内存溢出、响应缓慢;
解决思路:摒弃传统“一次性查询全量数据再导出”的方案,采用“分页查询+流式写入”机制;后端通过MyBatis-Plus分页查询获取数据,使用EasyExcel流式写入Excel文件,避免全量数据加载到内存;同时开启异步线程处理导出任务,前端通过轮询获取进度,提升用户体验;
2. 问题2:CSV格式导出文件出现中文乱码;
解决思路:在后端导出接口中,设置CSV文件编码为UTF-8,并在响应头中指定“Content-Type: text/csv; charset=UTF-8”;前端下载时,通过Blob对象指定编码格式,确保中文内容正常显示;
3. 问题3:导出功能与现有删改功能联调时,出现数据查询冲突;
解决思路:优化数据库查询语句,为导出、删改功能的查询操作添加锁机制(读锁),避免并发查询导致的数据不一致;同时统一数据查询服务,使导出与删改功能复用同一套数据查询逻辑,减少适配成本。
五、 下一阶段计划
1. 收尾优化:基于全功能测试反馈,微调管理员系统操作细节,如优化导出配置弹窗交互、完善错误提示文案;
2. 数据校验:对导出数据进行全面校验,确保导出字段完整性、数据准确性,避免因RSS采集数据更新导致的导出异常;
3. 文档完善:整理管理员系统开发文档、测试报告,形成完整的项目交付文档包;
4. 冲刺收尾:筹备Beta冲刺总结工作,梳理全阶段功能成果、问题解决经验,为冲刺总结博客做准备。
更多推荐
所有评论(0)