# 2024-2025年度教育E卡通运维计划
## 备份
1. 网络中心政务云做一个镜像或数据库备份；

## 增加银行卡字段（临时）
1. bdata基础数据库内增加学生关联的家长银行卡字段
2. 
## 数据处理
### 针对毕业升级过程中碰到的数据问题，进行数据排查和修正

1. **检查毕业班级设置：**
   - **目标：** 确保所有毕业班级为六年级或初三，并确保所有六年级或初三均为毕业班级。
   - **操作：** 检查所有班级的年级设置，确保六年级和初三为毕业班，非毕业班级年级不为六年级或初三。对于不符合的班级进行修正。

2. **检查手动升级设置：**
   - **目标：** 确保所有手动升级的年级为毕业班或特殊学校，所有毕业班或特殊学校均设置为手动升级。
   - **操作：** 检查手动升级设置与年级和学校类型匹配情况，确保毕业班和特殊学校设置为手动升级，其他情况不设置手动升级，并修正不符项。

3. **检查学校年级设置：**
   - **目标：** 确保每所学校的年级设置完整。
   - **操作：** 检查每所学校的年级设置，确保年级完整且序号正确（初中3个、小学6个、9年一贯9个年级）且年级序号正常（7-9、1-6、1-9）。对于不完整或序号错误的年级进行补齐和修正。

4. **检查班级序号重复：**
   - **目标：** 确保同一学年内班级序号不重复。
   - **操作：** 检查每个年级内的班级序号是否有重复，列出重复项并手动修正。

5. **排查毕业班级和学生信息：**
   - **目标：** 确保所有毕业班和今年刚毕业的学生的毕业年龄符合要求。
   - **操作：** 搜索所有毕业班和今年刚毕业的学生，查找毕业年龄不符的学校年级班级，列出毕业年龄超过2年的学生，通过大平台接口进行学生信息查询和标注，并通知学校管理员核对。


## 基础平台
### 年级、班级设置
1. **重新设置管理员权限：**
   - **目标：** 确保学校无权进行学校和年级管理，必须由区/市级管理员进行管理。
   - **操作：** 
     - 学校设置完成后，区/市级管理员创建相应年级：
       - **小学:** 创建1-6年级
       - **初中:** 创建7-9年级
     - 设定6年级和9年级为默认手动升级和毕业班，其余年级为默认自动升级和非毕业班。
     - 年级昵称统一为“一年级、二年级、三年级、四年级、五年级、六年级、七年级、八年级、九年级”。

2. **新建班级设置：**
   - **目标：** 确保新建班级时班级编号唯一，并且设置项简洁明了。
   - **操作：**
     - 在新建班级时，只允许选择属于哪一年级的几班（班级编号从阿拉伯数字1班开始，最多到99班）。
     - 确保班级编号不可重复。
     - 仅显示设置班级昵称和备注等选项，其他选项一概不显示。
### 学生信息管理
1. **批量导入数据格式：**
   - **目标：** 确保批量导入数据时年级和班级选项精确。
   - **操作：** 
     - 对导入的数据进行调整，年级、班级根据序号进行判断，而不是名称。
     - 模版批量导入数据时，模版中明确年级和班级选项使用数字，年级写1-9，班级填写班级序号，并在模板和导入页面都应注释如何填写。可能调整的页面包括新生信息导入、注册报道等。
     - 注册报道批量导入说明文字：
       - 注册报道用于小升初的学生E卡通注册，从原毕业小学注册到现在所在的初中。
       - 导入前请先点击“导入模板下载”下载模板，请勿对模板进行任何样式及格式的修改，否则可能影响您的正常导入。
       - 模板中，“年级”一栏填写数字，初一是7，初二是8，初三是9。班级一栏也需填数字，根据${school_name}情况，初一年级的各班级序号如下：` ${class_name} 序号是 ${class_number}`。也可以在“组织机构”-“班级管理”进行查看和修改。
       - 一次批量导入不要超过500条数据。
       - 仅支持身份证号。其他证件号请使用单个注册报道。
     - 新生信息批量导入说明文字：（待补充）

2. **批量注册报道调整：**
    - **目标：** 调整报错信息和模板。
    - **操作：** 
      - 对于报错信息，报错信息的具体行号和错误的原因。
      - 模板调整：除第三点外，还需删除E卡通号的列。
      - 外籍学生，使用手动单个注册报道。

3. **新生数据录入防止重复数据录入：**
   - **目标：** 直接限制重复录入，避免重复数据造成的错误。
   - **操作：** 设置系统逻辑，禁止重复录入学生信息。
   - **新增字段：提交时间**
     - **移动端:** 点击“提交”时记录时间戳。
     - **PC端:** 点击“保存”或“提交”时记录时间戳。



