阅读只需要一分钟,转载请注明出处.
(未完成. v0.1.0)
api.qrder.dotnet.sdao
=============
订单微服务 接口设计说明
-
文档介绍###
订单:是一个用户产生购买商品行为的快照/定格
侧重看 用户 购买 商品 行为 快照
-
设计思路概要描述###
先用用户主体入手,一个订单一般默认会有一个下单的用户,第一种是匿名用户,第二种是注册用户。匿名代表输入手机号就可以购买。这里设计的时候应该有一个用户Id.
这里有另外的主体,用户购买商品,商品在订单里面通常是一个合集。它有产品的Id,名称,价格,数量,shopId(哪个商店购买的),店
名。购买商品这个行为除了本身,怎么才能产生商品的购买行为呢?写自己的配送信息,一个支付行为,还有一个物流。另外还有一个促销行为(满500-10等等)。
关注 快照 。一旦这个订单发生了,它的所有信息都必须被记录,而不是只保持一个关系,比如说某一款商品,我们拿到它的价格和它的名称这些,那一旦产生订单后,在商城里的商品是可变的,它一会调价,一会修改名称,订单一旦产生后就是不变的。
Order都是一个行为的快照,这个快照有另外的概念,用的什么支付,用的什么物流,用的什么促销都是不变的。但是有几个:是不是支付完成(不确定),物流状态不确定,等等这些都是由状态可修改的。促销和商品都不能改,除非从新下单。
订单具备状态:
划分状态,最好是划分为互斥的,原子化的东西,互不相关的东西。
下单:是否
是:存在数据库中,默认下单状态就是:是。不允许再修改商品,价格等等的信息了。
否:存为草稿状态(是否存在数据库中.前期存草稿不放到数据库中,但是保留这个能力。)
支付:是否支付(一旦确认完成,支付完成,下单状态才修改未是)
物流:发货(是否) 收货(是否)。(不用关注第三方物流的状态)
评论
退货:
发起退货(是否)
接受退货(是否)
退货已发送(是否)
退货已收(是否)
发票:是否已开发票(是否)
其他待定...
进过设计,一下是它的数据库,但是总觉得有很大的瑕疵,但也说不上来,我项目是用的EF Core code firrst写的。以下待修改。
数据库表:Order ,一开始做的时候我只需要先着重写 ”快照这个“
{
id:自增Id
in_trade_no:平台内部订单号
ProductItems: 下单商品合集(订单(一) 对 产品(多))
//以下是收货信息
ReceiveUserName:收货人名称
ReceiveUserAddressId:收货人地址编号
ReceiveUserAddressName:收货人地址名称
receiveUserPhone:收货人手机号
receiveZipCode:收货邮政编码
totalFee:订单总额
comments:补充留言
//支付信息(未确定)
paymentMethodId:支付方式
//促销信息(未确定)
//订单具备状态
orderStatus:下单状态(草稿,下单)
payStatus:支付状态(已支付,未支付)
logisticsStatus:物流状态(发货:未发货,已发货; 收货:未收货,已收货)
salesReturnStatus:退货状态:(退货寄送:已寄送,未寄送.退货收取:已收取,未收取)
invoiceStatus:发票状态:已开发票,未开发票
order_Time_Expired:订单预支付失效时间要大于五分钟,目前商家服务器端未设置(需要在预支付请求中设置。)
isdelete:是否删除:1删除,0未删除
createuserid:创建用户编号(谁下的订单)
createtime: 创建时间(下单时间)
updateuserid:更新用户编号
updatetime:更新时间
}
--商品合集:ProductItem
商品合集:ProductItem
{
id:自增Id
orderId:属于哪个订单
packageName:包裹名称(可以为空)每款商品可能发不同的包裹
productName:产品名称
shopId:商店编号
shopName:商店名称
price:价格
quantity:产品购买数量
properties:产品属性:食品口味:混合口味 剩余保质期:6个月以上
service:服务:7天内质量问题可退款
discounts:优惠信息:促销价:省 4.90 元
isdelete:是否删除:1删除,0未删除
createuserid:创建用户编号
createtime: 创建时间
updateuserid:更新用户编号
updatetime:更新时间
}
--支付方式:PaymentMethod
支付方式:PaymentMethod
{
id:自增编号
name:名称
displayName:显示的名称
isdelete:是否删除:1删除,0未删除
createuserid:创建用户编号
createtime: 创建时间
updateuserid:更新用户编号
updatetime:更新时间
}