[关闭]
@jiangyifen 2018-02-02T02:29:36.000000Z 字数 13441 阅读 287

【货架-财务】对账系统设计1.2

C端 设计


一、问题描述

对什么

image.png-43.3kB

image.png-56.7kB

怎么对

什么时候对

一期考虑:job1每晚拉取数据;job2晚间运行聚合数据
二期考虑:mq实时拉取数据;每小时调用job2聚合前一小时数据

时间段

时间以pay_complete_time为准(目前支付中心的pay_complete_time并不是支付渠道返回的值,而是本地服务器收到消息的时间,这样会导致细微误差,产生跨天问题。之后会改。不影响order和支付中心对账。目前order的pay_complete_time取的就是支付中心给的值,严格一致。)

区间【左闭右开】
例如

  1. 按天:
  2. [2017-12-18 00:00:00, 2017-12-19 00:00:00)
  3. 按小时:
  4. [2017-12-18 00:00:00, 2017-12-18 01:00:00)
  5. [2017-12-18 01:00:00, 2017-12-18 02:00:00)
  6. [2017-12-18 02:00:00, 2017-12-18 03:00:00)

如何获取数据

直接读库
通过接口获取(调查,是否有相应接口支持;主要是订单中心相关api和order相关api)

二、UI效果

https://pro.modao.cc/app/nLZRVLaJohO1qs2tfDk5EDNyWFDFKls#screen=s8B6BA9DCF41514146682891

  1. 按【时间段】+【城市】+【支付渠道】维度,统计
    1) 货架业务线【支付成功订单的总收入】 VS 支付中心【支付成功订单的总收入】
    2) 货架业务线【支付成功的订单总数】 VS 支付中心【支付成功的订单总数】
    3) 造成以上差异的流水明细:
    • 货架有但支付中心无的支付成功的订单明细
    • 支付中心有但货架无的支付成功的订单明细
    • 货架和支付中心都有,但具体值不一样的订单明细
  2. 按【时间段】+【城市】+【货架】维度,统计
    1) 【支付成功的订单总数】、【支付成功的订单原价总金额】、【平台优惠总金额】、【企业优惠总金额】、【平台补贴总金额】、【企业补贴总金额】
  3. 按【时间段】+【城市】+【SKU】维度,统计
    1) 【SKU销售量】、【SKU原价销售总金额】、【平台优惠总金额】、【平台补贴总金额】

三,价格模型

https://www.zybuluo.com/jiangyifen/note/996012

四、表结构

