2020.10.27
- 开始、确定基本程序结构
- 简单的程序设计
- Email 功能完成
2020.10.28
- 决定为本程序建立仓库
- 日志、验证功能
- 事件发布、订阅
2020.11.1
- 缓存模块
- 全局配置(MyFontProperties 部分功能)
2020.11.8~9
- 项目迁移
- 缓存模块基本完成
- 登录凭证、安全上下文
- 全局配置项功能模块(及相关的工具类、实体类等)
2020.11.13
- 全局配置项
- 邮件功能模块重写
2020.11.14~15
- AdminController
- UserController
- core 包、全局异常处理、全局 Controller 日志
- 登录模块(未测试)含登录验证即相关部分
- 系统安装、初始化模块(未测试)
- 配置使用 Swagger2 API 文档(修正版本无法显示的 BUG)
- 全局响应、全局异常处理、Json 序列化、全局 MVC 配置
- 创建开发环境配置文件
2020.11.16
- 剔除无关代码、重命名可复用的类
- 建库(课设相关部分)
2020.11.17
- 程序基础模块完善
- 用户模块(API 接口):用户更新、用户登录功能
2020.11.18
- 用户模块(API 接口):社团用户列表(及分页)
- 用户模块(API 接口):(用户列表、用户信息展示)
- 修改用户表,添加用户角色字段,方便管理员功能开发
- 遗留数据迁移
- 测试接口时发现重大 BUG
2020.11.19
- 编写开发文档(dev.md),记录关键模块的原理与思路
- 系统基础模块:全局过滤器、用户登录状态拦截器,废弃 OpenIdUser 方案取得用户凭证,改用 SecurityContext 方案
2020.11.20
- 修改用户登录方案,ThreadLocal(过滤器拦截用户 Token,验证并写入) + Token + 缓存,取代 Session
- 更新用户信息时表单字段分组验证
- 修复 BUG: 实体类上的枚举类型无法与数据库进行映射
- 修复 BUG: 用户登录后,登录状态失效(OpenId 传递过程中丢失)
- 修复 BUG: 联合主键查询不到数据
- 修复 BUG: 查询用户信息列表错误(无用户、分页数量错误)
2020.11.21
- 管理员模块:管理员登录凭证的生成与校验
- 管理员模块:修改用户授权(分级权限管理)
- 管理员模块:新增社团成员
2020.11.22
- 管理员模块:用户信息增删改查
- 解决问题:循环依赖,构造注入改为 setter 注入
- 修改设计:用户学号修改为 Long 类型,并设置为唯一键
- 修复 BUG:因用户学号字段数据类型修改导致的类型转换问题
- 修复 BUG:管理员登录后提示未登录(Token 前缀设置错误)
- 修复 BUG:管理员修改授权
2020.11.23~25
- Start Bootstrap 管理后台的前端页面雏形
- 将写好的模板页拆分成 ftl 碎片
- 管理员登录页面的前后端打通
2020.11.26
- 管理后台:仪表盘主要功能完成,前后端打通(数据统计、系统日志、社团收支、加载层、简易事件分发中心以及相关的工具函数)
2020.11.28
- 管理后台:社团信息维护功能完成(社团信息的 CRUD)
2020.11.29
- 前端整合 DataTables(Alt-Editor、buttons、responsive、select、汉化)
- 管理后台:社团财务信息维护(账单信息 Bill 的 CRUD)
2020.11.30
- 管理后台:社团系统日志查看、社团成员管理界面设计
2020.12.1
- 全局配置:在 Filter 层、Servlet 层中间增加 Emoji 转化工具
- 管理后台:社团成员基本信息维护(CRUD)
2020.12.2~3
- 管理后台:社团成员基本信息、社团关系信息(CRUD)完成、BUG 修复。
- 合并预约模块部分代码,修复错误页面 BUG
2020.12.4
- 分析剩余模块功能、设计
- 管理后台,活动室、预约管理页面设计
2020.12.5
- 管理后台,活动室管理模块(Room、Belong)
2020.12.6~7
- 修复 BUG: 管理员活动室管理页面,正确填写表单后提示错误
- 修复 BUG: 管理员活动室管理页面,新建创建活动室时,删除按钮可见
- 修改:新增字段导致已有模块的变化
- 整理代码
- 增加 DateUtils ,以指针方式操作日期,并完成测试
- 用户预约功能实现
2020.12.8
- 引入 Bootstrap-Sweetalert 留下一些 Bug (管理员功能页面,受影响部分,未调试)
- 废弃 Bootstrap-Sweetalert 文档受限,难于拓展,引入 sweetalert2 并封装
2020.12.9
- 废弃 YUI 压缩,采用手动压缩
- 管理后台:预约模块完成
- 管理后台:系统参数模块完成
- 邮件模块测试通过
2020.12.10~12
- 重新设计通知模块(废弃微信通知方案)
- 重新设计小程序页面
- 完成通知模块基础构建(不包含接口)
2020.12.13~16
- 小程序端旧系统功能移植整合
- 定时任务
- 公告模块(后台管理页面、CRUD)
- 通知模块(通知类型、全局通知事件监听)
- 日志模块整理(在哪里发送日志)
- 留言功能(仅后端)
- 清空 TODO List (仅后端,不含关注模块)
2020.12.19~20
- 修复初次线上测试发现的功能性 BUG
2020.12.21
- 小程序用户留言功能整合完毕
2020.12.22~25
- 小程序功能总体完善(所有页面的跳转关系、样式整理)
2020.12.26~29
- 再次线上测试
- 编写用户文档
- 与 BUGS 战斗
- 按照阿里巴巴编码规约(插件)修改代码
2020.12.30
- UserMap 缓存实现(未测试)
2021.1.3~5
- 3.0.10 版本上限以及相关的 BUG 修复
2021.1.6~7
- 增加维护后台模块设计,提供在线缓存、日志检测与维护(运维增强)
- 维护后台前端完成
- 维护后台后端接口完成,使用独立的授权验证规则,独立于其他模块,使系统缓存瘫痪时,不波及到维护后台
- 样式修改、前后端调通
2021.2.16
- BUG 修复、小程序 BUG 修复版推上线
2021.3.17~22
- 实现日结算跑批并测试通过
2021.5.20
- 日志调整,优化产生日志的流程
2021.5.21~2021.5.22
- 缓存重构:使用多级缓存方案进行优化
- 替换应用代码中的缓存使用
- 替换缓存锁中的缓存使用
- 维护后台,缓存维护方案重写
2021.5.23
- 用户缓存 Map 优化
- 缓存模块测试通过
-
校验缓存部分日志功能是否正常
-
补充优化其余造成用户表全表扫描的情况
-
优化体验
- 左右滑动切换上下周
- 访客模式(访客使用的仅有浏览功能的页面)
-
功能优化
- 整理日志模块,基于日志建立监控
- 引入学期概念
- 通知弹窗功能、通知小红点
- 暂未发现
- 管理后台
- 修改社团时,如果经费未发生变化,无需生成收支调整记录(直接使用 BigDecimal 的 equals 导致的坑)
- 删除账单没有效果(修改后没有写库)
- 缓存的 refresh token 并没有效果(过滤器路径通配符遗漏导致)
- 仪表盘动画效果异常,相同代码生成的静态 HTML 文件直接加载并不能重现这个问题,css 压缩插件导致的问题
- 数据从数据库中查出来后,传递到前端丢失。原因:DTO 对象未正确设置 getter、setter 导致数据不对外公开
- 新建社团时,传入的初始经费被忽略,直接为零。Club 的初始化方法中需要加一个判空条件
- Alt-Editor BUGS、功能拓展
- 编辑用户基本信息时,打开管理员用户的编辑后,管理员选项并未选中。alt-editor 并不会调用 render 方法,拓展方法解决。
- 设置了 readonly 的字段,无论执行什么操作都无法修改。alt-editor 并不支持分操作只读,拓展方法解决。
- 用户为系统管理员时,无法出现在用户列表中
- 登录页面提示弹窗不统一
- 登录页面图片无法显示
- 用户头像为 null 时无法登录管理后台
- 选中某社团并切换页面时,无法保存社团的选择状态
- 新增用户时,学号可以输入字母
- 无法回到当前周
- 仪表盘:查看全部日志、收支时失去登录状态。
- 系统初始化时无法使用(500)
- 没有社团时,无法添加社团
- 社团管理员可以增删用户基本信息。
- 未重现 BUG:登录一段时间后,登录凭证失效(修改后,BUG 消失,原因未知)
- 周次更新、通知时,存在大量空白活动室日志信息(周末每小时定时任务时,边界条件:没有活动室刷新的情况考虑不周)
- 系统管理员无法发布系统公告(权限判定逻辑写错,重大 BUG)
- 小程序端
- 通知页面,日期显示为英文(toLocateDateString() 方法在不同系统显示并不统一)
- 公告页面,标题显示错误(遗漏)
- 活动室详情页,开放状态显示错误(更新后使用缓存中的数据导致)
- 首次输入学号时,无法输入负数
- 修改个人信息结束后,应该返回。使用微信数据后,应该提交整个表单
- 接受通知,但是未预留邮箱的情况不报错
- 留言后,弹出提示无法阅读马上返回(通过栈模拟页面栈数据解决,将提示在上一个页面显示)
- 社团成员列表分页查询,在用户时长相同时,有可能出现重复(增加排序字段,让每一个元素都不重复)
- 消息开关显示异常
- 个性签名太长导致标题换行
- 用户选中时段的限制不够(可以修改其他人已经选过的时段)
- 未重现 BUG:用户操作导致其他用户的 wxId 变为 cache_lock_(加锁重新设计后消失了)
- 反复退出重新登录时,弹出过于频繁,并跳转到完善学号界面(加锁重新设计)
- 因多级缓存造成的 BUG
- 测试环境:用户修改后数据未更新
- 线上环境:用户列表无法加载(500 错误),因直接删除数据库用户数据导致
- 线上环境:用户获取登录口令报 500 错误,未知原因,清缓存后恢复
- 其他 BUG
- 活动室禁用后未显示
- 周日重置时间到达后,推迟一个小时才能开放下周的预定
- 修改活动室弹出社团找不到(ID 用错了,大 BUG)
- 处理因用户缓存引入的转化错误
- Redis 缓存因集群问题(资源受限)未进行测试
- 分功能模块开发
- 预约模块(关注时间段、签到限制)
- 活动管理模块(管理员举办活动、用户参与活动、贡献点数核算等)
- 测试增强
- 补充全部模块的单元测试
- 压力测试
- 架构增强
- 集群架构方案(SpringCloud, Docker)
- 优化设计
- 系统公告单独列出
- 通知强度加强