首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web Service >

散100分,请大家帮忙看看这几个接口程序应该如何写

2013-07-01 
散100分,请大家帮忙看看这几个接口程序应该怎么写?最近公司安排开发一组WebService接口程序,我以前没做过

散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字符串,请给一些指导,谢谢!

热点排行