流水-order

  1. -- --------------------------------
  2. -- 流水-order
  3. -- --------------------------------
  4. CREATE TABLE `reconciliation_order` (
  5. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
  6. -- 订单关联字段 --
  7. `order_id` bigint(20) COMMENT 'orderItem所对的order的id',
  8. -- 支付中心关联字段 --
  9. `pay_center_order_id` bigint(20) COMMENT '支付中心订单id',
  10. `pay_complete_time` datetime COMMENT '支付完成时间',
  11. `pay_status` int(11) COMMENT '支付状态:0:待支付;32:支付中;64:支付成功;96:支付失败(高4位主状态,低5位子状态)',
  12. `total_pay_money` decimal(10,2) COMMENT '支付总金额',
  13. `third_part_money` decimal(10,2) COMMENT '第三方支付金额',
  14. `refund_status` int(11) COMMENT '退款状态,0:初始态;32:退款中;64:退款成功-全部;65:退款成功-部分(高4位主状态,低5位子状态)',
  15. `refund_frozen_amount` decimal(11,2) DEFAULT '0.00',
  16. `refund_amount` decimal(11,2) DEFAULT '0.00',
  17. -- 标记位 --
  18. `flag` int(11) NOT NULL COMMENT '0,正常;1,支付中心缺;2,业务系统缺;3,不一致',
  19. -- 支付渠道 维度相关信息 --
  20. `pay_channel` int(11) COMMENT '订单渠道, 1 微信支付 2 支付宝支付 3 猩便利-余额支付 100 线下支付 110 线下扫码支付 200 方糖小镇',
  21. -- 货架 维度相关信息 --
  22. `seller_id` bigint(20) COMMENT 'order所对应seller(售卖机/零售店)的id',
  23. `seller_type` int(11) COMMENT 'seller类型 0:自动售货机 1:零售店 2:开放式货架',
  24. `seller_code` bigint(20) COMMENT 'seller的code',
  25. `seller_name` bigint(20) COMMENT 'seller的名称',
  26. `seller_company_id` bigint(20) COMMENT 'seller所属公司id(这里需要明确,是customer还是company)',
  27. `seller_company_name` varchar(32) COMMENT 'seller所属公司名称',
  28. -- 城市 维度相关信息 --
  29. `city_id` bigint(20) COMMENT 'seller所在城市ID',
  30. `city_name` varchar(50) COMMENT 'seller所在城市名称',
  31. -- order原价、优惠价 --
  32. `gmv_price` decimal(10,2) COMMENT '【Order GMV售价】',
  33. `contract_price_company` decimal(10,2) COMMENT '【Order合同售价(企业)】',
  34. `contract_price_platform` decimal(10,2) COMMENT '【Order合同售价(平台)】',
  35. `origin_price` decimal(10,2) COMMENT '【order原价】= Σ【orderItem原价】',
  36. `sale_price` decimal(10,2) COMMENT '【order优惠价】= Σ【orderItem优惠价】',
  37. `platform_allowance_price` decimal(10,2) COMMENT '【order平台补贴价】=【order优惠价】-【平台补贴】',
  38. `company_allowance_price` decimal(10,2) COMMENT '【order企业补贴价】=【order平台补贴价】-【企业补贴】',
  39. `actual_pay_price` decimal(10,2) COMMENT '【order实付价】=【order企业补贴价】-【支付渠道补贴】',
  40. -- 平台、企业、支付渠道的order补贴 --
  41. `platform_allowance_type` int(11) COMMENT '平台补贴类型:平台券等',
  42. `platform_allowance_amount` decimal(10,2) COMMENT '【平台补贴】金额',
  43. `company_allowance_type` int(11) COMMENT '企业补贴类型:企业券等',
  44. `company_allowance_amount` decimal(10,2) COMMENT '【企业补贴】金额',
  45. `channel_allowance_type` int(11) COMMENT '支付渠道补贴类型:支付宝红包之类',
  46. `channel_allowance_amount` decimal(10,2) COMMENT '【支付渠道补贴】金额',
  47. -- 索引 --
  48. PRIMARY KEY (`id`),
  49. KEY `order_id` (`order_id`),
  50. KEY `pay_center_order_id` (`pay_center_order_id`),
  51. KEY `pay_complete_time` (`pay_complete_time`),
  52. KEY `city_id` (`city_id`),
  53. KEY `seller_company_id` (`seller_company_id`),
  54. KEY `seller_code` (`seller_code`),
  55. KEY `flag` (`flag`)
  56. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流水-order';

流水-orderItem

  1. -- --------------------------------
  2. -- 流水-orderItem
  3. -- --------------------------------
  4. CREATE TABLE `reconciliation_order_item` (
  5. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
  6. -- 订单关联字段 --
  7. `order_id` bigint(20) COMMENT 'orderItem所对的order的id',
  8. -- sku 维度相关信息 --
  9. `order_item_id` bigint(20) COMMENT 'orderItem的id',
  10. `quantity` int(11) NOT NULL COMMENT '数量',
  11. `sku_id` bigint(20) COMMENT 'orderItem所对应sku的id',
  12. `sku_code` varchar(16) COMMENT 'orderItem所对应sku的id',
  13. `spu_id` bigint(20) COMMENT 'sku所对应spu的id',
  14. `spu_code` varchar(16) COMMENT 'sku所对应spu的code',
  15. `div_id` bigint(20) COMMENT 'spu的一级分类id',
  16. `div_name` varchar(16) COMMENT 'spu的一级分类名',
  17. -- orderItem原价、优惠价 --
  18. `spu_price` decimal(10,2) COMMENT '【spu主档价格】',
  19. `sku_price` decimal(10,2) COMMENT '【sku主档价格】',
  20. `supplier_price` decimal(10,2) COMMENT '【supplier主档价格】',
  21. `suggested_price` decimal(10,2) COMMENT '【建议售价】',
  22. `retail_price` decimal(10,2) COMMENT '【零售价】',
  23. `contract_company_price` decimal(10,2) COMMENT '【合同售价(企业)】',
  24. `contract_platform_price` decimal(10,2) COMMENT '【合同售价(平台)】',
  25. `platform_discount_price` decimal(10,2) COMMENT '【平台优惠价】',
  26. `company_discount_price` decimal(10,2) COMMENT '【企业优惠价】',
  27. `company_markup_price` decimal(10,2) COMMENT '【企业加价后价格】',
  28. `sale_price` decimal(10,2) COMMENT '【优惠价】',
  29. -- 协议加价 --
  30. `protocol_markup_amount` decimal(10,2) COMMENT '【协议加价】',
  31. -- 合同优惠 --
  32. `contract_markdown_company_amount` decimal(10,2) COMMENT '【合同优惠(企业)】',
  33. `contract_markdown_platform_amount` decimal(10,2) COMMENT '【合同优惠(平台)】',
  34. -- 平台、企业的orderItem优惠--
  35. -- 用于计算优惠 --
  36. `platform_discount_type` int(11) COMMENT '平台优惠类型:特价,n件x折,折扣,等',
  37. `platform_discount_amount` decimal(10,2) COMMENT '【平台优惠】=【合同售价(平台)】-【平台优惠价】',
  38. `company_discount_type` int(11) COMMENT '企业优惠类型:福利价等',
  39. `company_discount_amount` decimal(10,2) COMMENT '【企业优惠】=【合同售价(平台)】-【企业优惠价】',
  40. `company_markup_type` int(11) COMMENT '平台加价类型:加盟,等',
  41. `company_markup_amount` decimal(10,2) COMMENT '【企业加价】=【合同售价(平台)】-【优惠价】',
  42. `pay_channel_discount_amount` decimal(10,2) COMMENT '【支付渠道优惠】',
  43. -- 平台、企业的order补贴 --
  44. -- 将订单补贴按商品【orderItem原价/优惠价?】/【order原价/优惠价】按权重拆过之后的值 --
  45. -- 用于计算补贴 --
  46. `platform_allowance_type` int(11) COMMENT '平台优惠类型:平台优惠券等',
  47. `platform_allowance_amount` decimal(10,2) COMMENT '按商品价格权重拆过之后的值',
  48. `company_allowance_type` int(11) COMMENT '企业优惠类型:企业优惠券等',
  49. `company_allowance_amount` decimal(10,2) COMMENT '按商品价格权重拆过之后的值',
  50. -- 索引 --
  51. PRIMARY KEY (`id`),
  52. KEY `order_id` (`order_id`),
  53. KEY `sku_id` (`sku_id`),
  54. KEY `sku_code` (`sku_code`),
  55. KEY `div_id` (`div_id`)
  56. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='流水-orderItem';

聚合表-支付渠道

  1. -- --------------------------------
  2. -- 聚合表-支付渠道
  3. -- --------------------------------
  4. CREATE TABLE `reconciliation_report_pay_channel` (
  5. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
  6. `pay_complete_time` datetime NOT NULL COMMENT '支付完成时间',
  7. -- 维度 --
  8. `pay_channel` int(11) NOT NULL COMMENT '订单渠道, 1 微信支付 2 支付宝支付 3 猩便利-余额支付 100 线下支付 110 线下扫码支付 200 方糖小镇',
  9. -- 指标 --
  10. `order_count_from_order` decimal(10,2) NOT NULL COMMENT '订单数量-order系统数据',
  11. `order_count_from_paycenter` decimal(10,2) NOT NULL COMMENT '订单数量-支付中心数据',
  12. `actual_pay_amount_from_order` decimal(10,2) NOT NULL COMMENT '支付渠道进账-order系统数据',
  13. `actual_pay_amount_sum_from_paycenter` decimal(10,2) NOT NULL COMMENT '支付渠道进账-支付中心数据',
  14. `refund_amount_amount_from_order` decimal(10,2) NOT NULL COMMENT '支付渠道退款-order系统数据',
  15. `refund_amount_amount_sum_from_paycenter` decimal(10,2) NOT NULL COMMENT '支付渠道退款-支付中心数据',
  16. PRIMARY KEY (`id`),
  17. KEY `pay_complete_time` (`pay_complete_time`),
  18. KEY `pay_channel` (`pay_channel`)
  19. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='聚合表-支付渠道';

聚合表-货架

  1. -- --------------------------------
  2. -- 聚合表-货架
  3. -- --------------------------------
  4. CREATE TABLE `reconciliation_report_seller` (
  5. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
  6. `pay_complete_time` datetime NOT NULL COMMENT '支付完成时间',
  7. `city_id` bigint(20) NOT NULL COMMENT 'seller所在城市ID',
  8. `city_name` varchar(50) NOT NULL COMMENT 'seller所在城市名称',
  9. `seller_id` bigint(20) NOT NULL COMMENT 'order所对应seller(售卖机/零售店)的id',
  10. `seller_type` int(11) NOT NULL COMMENT 'seller类型 0:自动售货机 1:零售店 2:开放式货架',
  11. `seller_code` bigint(20) NOT NULL COMMENT 'seller的code',
  12. `seller_name` bigint(20) NOT NULL COMMENT 'seller的名称',
  13. `seller_company_id` bigint(20) NOT NULL COMMENT 'seller所属公司id',
  14. `seller_company_name` varchar(32) NOT NULL COMMENT 'seller所属公司名称',
  15. `order_count` decimal(10,2) NOT NULL COMMENT '订单数量',
  16. `origin_price_sum` decimal(10,2) NOT NULL COMMENT '【order原价】总和',
  17. `sale_price_sum` decimal(10,2) NOT NULL COMMENT '【order优惠价】总和',
  18. `platform_allowance_price_sum` decimal(10,2) NOT NULL COMMENT '【order平台补贴价】总和',
  19. `company_allowance_price_sum` decimal(10,2) NOT NULL COMMENT '【order企业补贴价】总和',
  20. `actual_pay_price_sum` decimal(10,2) NOT NULL COMMENT '【order实付价】总和',
  21. `platform_allowance_amount_sum` decimal(10,2) COMMENT '【平台补贴】总和=【order优惠价】总和-【order平台补贴价】总和',
  22. `company_allowance_amount_sum` decimal(10,2) COMMENT '【企业补贴】总和=【order平台补贴价】总和-【order企业补贴价】总和',
  23. `channel_allowance_amount_sum` decimal(10,2) COMMENT '【支付渠道补贴】总和=【order企业补贴价】总和-【order实付价】总和',
  24. PRIMARY KEY (`id`),
  25. KEY `pay_complete_time` (`pay_complete_time`),
  26. KEY `city_id` (`city_id`),
  27. KEY `city_name` (`city_name`),
  28. KEY `seller_company_id` (`seller_company_id`),
  29. KEY `seller_company_name` (`seller_company_name`),
  30. KEY `seller_code` (`seller_code`),
  31. KEY `seller_name` (`seller_name`)
  32. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='聚合表-货架';

聚合表-SKU

  1. -- --------------------------------
  2. -- 聚合表-SKU
  3. -- --------------------------------
  4. CREATE TABLE `reconciliation_report_sku` (
  5. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
  6. `pay_complete_time` datetime NOT NULL COMMENT '支付完成时间',
  7. `city_id` bigint(20) NOT NULL COMMENT 'seller所在城市ID',
  8. `city_name` varchar(50) NOT NULL COMMENT 'seller所在城市名称',
  9. `sku_id` bigint(20) NOT NULL COMMENT 'orderItem所对应sku的id',
  10. `sku_code` varchar(16) DEFAULT '' COMMENT 'orderItem所对应sku的id',
  11. `spu_id` bigint(20) NOT NULL COMMENT 'sku所对应spu的id',
  12. `spu_code` varchar(16) DEFAULT '' COMMENT 'sku所对应spu的code',
  13. `div_id` bigint(20) NOT NULL COMMENT 'spu的一级分类id',
  14. `div_name` varchar(16) NOT NULL COMMENT 'spu的一级分类名',
  15. `sale_count` decimal(10,2) NOT NULL COMMENT '该行sku的销量',
  16. `origin_price_sum` decimal(10,2) NOT NULL COMMENT '【orderItem原价】总和',
  17. `platform_sale_price_sum` decimal(10,2) NOT NULL COMMENT '【orderItem平台优惠价】总和',
  18. `company_sale_price_sum` decimal(10,2) NOT NULL COMMENT '【orderItem企业优惠价】总和',
  19. -- BD减价总和 --
  20. `bd_reduce_amount_sum` int(11) COMMENT '【bd减价】金额总和',
  21. -- 企业加价总和 --
  22. `company_markup_amount_sum` int(11) COMMENT '【企业加价】金额总和',
  23. -- 平台、企业的orderItem优惠总和--
  24. `platform_discount_amount_sum` decimal(10,2) COMMENT '【平台优惠】总和',
  25. `company_discount_amount_sum` decimal(10,2) COMMENT '【企业优惠】总和',
  26. -- 平台、企业的order补贴总和 --
  27. -- 将订单补贴按商品【orderItem原价/优惠价?】/【order原价/优惠价】按权重拆过之后的值 --
  28. `platform_allowance_amount_sum` decimal(10,2) COMMENT '【平台补贴】总和',
  29. `company_allowance_amount_sum` decimal(10,2) COMMENT '【企业补贴】总和',
  30. PRIMARY KEY (`id`),
  31. KEY `pay_complete_time` (`pay_complete_time`),
  32. KEY `sku_id` (`sku_id`),
  33. KEY `sku_code` (`sku_code`),
  34. KEY `city_id` (`city_id`),
  35. KEY `city_name` (`city_name`)
  36. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='聚合表-SKU';

五、代码大致流程

job批处理(一期,内容待更新)

第一阶段:原始数据准备

数据获取方式:
通过接口,到各相关系统获取相关数据,不直接读库

依赖的接口:
支付中心:按照pay complete time分页查询【暂无】(性能问题!!!)(考虑接口返回失败)
订单:按照pay complete time分页查询【暂无】【独立项目,读从库】
城市、公司、sku等按照id查询的接口【考虑缓存数据量】

BO:
【批次】:DataBatchBO,一个时间段内的所有原始数据

job入口:
1)用quartz调度触发入口函数。入口函数检查【job自动运行】开关,决定是否要直接return
2)入口函数根据本机时间,确定要run哪一个周期的数据,一般是前一个周期,周期长度为1天。T用一个【开始时间】和一个【结束时间】表示
3)确定【批次数据量】t(如:10分钟的数据)。注意,T一般是t的整数倍
4)调用service.genData,开始处理

api和web入口:
停止和恢复job
重新生成某段时间的数据

service.genData(Data startTime, Date endTime, Integer seconds):
1)将数据分成【T/t】个【时段】
2)设置计数器,值=【T/t】。此计数器表示“待处理的批次个数”,之后用于触发第二阶段操作。
3)new 出 DataBatchBO,放入【空批次队列】