4. **学生照片显示问题：**
   - **目标：** 解决数据库与迁移照片大小写不匹配导致学生照片无法显示的问题。
   - **操作：**
     - 统一设置文件名为大写，去除空格和CJK字符等非ASCII字符。
     - 批量处理现有数据，查询并删除重复数据。


5. **报到注册审核异常：**
   - **目标：** 解决因卡状态为空导致的审核报错问题。
   - **操作：** 修改审核逻辑，不再判断卡状态，避免报错。


## 卡务平台
1. **制卡确认查询条件修改：**
   - **目标：** 改进查询条件以提高查询准确性。
   - **操作：** 将查询条件从“数据创建时间”改为“确认制卡的确认时间”。




2. **临时增效自动清理：**
   - **目标：** 定期清理临时表中的无效数据。
   - **操作：**
     - 每年9月1日自动剔除临时表中初三已毕业的学生数据。
     - 每年10月1日自动剔除临时表中非正常状态的学生数据。
     - 或者考虑临时增效的有效期设置为1个月？一个月以后自动剔除。
3. **制卡订单管理页面优化：**
   - **目标：** 确保区域和学校信息匹配，并改进制卡订单管理页面字段。
   - **操作：**
     - 对于区域和学校不匹配的情况，从大数据平台拉取匹配信息并进行更新。
     - 将制卡订单管理页面的“申请制卡时间”字段改为“区审核通过时间”。


4. **制卡数据录入检查：**
   - **目标：** 提前发现并处理制卡数据中的异常情况。
   - **操作：**
     - 在录入或导出时进行检查，确保制卡数据不为0KB或1KB，区域代码不为null，性别不为空等。
     - 需要找出0KB等情况的原因，并修复。


5. **E卡通增效记录查询优化：**
   - **目标：** 确保查询E卡通号时不区分卡序列号大小写，全面显示增效记录。
   - **操作：**
     - 调整E卡通号查询逻辑，不区分卡序列号的大小写，显示该E卡通号下的全部增效记录。

## H5端
1. **学生详情页添加市民卡卡号：**
   - **目标：** 学生详情页添加市民卡卡号
   - **操作：**
     - 学生详情页添加市民卡卡号。

## 网络和服务器

1. **服务器监控：**
   - **目标：** 防止服务器磁盘满等情况导致的系统问题。
   - **操作：** 
     - 编写并部署监控脚本，实时监控服务器日志磁盘使用情况，防止磁盘满等情况发生。

2. **各应用的部署调整：**
   - **目标：** 根据各应用的功能不同，调整应用的部署位置，确保各应用的部署合理。
   - **操作：** 
     - (待补充)
## 智慧教育大平台
### 用户体系对接

1. **使用大平台的用户体系：**
   - **目标：** H5端优先使用大平台的用户体系进行登录验证。
   - **操作：** 
     - H5端使用手机号登录，匹配大平台家长手机号与E卡通平台家长手机号；
     - 如果手机号无法登录（未匹配到），则允许使用原身份证密码进行登录。

### 数据字段核对

1. **学校数据：**
   - **目标：** 确保学校数据与教育E卡通学校信息匹配。
   - **操作：** 与教育E卡通学校信息逐一核对，并以大平台学校数据为准进行修复。

2. **年级数据：**
   - **目标：** 保持现有年级数据不变。
   - **操作：** 不进行任何修改。

3. **班级数据：**
   - **目标：** 保持现有班级数据不变。
   - **操作：** 不进行任何修改。

4. **学生数据：**
   - **目标：** 核对学生数据，决定是否进行修正。
   - **操作：** 对学生数据进行一次全面核对，根据核对结果决定是否需要修正。

### 数据对接

1. **新数据采集与推送：**
   - **目标：** 确保新采集的数据能及时推送到大平台。
   - **操作：** 以区审核通过为标准，推送新采集的数据到大平台。

2. **学生信息查询接口：**
   - **目标：** 提供学生信息查询的接口给大平台。
   - **操作：** 开发并提供学生信息查询接口，供大平台使用。

### 支付对接

1. **微信支付嵌入小程序：**
   - **目标：** 验证小程序嵌入H5后是否可以实现微信支付。
   - **操作：**
     - 进行验证，如果可行，则进行小程序微信支付的改造。
     - 如果不可行，考虑开发独立的小程序版本的E卡通。

### 管理平台对接

1. **用户对接：**
   - **目标：** 确保大数据平台登录时能正确提供管理员的角色信息，并分配相应权限。
   - **操作：** 
     - 在大数据平台登录时，提供管理员的角色信息。
     - 如果是学校管理员，教育E卡通管理平台为其分配账号及对应的学校管理员权限。
     - 班主任和区级管理员暂不进行对接。
     - 

