项目背景:
ADD项目要求除了能够查询IMEI, MSISDN和IMSI这三个基本元素之外,还要求能够查询出触发这三元的数据的移动交换中心MSC的GT值,因此需要对ADD的业务处理逻辑进行修改。在业务逻辑的修改过程中,除了要考虑既能满足用户的新需求,同时还要兼顾到ADD的处理性能。
数据库表的修改:
1:数据库表名称:tb_user_basicinfo
存储数据描述:该表存储用户当前最新的四元组数据,除了以前的IMEI, MSISDN和IMSI之外,还新增加了GT字段,但同时删除该表的主关键字。用红色表示新增字段GT,删除的主关键字字段不在出现在该表中。新的四元包括:IMEI, MSISDN,IMSI 和 GT。
同时修改后的逻辑变更为:该表只存储一条最新的四元组数据。该表存储的数据主要用于判断是否调用OTA的下发配置短信。原来下发配置短息的逻辑保持不变,当IMEI, MSISDN和IMSI中的其中一个元素发生变化的时候,都要调用OTA提高的下发配置短信接口。该文档后续部分用有较为详细的描述该表数据如何插入,修改,以及在什么情况下调用OTA提供的下发配置短信接口。
数据库字段 | 字段数据类型 | 是否可以为空 | 是否关键字 |
basic_imei | varchar2(24 byte) | not null |
|
basic_imsi | varchar2(24 byte) | not null |
|
basic_msisdn | varchar2(24 byte) | not null |
|
Basic_gt | varchar2(24 byte) | not null |
|
last_time | Date | not null |
|
gentime | Date | not null |
|
carrierid | varchar2(24 byte) | null |
|
reserve | varchar2(24 byte) | null |
|
2:数据库表名称:tb_user_basicinfo_bak
存储数据描述:该表存储ADD模块收到所有的四元组数据,除了以前的IMEI, MSISDN和IMSI之外,还新增加了GT字段。用红色表示新增字段GT. 新的四元包括:IMEI, MSISDN,IMSI 和GT。每当ADD系统收到一条check_imei消息是,都会往该表插入一条新记录。所以该表存储了所有的check_imei记录。用户可以通过对该表查询获取某个用户的四元组信息变化情况以及和变化时间的一个对应关系。
数据库字段 | 字段数据类型 | 是否可以为空 | 是否关键字 |
basic_id | number(19, 0) | not null | 是 |
basic_imei | varchar2(24 byte) | not null |
|
basic_imsi | varchar2(24 byte) | not null |
|
basic_msisdn | varchar2(24 byte) | not null |
|
Basic_gt | varchar2(24 byte) | not null |
|
last_time | date | not null |
|
gentime | date | not null |
|
carrierid | varchar2(24 byte) | null |
|
reserve | varchar2(24 byte) | null |
|
业务处理逻辑:
1:当ADD收到一条check_imei消息时,解析出四元组(IMEI, MSISDN, IMSI,GT)。
2:首先在tb_user_basicinfo_bak中插入一条记录。
3:然后在tb_user_basicinfo中按照如下逻辑操作:首先判断在tb_user_basicinfo中是否已经存在包含IMEI, MSISDN, IMSI这三元中任何一元的记录,存在一下三种情况:
3.1 如果存在包含这三元中至少其中的一元的记录,并且满足这三元中的其中一元或者两元同时发生了变化,那么同时更新发生变化的字段,同时调用OTA提供的下发短信配置接口。
3.2如果找到,但这三元都没有发生变化,那么说明没有必要调用OTA提供的下发短信配置接口。仅仅修改这条记录的GT字段即可。无需调用OTA提供的下发短信配置接口。
3.3 如果不存在,那么仅仅插入一条新的记录即可。同时调用OTA提供的下发短信配置接口。