全局队列:
【空批次队列】:由【节奏控制者】放入的空【批次】
【满批次队列】:加载了数据的【批次】

全局线程池:
【数据拉取线程池】:
从【空批次队列】中取出空【批次】,加载数据,塞入该批次,然后将塞入数据后的满【批次】放入【满批次队列】。此线程池的网络io较多
【数据处理线程池】:
从【满批次队列】取出数据,先清除对应时段的数据,然后计算(比较双方数据缺失、计算各值),将结果保存回该批次,并写入数据库。
写完数据库后,本【批次】处理任务结束,计数器减少1。若计数器=0,触发第二阶段
入库后可能还需要执行相关的update操作,用于更新相关字段。此线程的cpu和磁盘io较多

缓存:
对于【城市】【sku】【公司】等,查一遍,缓存到本地。注意数据量,应该不大。只要不oom就行。

第二阶段:report表生成

何时触发?
由【数据处理线程池】中的某个“检测到计数器=0”的线程触发

注意:
ls_order_order.pay_complete_time 字段目前并无索引,需要索引

流化处理(二期,内容待更新)

步骤简述

1)业务系统在出order后,发消息到mq集群
mq消息只被消费1次(在阿里云的rocketmq中,叫做“集群消费”)
https://help.aliyun.com/document_detail/43163.html?spm=5176.doc43523.6.573.5hW52w

