商品支撑子系统 CurvatureDriver详细设计
- 1. 摘要
- 2. 文档更新
- 3. 设计模型
- 4. 场景分析
- 5. 类图设计
- 6. API详情
- 6.1. 商品支持系统API详细设计
- 6.2. 服务提供商请求的URL(nurse身份登录)
- 6.3. 商品审核人员请求的URL(admin身份登录)
- 7. 项目排期
摘要
本文是商品支撑子系统的Application接口设计,包含商品管理系统、运营审核系统、商品标准化服务管理系统接口设计。
文档更新
时间 | 内容 | 维护人 |
---|---|---|
2017-3-7 | 创建文档 | 李江明 卢江 |
设计模型
数据模型
Table | Column Name | Description | Type |
---|---|---|---|
Item | id | 服务商品ID | BIGINT |
name | 服务商品名称 | VARCHAR | |
desc | 服务商品描述 | TEXT | |
detailHTML | 服务商品详细信息 | TEXT | |
price | 服务价格 | BIGINT | |
available_service_time | 可用时间 | TEXT | |
picture | 服务商品图片 | TEXT | |
state | 服务商品状态 | TINYINT | |
department_id | 提供服务科室ID | BIGINT | |
category_id | 分类ID | BIGINT | |
organization_id | 分类ID | BIGINT | |
operation_log | 操作记录 | TEXT | |
abnormal_log | 异常记录 | TEXT | |
created_at | 创建时间 | TIMESTAMP | |
updated_at | 更新时间 | TIMESTAMP | |
ServiceItem | id | 服务单元ID | BIGINT |
item_id | 服务商品ID | BIGINT | |
name | 服务单元名称 | VARCHAR | |
desc | 服务单元描述 | TEXT | |
price | 服务单元价格 | BIGINT | |
origin_price | 服务单元原始价格 | BIGINT | |
picture | 服务单元图片 | TEXT | |
standard_template_id | 标准化服务模板Id | BIGINT | |
standard_template_type | 标准化服务模板类型 | BIGINT | |
state | 是否生效 | BIGINT | |
duration | 服务耗时 | BIGINT | |
comment | 备注 | TEXT | |
created_at | 创建时间 | TIMESTAMP | |
updated_at | 更新时间 | TIMESTAMP | |
ItemProp | id | 属性ID | BIGINT |
item_id | 商品ID | BIGINT | |
prop_name | 属性名称 | VARCHAR | |
created_at | 创建时间 | TIMESTAMP | |
updated_at | 更新时间 | TIMESTAMP | |
ItemPropValue | id | 属性值ID | BIGINT |
item_prop_id | 属性ID | BIGINT | |
value | 属性值 | VARCHAR | |
created_at | 创建时间 | TIMESTAMP | |
updated_at | 更新时间 | TIMESTAMP | |
ServiceItemPropValue | id | item属性表ID | BIGINT |
service_item_id | 商品ID | BIGINT | |
item_prop_id | 属性ID | BIGINT | |
item_prop_value_id | 属性值 | BIGINT | |
created_at | 创建时间 | TIMESTAMP | |
updated_at | 更新时间 | TIMESTAMP | |
Category | id | 分类ID | BIGINT |
l1_id | 第一级分类ID | BIGINT | |
l1_name | 第一级分类名称 | VARCHAR | |
l2_id | 第二级分类ID | BIGINT | |
l2_name | 第二级分类名称 | VARCHAR | |
l3_id | 第三级分类ID | BIGINT | |
l3_name | 第三级分类名称 | VARCHAR | |
l4_id | 第四级分类ID | BIGINT | |
l4_name | 第四级分类名称 | VARCHAR | |
l5_id | 第五级分类ID | BIGINT | |
l5_name | 第五级分类名称 | VARCHAR | |
created_at | 创建时间 | TIMESTAMP | |
updated_at | 更新时间 | TIMESTAMP |
ProtoBuf数据模型
|
|
场景分析
商品管理系统
当服务提供商登录成功之后,系统显示商品列表页面,在操作列中有上线、下线、删除、配置服务信息、查看按钮。交互图如图所示:
交互流程图如下:
当用户点击删除、上线、下线按钮时,页面不发生跳转,请求成功之后,所选的Item状态发生变化。点击配置服务信息跳至配置服务信息页面。
新建商品
当服务提供商点击新建时,跳至新建商品页,操作时序图如下图所示:
运营审核系统
当运营审核登录成功后, 系统默认显示商品列表,列表为空,在选择搜索条件之后,点击搜索,获取列表,搜索条件分两种:
商品ID
运营可以输入商品ID,点击搜索,后端返回数据。
服务提供商名称和状态
商品列表默认加载时,后端返回所有能提供服务的服务提供商集合,用来填充服务提供商下拉列表,前端支持在该列表中根据服务提供商名称查询服务提供商。状态下拉列表中有审核成功,已发,待审核,异常,审核失败和全部6个状态,该下拉列表中的数据前端定死。选完服务提供商和状态之后,点击搜索,后端返回数据。注意:服务提供商下拉列表必须选中一个,(状态默认是全部)点击搜索才能进行搜索。
以上两个条件必须二选一,再加上前端传入的每页显示条数pageSize和当前页currentPage两个参数用来获取商品列表。交互图如图所示:
交互流程图如下:
进入审核
当运营人员点击进入审核时,跳至审核商品页,操作时序图如下图所示:
类图设计
商品管理和运营审核实现类有ItemBO、ServiceItemBO、ServiceConfig三个类图。
- ItemBO
- ServiceItemBO
- ServiceConfig
API详情
商品支持系统API详细设计
服务提供商请求的URL(nurse身份登录)
根据条件组合查询item列表的接口设计
GET /api/curvatureDrive/v1/nurse/items?departmentId={departmentId}&itemId={itemId}&state={state}&length={length}&start={start}&draw={draw}
接口描述
服务提供商在商品列表页,输入查询条件,获取商品列表。输入的查询条件是可选项,但是三者必须填写一个
Request
GET /api/curvatureDrive/v1/admin/items?length=5&start=1&departmentId=1&draw=12
Response
|
|
实现设计
上游传入输入的查询条件,调用下游的/api/dagon/v2/items接口,返回页面的item包含页面元素所需的信息
新增item的接口设计
POST /api/curvatureDrive/v1/nurse/item
接口描述
新建一个item,并根据item的prop和propValue创建其serviceItem
Request
|
|
Response
|
|
实现设计
上游传入item基本信息,将item信息进行拆分,调用dagon中对应的接口,保存数据。
获取单个item信息的接口设计
GET /api/warpDriver/v1/nurse/item/{itemId}
接口描述
根据itemId获取item详细信息
Request
GET /api/warpDriver/v1/nurse/item/163
Response
|
|
实现设计
上游给出itemId,调用下游的/api/dagon/v2/item/{itemId}接口,下游根据itemId从数据库中获取itemId信息。
更新item信息的接口设计
PATCH /api/curvatureDrive/v1/nurse/item/{itemId}
接口描述
根据itemId更新item信息
Request
PATCH /api/curvatureDrive/v1/nurse/item/148
|
|
Response
|
|
实现设计
上游提供itemId和需要更新的信息,下游根据itemId获取itemId,如果item存在,校验传入的数据合法性,如果合法,更新item信息。将更新后的item信息返回到上游。
获取可服务护士的接口设计
GET /api/curvatureDrive/v1/nurse/nurses/{departmentId}
接口描述
获取可提供item服务的护士列表
Request
GET /api/curvatureDrive/v1/nurse/nurses/1
Response
|
|
获取所有类目的接口设计
GET /api/curvatureDrive/v1/nurse/category
接口描述
进入添加商品页面时将category列表加载出来
Request
GET /api/curvatureDrive/v1/nurse/category
Response
|
|
实现设计
上游调用下游的获取category列表的接口,将category列表返回给上游。
获取标准化服务列表的接口设计
/api/curvatureDrive/v1/nurse/department/{departmentId}/standardized-service-templates/{categoryId}
接口描述
服务提供商获取标准化服务列表
Request
GET /api/curvatureDrive/v1/nurse/department/1/standardized-service-templates/5
Response
|
|
实现设计
根据templateType和departmentId获取一组standardServiceTemplate,取出它们的content内容,过滤,如果content内容的categoryId匹配到传入的categoryId,则返回结果
商品审核人员请求的URL(admin身份登录)
根据条件组合查询item列表的接口设计
GET /api/curvatureDrive/v1/admin/items?departmentId={departmentId}&itemId={itemId}&state={state}&length={length}&start={start}&draw={draw}
接口描述
商品审核人员在商品列表页,输入查询条件,获取商品列表。输入的查询条件是可选项,但是三者必须填写一个
Request
GET /api/curvatureDrive/v1/admin/items?length=5&start=1&departmentId=1&draw=12
Response
|
|
实现设计
上游传入输入的查询条件,调用下游的/api/dagon/v2/items接口,返回页面的item包含页面元素所需的信息
更新item信息的接口设计
PATCH /api/curvatureDrive/v1/admin/item/{itemId}
接口描述
根据itemId更新item信息
Request
PATCH /api/curvatureDrive/v1/admin/item/1
|
|
==当将item置为异常时,需要传入abnormalLog;当item审核失败时,需要传入operationLog;当只改变item状态时,只需传入itemId和执行该动作后的item状态。==
Response
|
|
实现设计
上游提供itemId和需要更新的信息,下游根据itemId获取itemId,如果item存在,校验传入的数据合法性,如果合法,更新item信息。将更新后的item信息返回到上游。
获取单个item信息的接口设计
GET /api/warpDriver/v1/admin/item/{itemId}
接口描述
根据itemId获取item详细信息
Request
GET /api/warpDriver/v1/admin/item/97
Response
|
|
实现设计
上游给出itemId,调用下游的/api/dagon/v2/item/{itemId}接口,下游根据itemId从数据库中获取itemId信息。
获取提供商品服务的服务机构接口设计
GET /api/curvatureDrive/v1/admin/item/departments
接口描述
进入商品审核的主页,加载所有提供商品服务的服务机构
Request
GET /api/curvatureDrive/v1/admin/item/departments
Response
|
|
实现设计
根据tagType=5(可提供服务的护士)查询tag表,获取到一组departmentId,在根据这组departmentId查询department表,获取到提供服务的部门
项目排期
内容 | 耗时/人日 | 开始日期 | 实现者 |
---|---|---|---|
商品管理系统页面开发 | 4 | 03.20 | 李少华 |
运营审核系统页面开发 | 4 | 03.20 | 李旭 |
后端底层系统Dagon开发 | 3 | 03.11 | 李江明 |
后端底层系统Dagon测试 | 1 | 03.11 | 李江明 |
后端底层系统Dagon开发 | 1.5 | 03.11 | 卢江 |
后端底层系统Dagon测试 | 0.5 | 03.11 | 卢江 |
后端应用系统CurvatureDriver开发 | 4 | 03.15 | 李江明 |
后端应用系统CurvatureDriver测试 | 2 | 03.15 | 李江明 |
前后端联调 | 0.5 | 03.24 | 李旭、李少华、李江明 |
develop环境测试 | 1.5 | 03.27 | 郑旭红 |
Staging环境部署CurvatureDriver、Dagon | 0.5 | 03.28 | 学文Or赵蔺 |
Staging环境测试 | 2.5 | 03.28 | 郑旭红 |
验收 | 0.5 | 04.01 | 张正宇&张跃超 |