## 志教融合
1. **志愿服务平台对接：**
   - **目标：** 同步志愿服务平台的活动信息，上传打卡信息
   - **操作：** 
     - 同步志愿服务平台的活动信息到基础教育平台。
     - 设置增效机。根据活动时间和学校，设置活动时间，期间打卡作为志教融合的活动打卡。
     - 将打卡信息上传到基础教育平台。

2. **展示志教融合打卡信息：**
   - **目标：** 在教育E卡通平台上展示学生打卡信息
   - **操作：** 
     - H5端，增加志教融合板块。
     - 显示学生打卡信息，包括活动名称、打卡时间、打卡状态等。


## 实时乘车
1. **实时乘车上线**
   - **目标：** 实时乘车功能上线
   - **操作：** 
     - 重新评估功能，确保功能完整、稳定、安全。
     - 完成相关文档、流程。


## 日常运维

### 为教育E卡通管理平台提供技术保障服务、运维支撑服务
1. 为平台提供运行维护工作，保障平台高效稳定的运行；及时处理业务反馈的问题：如线上订单状态调整、调整/删除学生数据、数据查询、平台操作等；
2. 按照项目进度要求，配合各学校内部教育E卡通应用的对接工作；协助解决问题或提供技术咨询、建议等，确保项目正常有序进行；
3. 应用系统安全：定期对教育E卡通管理平台进行系统安全检测，如发现漏洞及时进行修复，稳固系统的安全性，落实三级等保要求；
4. 完善与智慧教育大平台数据交互（详见上述“智慧教育大平台”章节）
5. 配合数字化支持下的劳动教育与志愿服务，与试点区域和学校进行技术对接；

### 教育E卡通管理平台现有的技术功能必须保证的技术、性能安全和验收要求
1. **基础技术服务**
- 日常应用维护服务：确保平台各功能模块的正常使用而提供的答疑、误操作补救、数据完整性、一致性检查等服务，以及系统的故障咨询或报修服务；
- 分析改进服务：指根据每月维护报修情况进行分析梳理，找出各种潜在的问题或者不足，并提出优化或者改进建议，提供一个不断改进完善的服务；
- 应用功能调整和修改服务：指由于系统BUG导致的应用系统问题而引起的程序修改；
- 支持配合服务：当由教育E卡通平台系统需要与其他的外部系统进行交流时，提供接口部分的技术支持和实现以及相关部分的实施配合服务；
- 其他系统运行服务：定期对平台系统（包括应用、文档和源代码）进行测试和检查，及时发现潜在的问题，并进行修复；应用户提出的需要配合完成的其他工作；
2. **容量及性能**
- 用户容量要求不低于1000万；
- 每日处理交易数据能力：≥20万笔。
- TPS ≥ 150。
- 业务处理交易平均响应时间≤ 2s。
- 普通业务查询平均响应时间≤ 1s，数据处理量比较大的查询平均响应时间≤3s。
- 具有差错检测和预警处理机制
3. **安全性**
- 客户端和服务器间能够使用安全的通信协议(HTTPS)，数据加密传输。
- 应有良好的安全机制防范攻击，阻止非法用户的侵入和攻击，保证网络和服务器安全。
- 敏感信息在数据库加密存储。
- 接口按权限分级，禁止无权限用户访问。
- 系统应实现良好的日志机制。
- 有分级权限管理功能,即不同的管理员或领导有不同的操作和查询权限。
4. **维护与保障技术服务**
- 进行7*24小时监控；
- 对平台网络、服务器以及应用程序出现的故障进行及时有效解决；
- 针对业务维护等方面基础知识，按需提供业务培训工作；
- 平台常规问题应保证1小时之内解决，现场服务响应时间小于4小时，重大问题需通知相关技术人员协助解决；
- 每月进行一次业务巡检，按需进行平台功能优化，并及时向业务负责人进行汇报，保证相关运维工作配合的及时性和有效性；
5. **其他**
- 安排足够技术人员，保证系统正常运行和保障服务期内平台及设备的正常运作；
- 确保运维服务人员以优良状态做好技术保障工作，

## 制度规范及文档
### 制度规范
1. **岗位职责和安全教育**
    - **操作：** 
        - 经常对员工进行岗位职责和安全教育，加强岗位责任考核；
        - 因管理不当、违规操作发生系统损坏、数据泄露等安全事故对甲方造成一定损失的（包括但不限于直接和间接经济损失、声誉影响等），需承担相应的赔偿责任。