2)consumer做成集群,实时处理“每一条”消息(订单支付成功消息)
处理流程为:拿到orderId,调用各rpc接口,获取数据,更新统计信息

消息生产者(业务系统)需要保证:

  1. 异步发消息(本系统或mq的故障,不影响主业务)
  2. 不能丢消息(需要本地消息表的支持)
    即“在原有业务完成后,尝试发送消息。对于未发送成功的消息(与mq集群断网,或mq集群全部宕机……),便保存到本地消息表,等待重发。需要确保消息一定会被发出去”。

由独立线程负责处理“本地消息表”中消息的重发任务:从数据库加载一批需要重发的消息,轮询每一条,begin【删除该消息,发送】commit(发送失败回滚,sleep一下)
这里的考虑:单条处理,而不是批量发送批量提交。批量重发并删除可以较少数据库操作,但是也会引发更多的重复消息(非优雅停机,消息发送了,本地没有删掉,导致下次本系统启动后造成重发)。单条处理,降低了重复消息发生的可能性。

消息消费者(本系统)需要保证:

  1. 需要给mq确认消息消费成功与否。
    消费成功,回复ConsumeConcurrentlyStatus.CONSUME_SUCCESS。需要将【消费逻辑 + 插入message_applied(orderId) + 回复success】放在一个本地事务,然后删除message_applied(orderId)。
    若消费失败,回复ConsumeConcurrentlyStatus.RECONSUME_LATER通知rocket重发message,并回滚事务。

  2. 重复消息幂等性
    考虑其他原因导致的消息重发
    普遍做法是在本地建表message_applied(orderId),将成功消费过的消息写入该表,将确定不会重发的消息从该表删除(我们在这步建议不要马上删,而是过一段时间再统一清理)。
    注意1):重复消息的定义。业务id重复的才算“重复消息”。这里不能用消息id,必须用业务模型的ID。因为重发的消息,消息id会变。
    注意2):对于message_applied,我们可以立刻写入,不立刻删。因为业务系统的设计为了保证不漏消息,是可以重发的,所以本系统有义务保证严格的幂等性。如果立刻删除,一会业务系统重发了消息,那么久无法保证消息不被重复消费。可以累计到一定量后,统一清理。

