数学学院项目开发总结
学生成长平台
后端:技术栈go+gin+gorm
负责内容:入团申请审核后端部分
前台
- 学生入团申请表单的提交
- 根据审核状态判断不同的跳转页面
后台
-
活动的创建和关闭和信息提交和审核时间的管理
-
表单的审核流转: 班级审批基本信息审批 - > 学生会纪权部道德币审核 ,学生会组织部材料审核 - > 学生会培训成绩审核
-
以班级为单位导出审核通过的入团人员的docx文档
流程
前台:
-
学生入团申请表单的提交
- 查询数据库查询活动信息返给前端判断活动是否开启
- 活动开启后,学生在指定时间提交表单信息,信息状态为未审核,进入到班级审核阶段
- 表单提交时间内,如果信息不通过可再次提交信息,信息状态进入到未审核状态
- 班级审核通过后,或者提交时间结束,表单锁定,不可在进行提交和修改,班级审核通过的人员进入到材料提交阶段
-
学生入团申请材料的提交
- 提交材料格式限制在docx,jpg,jpeg,png,pdf,webp,doc格式
- 提交:材料提交有效时间可提交
- 修改:材料提交有效时间内可修改,材料提交时间截止后,表单锁定,不可尽行修改
- 1.学生会纪权部道德币未审核 ,学生会组织部材料为审核,可再次提交进行修改
- 2.学生会纪权部道德币审核不通过,则表单锁定,不可再修改材料
- 3.学生会纪权部道德币审核通过,学生会组织部材料审核未通过,可再次提交修改
- 4.学生会纪权部道德币审核 ,学生会组织部材料审核通过后,表单锁定,不可修改
后台:
-
活动的创建和关闭和信息提交和审核时间的管理
-
表单的审核流转: 班级审批基本信息审批 - > 学生会纪权部道德币审核 ,学生会组织部材料审核 - > 学生会培训成绩审核
- 班级审核过后,数据进入学生会纪权部道德币审核 ,学生会组织部材料审核两个阶段,全部审批完毕后可导出通过积极分子名单
- 前面三项全部审核通过后,进入到学生会培训成绩审核,全部审核后,可导出最终入团学生名单
-
学生会组织部材料审核 ,学生会培训成绩审核可以班级为单位导出审核通过的入团人员的docx文档
数据库的设计
项目内容独立于其他内容需要设计新的表
通过创建新的三张表分别记录:活动信息,学生提交的表单信息和状态,和学生提交的文件材料
表关系为:
- 活动信息表 一对多 学生提交的表单信息和状态
- 活动信息表 一对多 学生提交的文件材料表
活动信息表:
学生提交的表单信息和状态:
学生提交的文件材料表:
遇到的问题与解决办法
1.时间格式转化失败
前端传入时间格式为2024-10-19T02:38:35.326Z
我解析的格式为2006-01-02 15:04:05
由于字符串格式时间需要对应的时间格式才能转化成功,转导致时间字符串无法被转化为time.time格式,无法使用gorm存入数据库
解决方法:前后端统一数据格式
2.使用word模版导出docx文档,模版无法正常加载
原因:在测试服务器上,项目自动化编译时,未将模版传到服务器
使用 embed 将模版文件打包到go的可执行文件中
通过调用方法在服务器该文件不在时生成一份到服务器中
模版打包
读取模版
3.使用word模版导出docx文档,无法动态生成列表
通过动态生成占位符替换掉原本占位符,再生成数据替换新生成的占位符
基础模版内容:
根据班级数量动态生成列表替换list