2. **落实网络安全技术服务和管理**
    - **操作：** 
        - 采取有效措施落实项目网络安全工作任务：包括保障应用系统安全、数据安全。
        - 建立技术服务网络与数据安全管理制度，明确安全运维、安全培训、应急支撑等方面工作职责，并以文本方式（如协议）向所涉及的工作人员明确网络安全责任和要求。
### 文档
1. **平台巡检报告**
    - **操作：** 
        - 每月进行一次业务巡检，按需进行平台功能优化，并及时向业务负责人进行汇报，保证相关运维工作配合的及时性和有效性。
        - 每月按时提交平台巡检报告。
2. **故障/漏洞说明**
    - **操作：** 
        - 对平台网络、服务器以及应用程序出现的故障、安全风险漏洞进行及时有效的解决。
        - 提交平台网络、服务器以及应用程序出现的故障、安全风险漏洞情况说明；
        
## 时间表

> 涉及到毕业升级的，要求在8月20日之前完成；其余根据双方沟通后，安排落实。


### 常规运维
1. **按月提交平台巡检报告**
2. **提交故障/漏洞修复说明（如有）**
3. **日常数据修改、平台操作异常等问题处理**
4. **重大节点技术保障承诺及服务**

### 毕业升级
   - **目标：** 8月20日前完成毕业升级。
   - **操作：** 
       - 7月29日发布通知
       - 7月30日-8月13日毕业升级操作确认
       - 8月14日开始操作、备份数据、检查环境、检查学校年级班级信息，按区域进行手动毕业、自动升级，
       - 8月15-16日检查、数据验证、异常处理；
     
### 功能优化
1. **9月开学前完成**
    - 完成上述基础平台、学生信息管理、卡务系统、H5端优化；

### 新生数据采集
1. **9月-11月**
    - 配合完成新生数据采集、推送制卡数据、解析制卡文件，推送新生数据至大平台；

### 贴膜服务
1. **10月-11月**
    - 配合完成推送贴膜数据


## 重要数据
### 大平台接口
#### 密钥和接口文档
 密码kBzrhWnEArk2AJskj8          账号Ekatong
 接口文档：https://wlkj.suzhou.edu.cn/space/api/edu_sz/index.html  接口文档
#### 获取系统token
https://wlkj.suzhou.edu.cn/v1/api/edu/suzhou/app-user/login
POST application/json
{
   "name": "Ekatong",
   "password": "kBzrhWnEArk2AJskj8"
}
返回结果：7200s有效期
HTTP/1.1 200 OK
{
"code": 1,
"message": "SUCCESS",
"result": "55494ffd78ef4eb5b3281dbfbab1f3b5"
}

#### 获取学生信息
1. 根据学生身份证号获取学生信息
https://wlkj.suzhou.edu.cn/v1/api/edu/suzhou/student/find-by-nationalId
POST application/json
{
   "token": "55494ffd78ef4eb5b3281dbfbab1f3b5",
   "nationalId": "33010219900101001"
}
Response:
{
   "code": 1,
   "message": "SUCCESS",
   "result": {
        "avatar": null,
        "className": null,
        "clazz": 70259,
        "enrollYear": 2022,
        "gender": 2,
        "grade": 12,
        "gradeName": "九年级",
        "name": "徐可馨",
        "nationalId": "Wqa75Z9mKyWxaiJTcFqFGyonmTLi/xvmX9GqavsVAt8=",
        "parents": null,
        "phone": null,
        "relation": null,
        "schoolId": 1731,
        "schoolName": "苏州市吴中区木渎实验中学",
        "status": 1
   }
}
2. 根据家长身份证或手机获取

https://wlkj.suzhou.edu.cn/v1/api/edu/suzhou/student/find-by-parent
POST application/json,nationalId和phone任选其一
{
   "token": "55494ffd78ef4eb5b3281dbfbab1f3b5",
   "nationalId": "320586198111298814",
   "phone": "17706212809"
}

Response:
{
    "code": 1,
    "message": "SUCCESS",
    "result": [
        {
            "avatar": null,
            "className": "2210",
            "clazz": 70259,
            "enrollYear": 2022,
            "gender": 2,
            "grade": 12,
            "gradeName": "九年级",
            "name": "徐可馨",
            "nationalId": "Wqa75Z9mKyWxaiJTcFqFGyonmTLi/xvmX9GqavsVAt8=",
            "parents": null,
            "phone": null,
            "relation": "父子",
            "schoolId": 1731,
            "schoolName": "苏州市吴中区木渎实验中学",
            "status": 1
        }
    ]
}
nationalId: AES解密，ECB 模式，key: "1c6e847bed8f49b5"