message_applied表结构:
id, orderId(idx),pay_complete_time(idx),message_receive_time(idx)

六、数据库事务级别和缓存的考虑

缓存

为了减少job方案中的数据库查询次数,考虑缓存城市、售卖终端、sku等数据
缓存方案?数据如何获取?读库?接口?能否读到全量?是否适合读到全量?还是每次调接口查,接口已经做了缓存?或者首次调接口,然后本地缓存一把?

原子递增操作

流方案中,由于是多个线程并发事务的场景,需要避免幻读(因为有insert or update操作)和非原子++(因为有 update value=value+x 操作)

1,事务隔离级别设定为 Serializable,确保事务串行化提交
2,代码层优化处理
简述:消费者收到消息,直接保存(可以和message_applied合成一张表)并返回success。后台1个或多个线程分批加载并汇总保存的消息,1个线程负责提交汇总好的事务
这样,批量提交事务,update频率降低了,性能好些

七、宕机影响和恢复

影响

job方案宕机,不生成统计数据,重启即可。单点无碍

流方案,mq或者消费者宕机,消息生产者和mq都有重发机制,不会丢消息。

job方案的恢复

应用重启后,建议不自动恢复数据统计任务,由管理员根据实际情况,手动指定时间戳并恢复任务

八、数据量预估

