最近公司安排开发一组WebService接口程序,我以前没做过这方面,缺乏经验,拿到需求以后很迷茫,不知道代码究竟应该怎么写,现列出项目需求和数据库表结构,请大家一起帮忙看看
项目需求:
一、前提说明
本项目的设计是基于,话务系统采用我方的ocx,由客户方的业务系统调用我方的ocx,以及web服务。
二、接口设计
1.用户信息同步
功能:将用户信息同步到中兴系统(根据TeleNumber,HealthId没有则新增,比较电话号码,如果有,将所有该电话号码状态置无效)
方法名: syncCustomerInfo
参数:TeleNumber 电话号码
HealthId 健康ID
Name 姓名
Address 住址
Gender 性别(1:男 2:女 3:未知)
Network 在网类型(1:联通网络 2:移动网络 3:电信 4:未知)
Locale 来电用户号码归属地(归属省份、城市)
CreateDate 创建日期
OperateFlag 操作来源(0:中兴1:客户方调用)
返回:0成功,1,失败
备注:应用场景如下,新增用户信息,或者根据电话号码修改用户信息的时候同步到中兴系统。更新原则:根据TeleNumber,HealthId去查询,如果没有该记录,则根据电话号码去查询,如果存在有电话号码,将所有电话号码未该电话号码的用户信息状态置为无效,然后更新。
但是今天遗漏了一个场景,用户如果本人修改账户信息,健康ID不做修改,那么如何同步用户信息,是否是根据TeleNumber,HealthId去查询,有的话就更新数据库,如果这样的话,那么客户方就必须进行控制,不能重复同步,那样会影响性能的。
2.账户信息/订购关系同步(账户信息/消费记录,充值记录)
功能:将客户方账户的账户变化信息同步到中兴系统账户(目前只有订购包月业务,订购关系同步与账户信息同步调用同一接口,只是订购关系同步是在订购的时候实时调用,账户信息同步是在账户发生变化的时候实时同步)
方法名:syncPayInfo
参数:json对象
{tablename:table1,field1:value1;field2:value2…;tablename:table2…….}
Table1:账户表:
TeleNumber 电话号码
HealthId 健康ID
ServiceType 服务类型
PaymentType 缴费方式
Balance 余额
OperateFlag 操作来源(0:中兴1:客户方调用)
Table2:消费记录或者充值记录表,根据table名区分
充值记录信息
TeleNumber 电话号码
HealhtID 健康ID
PrepaidDate 充值时间(时间格式为yyyy-MM-dd hh:mm:sss)
PrepaidAmount 充值金额(单位:分)
PrepaidType 充值方式(1:网银支付 2:客户方咨询卡 3:扩展一 4:扩展二)