散100分,请大家帮忙看看这几个接口程序应该怎么写?
最近公司安排开发一组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:扩展二)
消费记录信息
TeleNumber 电话号码
HealhtID 健康ID
PurchaseDate 消费时间(时间格式为yyyy-MM-dd hh:mm:sss)
PurchaseAmount 消费金额(单位:分)
PurchaseServiceType服务类型(1:联通包月 2:联通计时 3:联通计次 4:客户方包月 5:客户方计时 6:客户方计次)
ConsultaId 导诊断人员工号
ExpertId 专家咨询工号(高级专家是电话号码)
isMine 是否本人
ConsultTarget 咨询对象
返回:json对象,{result:0or1;info:“错误信息“}
Result= 0成功,=1,失败 如果失败,info=错误原因
3.黑名单信息同步
功能:将黑名单信息同步到中兴系统(中兴话务系统不做黑名单的增删改查,黑名单管理在客户方业务系统)
方法名: syncBlackList
参数:TeleNumber 电话号码
OperateType 操作类型(1:加入黑名单,2:从黑名单中删除)
返回:0成功,1,失败
4黑名单查询
功能:根据客户方业务系统,提供的电话号码,检查该号码是否在黑名单中,以进行黑名单取消的功能。
方法名: queryBlackList
参数:TeleNumber 电话号码
返回:0是,1,否
5.用户状态实时查询(反向用户信息,账号信息)
功能:查询用户状态
方法名:QueryCustomerState
参数名:TeleNumber 电话号码
返回 “false”表示失败,否则是json字符串,显示该用户的用户信息,账户信息(唯一healthID有效的记录)json对象
{tablename:table1,field1:value1;field2:value2…;tablename:table2…….}
6. 坐席状态查询接口
功能:查询工号状态
方法名:QueryFreeAgent
参数: agentList 需要查询的工号列表的json字符串
返回:“false”表示失败,否则是状态闲的agentList json字符串。有可能是空json串
备注:建议一次查询提交的工号不超过50
数据库表结构:
用户信息表:
字段名称类型长度必填说明
HealthIdInt10True来电用户号码在客户方系统中分配的唯一标识
TeleNumberString16True来电用户号码
NameString32True来电用户姓名
GenderTinyint3True来电用户性别(1:男 2:女 3:未知)
NetworkTinyint3False来电用户号码在网类型(1:联通网络 2:移动网络 3:电信 4:未知)
LocaleString32False来电用户号码归属地(归属省份、城市)
AddressString128False来电用户住址
SyncLabelTinyint3True来电用户号码信息同步标识(1:已同步 2:未同步)
SyncDateTimestampTrue来电用户号码信息同步时间戳(不接受比该时间戳小的数据同步请求)
CreateDateTimestampTrue来电用户在客户方系统中创建账户时间(时间格式为yyyy-MM-dd hh:mm:ss)
用户账号信息表:
字段名称类型长度必填说明
HealthIdInt10True来电用户号码在客户方系统中分配的唯一标识
ServiceTypeTinyint3True来电用户号码当前使用服务类型(1:联通包月 2:联通计时 3:联通计次4:客户方包月 5:客户方计时 6:客户方计次)
PaymentTypeTinyint3True来电用户号码当前使用服务缴费方式(1:联通代缴 2:客户方账户缴费)
BalanceString16True来电用户号码在客户方系统的账户余额(单位:分)
SyncLabelTinyint3True来电用户号码账号信息同步标识(1:已同步 2:未同步)
SyncDateTimestampTrue来电用户信息同步时间戳(不接受比该时间戳小的数据同步请求)
CreateDateTimestampTrue来电用户号码第一次开通服务账号时间(时间格式为yyyy-MM-dd hh:mm:sss)
备注:用户账号服务类型、缴费方式、余额发生变化时出发同步。
用户充值记录信息表:
字段名称类型长度必填说明
HealthIdInt10True来电用户号码在客户方系统中分配的唯一标识
PrepaidTypeTinyint3True来电用户号码充值方式(1:网银支付11:沃支付 21:客户方咨询卡31:联通充值卡)
PrepaidAmountString16True来电用户号码充值金额(单位:分)
PrepaidDateTimestampTrue来电用户号码充值时间(时间格式为yyyy-MM-dd hh:mm:sss)
SyncLabelTinyint3True来电用户号码充值记录同步标识(1:已同步 2:未同步)
SyncDateTimestampTrue来电用户号码充值记录同步时间戳
用户消费记录信息表:
字段名称类型长度必填说明
HealthIdInt10True来电用户号码在客户方系统中分配的唯一标识
PurchaseTypeTinyint3True来电用户号码消费类型(1:联通包月 2:联通计时 3:联通计次4:客户方包月 5:客户方计时 6:客户方计次)
PurchaseAmountString16True来电用户号码消费金额(单位:分)
PurchaseDateString32True来电用户号码消费时间(时间格式为yyyy-MM-dd hh:mm:sss)
ConsultaIdString16True为来电用户号码本次导医人员Id
ExpertIdString16False为来电用户号码本次提供专家咨询人员Id
IsMineTinyint3False来电用户号码本次咨询对象是否为本人(1:是 2:非本人)
ConsultTargetString64False来电用户号码本次咨询对象非本人时该字段有效,取咨询对象
SyncLabelTinyint3True来电用户号码充值记录同步标识(1:已同步 2:未同步)
SyncDateTimestampTrue来电用户号码充值记录同步时间戳
黑名单信息表:
字段名称类型长度必填说明
NeverCallId char 16True黑名单编号
ProjectCategoryId char 16 False分类编号
NeverCallCategoryId2 char 16 False分类编号
CompanyCode char 4 True公司码
InvalidDate datetime False失效日期
Name nvarchar 40 False姓名
Country nvarchar 20 False国家
Province nvarchar 20 False省份
City nvarchar 20 False城市
Area nvarchar 20 False区县
HomeTel1 nvarchar 20 False家庭电话1
HomeTel2 nvarchar 20 False家庭电话2
CompanyTel1 nvarchar 20 False公司电话1
CompanyTel2 nvarchar 20 False公司电话2
MobileTel nvarchar 20 False手机号码
OtherTel nvarchar 20 False其他电话
IdentityCardNo nvarchar 20 False身份证号
IPAddress varchar 40 FalseIP地址
MemoContent nvarchar 200 False备注
CreatePerson nvarchar 20 False创建人
CreateTime datetimeFalse创建时间
请大家帮忙分析一下需求,具体程序代码应该怎么写,如何返回json字符串,请给一些指导,谢谢!