每行对应一条orderItem。
目前日订单按100万计算,每个订单按5个item计算,每日产生500万条记录

城市数量级:目前几十,将来能几百。按500预估??
货架的数量级:目前3万货架。按目前的10倍预估,30万??
每天实际发生售卖的SKU数量级:目前4521条

数据量若大,可以考虑按城市或日期切分。

九、其他

需要调整

目前的ls_order_ordercoupon,描述的是“order”粒度的优惠
目前并没有“order_item”也就是“SKU”粒度的优惠。将来业务模型上会做相关方案。
对于以上情况,现在的设计(主要是表结构上)需要做相关扩展考虑。

支付中心相关问题

问题1:
ls_paycenter_order.total_pay_money
ls_paycenter_order.third_part_money
的含义?

问题2:
ls_paycenter_order.platform
ls_paycenter_order.biz_type
的含义?
是否表达业务线?若是货架业务线的值是多少?若不是,有没有表达业务线的字段?

问题3:
ls_paycenter_order.refund_status
ls_paycenter_order.pay_status
的值是否有关联?应该没有关联,是吗?
若有关联,那么有退款的订单,pay_status是多少?需要了解这两个字段的具体关系。

问题4:
订单查询接口 https://wiki.owitho.com/pages/viewpage.action?pageId=4519620
目前只能按照createTime查。需要按照paycompletetime查,是否可以提供?

财务沟通笔记:

对账的具体需求?
支付宝,微信,c端余额,b端余额,其他渠道等

1)方糖、猪八戒的对账和支付宝微信有什么差异?
B端余额和方糖的入账不在线上,所以目前无法对齐余额
其他没有区别

2)充100送10,对不上,财务暂无方案,我们可以想一下,给建议。

3)需要把对订单级别的补贴金额,细化落实到每个商品上,税务上的要求。细化落实用金额占比计算

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注