1. 用例角色分析
## 用例分析
#### 项目名称 鑫美风商城
> 单商户的电商系统。
### 1. 角色
在我们的 商城项目 里,将会出现以下角色:
* 游客 —— 没有登录的用户;
* 用户 —— 注册用户, 可以购买商品;
* 运营 —— 可以上架、下架商品,处理订单;
* 管理员 —— 权限最高的用户角色,可以管理运营。
### 2. 信息结构
主要信息有:
* 用户 —— 模型名称 User;
* 收货地址 —— 模型名称 UserAddress,包含地址和收货人姓名、电话;
* 商品 —— 模型名称 Product,比如 iPhone X 就是一个商品;
* 商品 SKU —— 模型名称 ProductSKU,同一商品下有个别属性可能有不同的值,比如 iPhone X 256G 和 iPhone X 64G 就是同一个商品的不同 SKU,每个 SKU 都有各自独立的库存;
* 收藏夹 —— 模型名称 UserFavoriteProduct;
* 购物车 —— 模型名称 Cart;
* 订单 —— 模型名称 Order;
* 订单项 —— 模型名称 OrderItem,一个订单会包含一个或多个订单项,每个订单项都会与一个商品 SKU 关联;
* 优惠券 —— 模型名称 CouponCode,订单可以使用优惠券来扣减最终需要支付的金额;
* 运营人员 —— 模型名称 Operator,管理员也属于运营人员。
### 3. 动作
角色和信息之间的互动称之为『动作』,动作主要有以下几个:
* 创建 Create
* 查看 Read
* 编辑 Update
* 删除 Delete
## 用例
### 1.游客
* 游客可以查看商品列表;
* 游客可以查看单个商品内容。
### 2. 用户
* 用户可以查看自己的收货地址列表;
* 用户可以新增收货地址;
* 用户可以修改自己的收货地址;
* 用户可以删除自己的收货地址;
* 用户可以收藏商品;
* 用户可以将商品加入购物车;
* 用户可以将购物车中的商品打包下单;
* 用户可以在下单时使用优惠券;
* 用户可以通过微信、支付宝支付订单;
* 用户可以查看自己的订单信息;
* 用户可以对已支付的订单申请退款;
* 用户可以将已发货的订单标记为确认收货;
* 用户可以对已购买的商品发布评价。
### 3. 运营
* 运营可以看到所有的用户列表;
* 运营可以发布商品;
* 运营可以编辑商品内容;
* 运营可以编辑商品 SKU 及其库存;
* 运营可以下架商品;
* 运营可以将用户已支付的订单标记为已发货;
* 运营可以对申请退款的订单执行退款;
* 运营可以创建、编辑 优惠券。
### 4. 管理员
* 管理员可以查看运营人员列表;
* 管理员可以新增运营人员;
* 管理员可以编辑运营人员;
* 管理员可以删除运营人员。