1、沃云详细设计书SNS 共享version: 0.1last update:2012-4-24版本历史版本 提案人 批准人 日期 描 述0.1 杨鹏 新建全体目 录1 概要 .52 详细设计 .52.1 慢同步/获取共享 .52.1.1 功能描述 .52.1.2 处理过程 .52.1.3 程序时序图 .72.1.4 程序结构 .72.1.5 DB 访问 .82.2 快同步 .82.3 创建共享 .92.3.1 功能描述 .92.3.2 处理过程 .92.3.3 程序时序图 .102.3.4 程序结构 .112.3.5 DB 访问 .122.4 查询共享好友组 .122.4.1 功能描述 .122
2、.4.2 处理过程 .122.4.3 程序时序图 .132.4.4 程序结构 .142.4.5 DB 访问 .142.5 删除共享 .152.5.1 功能描述 .152.5.2 处理过程 .152.5.3 程序时序图 .162.5.4 程序结构 .162.5.5 DB 访问 .173 补充说明 .171 概要沃云服务器提供用户备份文件的共享功能,并指定好友组的读写权限。目前共享仅限于对文件夹的共享,并仅限于共享给好友组。共享的业务流程如下:1. 用户选择云端共享文件,选择好友分组2. 发起共享消息请求,带上文件 ID、组 ID3. 好友获取有共享文件的好友列表4. 获取好友 A 的共享文件列表
3、,选择文件下载5. 根据文件 ID,获取文件 META 信息6. 下载文件2 详细设计2.1慢同步/获取共享2.1.1 功能描述获取用户的全部共享,或指定 id 的共享元信息。该功能用于慢同步、或其他需要获取指定共享的情况。2.1.2 处理过程1、 获取必要参数参数名 数据类型 参数来源 说明id String HttpServletRequest 消息 ID(复数个)jsessionId String HttpServletRequest Session IDlimit String HttpServletRequest 最大数量offset String HttpServletReques
4、t 偏移2、 调用同步引擎 Sync4jEngine.getServerSource(sourceName)方法,获得同步源。3、 初始化同步源的设备 ID,即将 2 取得的同步源的 DeviceId 设置为SapiSessionHandler.syncState.device 对象的 DeviceId。4、 判断 1 获得的参数 “id”,若 id 为空,获取该用户的全部共享。注:若 limit 和 offset 非空,需考虑获取最大数量和起始偏移参数名 类型 数据来源 说明id 查询 sns_inner_shared 共享 iduserid 条件 jsession 用户 IDsource_
5、uri 条件 jsession URIstatus 条件 D 非删除状态6、 将 5 获取的分享消息信息集按照接口要求封装为 JSONObject,放入响应报文中。(NormalResponse)7、 处理结束。2.1.3 程序时序图程序时序图如下所示:2.1.4 程序结构程序 UML 图如下所示:2.1.5 DB 访问I / OTable IDR I U Dsns_inner_shared Y - - -2.2快同步参考“沃云详细设计书_ 同步 .docx”的 2.2 节。2.3创建共享2.3.1 功能描述向 DB 中保存请求的共享,并返回共享 ID。2.3.2 处理过程1、 获取必要参数参
6、数名 数据类型 参数来源 说明folderid String RequestJsonObject 文件夹 IDgroupid String RequestJsonObject 消息来源permission String RequestJsonObject 权限注:permission 以数字分值方式记录权限。读权限的分值为 4,写权限的分值为2。即 R:4 W:2 RW:4+2=6权限 代码 permission只读 R 4只写 W 2读写 RW 62、 调用同步引擎 Sync4jEngine.getServerSource(sourceName)方法,获得同步源。3、 初始化同步源的设备 I
7、D,即将 2 取得的同步源的 DeviceId 设置为SapiSessionHandler.syncState.device 对象的 DeviceId。4、 创建共享a. 更新文件夹为共享状态,更新 fnbl_file_folder_object参数名 类型 数据来源 说明deviceid 更新 3 处理结果 设备 IDlast_update 更新 系统时间 更新时间status 更新 U 更新标识innershared_status 更新 Y 共享状态id 条件 参数 文件夹 IDb. 创建共享记录,插入 DB 表 sns_inner_shared:参数名 类型 数据来源 说明id 插入 D
8、BIDGenerator (idspace=f.innershared.id)userid 插入 jsession 用户 IDsource_uri 插入 jsession URIdeviceid 插入 3 处理结果 设备 IDlast_update 插入 系统时间 更新时间status 插入 N 新建标识folder_id 插入 参数 文件夹 IDgroup_id 插入 参数 好友组 IDpermission 插入 参数 权限time 插入 系统时间 创建时间5、 将 4 处理结果中的共享 id 按照接口要求封装为 JSONObject,放入响应报文中。(NormalResponse)6、 处理结束。