首页 快递头条 电商体系规划之订单

电商体系规划之订单

点击上方“ 芋道源码 技术文章第一时刻送达! 源码精品专栏   精尽 Dubbo 原理与源码 69 篇 精尽 Netty 原理与源码  61 篇 中文详细注释的开源项目 Java …

点击上方“

芋道源码

技术文章第一时刻送达!

源码精品专栏

 



1. 前语


2. 付款



2.1 成功




2.2 人祸




2.4 天灾




2.4 注释




2.5 表结构





2.5.1 买卖表






2.5.2 付出记载表






2.5.3 订单表




3. 运送


4. 收货


5. 退换货



5.1 售后请求表




5.2 售后表



6. 点评



6.1 点评数据表



7. 称谢


1. 前语

用户买卖将阅历一段艰苦的进程,一般用户感觉不到,实践程序是阅历了一段生死离别。详细付款流程如下

img

不(wo)是(gu)这(yi)张(chuan)图(de),请看正派流程图

img

之前的几篇文章介绍了

  • 购物车怎么规划

  • 用户体系怎么规划

  • 产品体系怎么规划

其实他们都在为买卖体系做衬托,一个产品假如没有收入,那这只能是寺庙的公益产品。任何产品终究都要走向这步 (收钱)。

2. 付款

用户付款进程中有许多场景也会出现意外,以下是我碰到的“天灾人祸”

2.1 成功

  • 用户建议付出宝付出并成功付出

  • 用户建议银联付出并成功付出

  • 用户建议其他付出并成功付出

2.2 人祸

  • 用户建议付出宝付出但撤销付出

  • 用户建议银联付出但撤销付出

  • 用户建议其他付出但撤销付出

2.4 天灾

  • 用户建议付出宝付出“瞬间没网了”

  • 用户建议其他付出“老板进来了”

2.4 注释

遇到以上的状况,不要惧怕、不要慌张,而且不要“理睬”,你只需求将这些操作记载下来即可。 正常咱们都会将用户经过哪种付出方法存储到订单表中,便利查询。我想说这种做法没错,可是少了点什么,你应该有一张买卖记载表,来记载用户建议了多少次付出,只要付出成功的时分方可记载到订单表中。这样做的长处有以下两点

  • 订单表是比较重要的,无可奈何尽量不要操作这张表,避免出现意外,订单表除了收货发货外一般没有其他需求操作的当地。

img

2.5 表结构

2.5.1 买卖表

    CREATE TABLE `transaction` (
  `id` int(10unsigned NOT NULL AUTO_INCREMENT,
  `order_sn` varchar(255COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '买卖单号',
  `member_id` bigint(20NOT NULL COMMENT '买卖的用户ID',
  `amount` decimal(8,2NOT NULL COMMENT '买卖金额',
  `integral` int(11NOT NULL DEFAULT '0' COMMENT '运用的积分',
  `pay_state` tinyint(4NOT NULL COMMENT '付出类型 0:余额 1:微信 2:付出宝 3:xxx',
  `source` varchar(255COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '付出来历 wx app web wap',
  `status` tinyint(4NOT NULL DEFAULT '0' COMMENT '付出状况 -1:撤销 0 未完结 1已完结 -2:反常',
  `completion_time` int(11NOT NULL COMMENT '买卖完结时刻',
  `note` varchar(255COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '补白',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `transaction_order_sn_member_id_pay_state_source_status_index` (`order_sn`(191),`member_id`,`pay_state`,`source`(191),`status`)
ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

2.5.2 付出记载表

    CREATE TABLE `transaction_record` (
  `id` int(10unsigned NOT NULL AUTO_INCREMENT,
  `order_sn` varchar(255COLLATE utf8mb4_unicode_ci NOT NULL,
  `events` text COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '事情概况',
  `result` text COLLATE utf8mb4_unicode_ci COMMENT '成果概况',
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

这个记载表可能让你匪夷所思,不知你对日志有什么概念,但我能说的便是,将用户的一切动作悉数记载下来。这是很重要的,迟早你会懂。

2.5.3 订单表

    CREATE TABLE `order` (
  `id` int(10unsigned NOT NULL AUTO_INCREMENT,
  `order_no` varchar(100COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '订单编号',
  `order_sn` varchar(100COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '买卖号',
  `member_id` int(11NOT NULL COMMENT '客户编号',
  `supplier_id` int(11NOT NULL COMMENT '商户编码',
  `supplier_name` varchar(255COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '商户称号',
  `order_status` tinyint(4NOT NULL DEFAULT '0' COMMENT '订单状况 0未付款,1已付款,2已发货,3已签收,-1退货请求,-2退货中,-3已退货,-4撤销买卖',
  `after_status` tinyint(4NOT NULL DEFAULT '0' COMMENT '用户售后状况 0 未建议售后 1 请求售后 -1 售后已撤销 2 处理中 200 处理完毕',
  `product_count` int(11NOT NULL DEFAULT '0' COMMENT '产品数量',
  `product_amount_total` decimal(12,4NOT NULL COMMENT '产品总价',
  `order_amount_total` decimal(12,4NOT NULL DEFAULT '0.0000' COMMENT '实践付款金额',
  `logistics_fee` decimal(12,4NOT NULL COMMENT '运费金额',
  `address_id` int(11NOT NULL COMMENT ,
  `pay_channel` tinyint(4NOT NULL DEFAULT '0' COMMENT '付出途径 0余额 1微信 2付出宝',
  `out_trade_no` varchar(255COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '订单付出单号',
  `escrow_trade_no` varchar

本文来自网络,不代表快递资讯网立场。转载请注明出处: http://www.llaiot.com/express-headline/1892.html
上一篇
下一篇

为您推荐