提要:
ugrow相关工作总结, 包含相关的开源组件。
正文:
技术方案部分:
casbin 可支持模型的RBAC的鉴权组件有多个语言实现, 后端基于db的策略装载器实现不统一,部分API有些小问题(角色权限被清空等)仔细使用
jakesgordon / javascript-state-machine js状态机用于复杂订单售后单流转处理
airbytehq / airbyte 社区比较全面的ELT pipeline工具 用于大型数据统计填充工作
apache / superset 类似于达芬奇的数据挖掘工具 给运营展示数据面板
dtm-labs / dtm 基于golang的分布式事务处理方案
pnpm / pnpm 本地npm管理复用
shopizer-ecommerce / shopizer 比较好的java开源商城项目参考
drone 基于go的持续集成服务 相对于jenkins占用资源极低
docker swarm 私有化部署
docker-register 私有仓库构建 可挂载oss
业务部分:
* ums 用户中心 (User Management System)
* pms 支付服务 (Payment Management Service)
* oms 订单中心 (Order Management System)
* mpms 会员积分 (Member Point Management System)
* gms 商品中心 (Goods Management System)
* mms 营销中心 (Marking Management System)
* admin 后台管理服务 – 管理API聚合层
* sto 店铺导购管理
* tpms 第三方服务(Third-Party Management System)
## 订单状态
1. 待付款(NOT_PAID)
2. 待发货(PENDING_SHIPMENT)
3. 待收货(PENDING_RECEIVING)
4. 交易成功(COMPLETED)
5. 已取消(CANCELED)
6. 交易关闭(CLOSED)
7. 父订单无效(INVALID)
## 状态流转
“`mermaid
stateDiagram-v2
direction LR
[*] –> 待付款
待付款 –> 已取消
待付款 –> 待发货: 支付
待发货 –> 已取消
state 待发货 {
[*] –> 无效订单: 拆单
}
待发货 –> 待收货
待收货 –> 交易成功
交易成功 –> 交易关闭: 发起售后(全额退款)
待收货 –> 交易关闭: 发起售后(全额退款)
已取消 –> [*]
交易成功 –> [*]
交易关闭 –> [*]
“`
## 售后单状态
1. 退款申请待处理(PENDING)
2. 拒绝退款申请待买家处理(REFUSE)
3. 同意退款申请待买家退货(APPROVE)
4. 买家已退货待确认收货(SHIPMENT)
5. 拒绝收货待买家处理(REJECT_SHIPMENT)
6. 退款处理中(REFUND_PENDING)
7. 退款成功(REFUND_SUCCESS)
8. 售后关闭(CLOSE)
## 售后单状态流转(退货退款)
“`mermaid
stateDiagram-v2
direction LR
[*] –> 退款申请待处理
退款申请待处理 –> 售后关闭: 用户主动取消
退款申请待处理 –> 拒绝退款: 商家审核
拒绝退款 –> 售后关闭: 买家取消或重新发起
退款申请待处理 –> 同意退款: 商家审核
同意退款 –> 买家已退货待确认收货: 买家填写退货信息
买家已退货待确认收货 –> 拒绝收货待买家处理: 卖家拒绝收货
拒绝收货待买家处理 –> 售后关闭
买家已退货待确认收货 –> 退款处理中: 卖家同意退款
退款处理中 –> 退款成功
退款成功 –> [*]
售后关闭 –> [*]
“`
## 流程参考
## 订单创建流程
## 结算流程
### 结算规则
1. 一口价结算
2. 卡券
3. 积分
4. 兑换卡
### order 订单表字段
| 名称 | 字段 | 描述 |
|———-|————————-|—————————————–|
| appId | appId | appId |
| 用户Id | userId | – |
| 订单号 | orderNo | 订单号唯一 |
| 订单状态描述符 | orderStatusCode | 默认 user_created |
| 支付状态 | payStatus | 0 未支付 1已支付 |
| 支付方式 | payCode | 支付方式 默认为 null |
| 商品总价 | goodsAmount | 商品总价 = 商品数量*商品标价 |
| 应付金额 | payableAmount | – |
| 实收金额 | receivableAmount | – |
| 实收积分 | payablePoint | 积分支付字段 |
| 订单实际销售金额 | orderAmount | 订单实际销售金额(优惠后) 不包含运费 |
| 订单总优惠金额 | orderDiscountAmount | 订单总优惠金额 = 活动扣减+积分扣减+卡券扣减+礼品卡-改价金额 |
| 订单类型 | orderType | 默认 0 正常订单 1 预售订单(未实现) |
| 货品重量 | weight | 重量 |
| 支付时间 | payTime | 不能存在为null |
| 确认收货时间 | confirmTime | 不能存在为null |
| 预计发货时间 | guaranteeDeliverTime | ??? |
| 订单过期时间 | expirationTime | 订单支付有效期 |
| 发货时间 | deliverTime | – |
| 订单完成时间 | completeTime | – |
| 买家订单备注 | memo | – |
| 卖家备注 | remark | – |
| 下单ip | clientIp | – |
| 订单来源 | source | – |
| 父订单 | parentNo | 预售单用 |
| 活动参数列表 | promotionList | 只是创建订单时使用的参数,未验证 |
| 卡券参数列表 | couponList | 使用卡券列表已经认证 |
| 元数据 | metadata | – |
| 导购Id | guideId | – |
| 商店Code | storeCode | – |
| 发货商店Code | shipStoreCode | – |
| 发货导购Id | shipGuideId | – |
| 物流类型 | logisticsType | 无需物流 0,快递 1,自提 2 |
| 物流Id | logisticsId | – |
| 运费 | costFreight | – |
| 活动扣减金额 | promotionDiscountAmount | – |
| 卡券扣减金额 | couponDiscountAmount | – |
| 礼品卡抵扣考呢 | giftCardDiscountAmount | – |
| 积分抵扣金额 | pointExchangeMoney | – |
| 订单改价金额 | changeAmount | – |
| 运费改价金额 | changeCostFreight | – |
| 售后状态 | serveStatus | 售后进行中 serving,当前无售后 noserving,全退款 close |
| 取消订单原因 | cancelMemo | – |
| 是否发货 | isShipped | – |
| 使用积分数 | point | – |
| 订单模式参数 | orderModeConfig | 默认为null |
| 订单创建时间 | createTime | – |
| 订单展示时间 | displayTime | – |
| 平台Id | platformId | 默认”” |
| 业务code | bizCode | 默认 default, 抽签 drawLots, 礼品卡 giftCard |
### order_item 订单商品表
| 名称 | 字段 | 描述 |
|———|————————-|———————————————————————————————————————————————————————-|
| 主键 | id | |
| appId | appId | |
| 商品信息 | goodsInfo | goods sku 镜像参数 |
| 订单号 | orderNo | |
| 支付分摊金额 | payableAmount | 分摊后的支付金额 |
| 购买数量 | count | |
| 卡券扣减金额 | couponDiscountAmount | |
| 积分扣减金额 | pointDiscountAmount | |
| 改价金额 | changeAmount | |
| 商品标价 | mktPrice | |
| 商品总价 | totalPrice | |
| 总扣减价格 | totalDiscountAmount | totalDiscountAmount = pointDiscountAmount + couponDiscountAmount+promotionDiscountAmount+ giftCardDiscountAmount-changeAmount;<br />优惠总金额 = 活动扣减+积分扣减+卡券扣减+礼品卡-改价金额 |
| 规格Id | skuId | |
| 商品Id | goodsId | |
| 活动扣减金额 | promotionDiscountAmount | |
| 礼品卡扣减金额 | giftCardDiscountAmount |