Web3 : 资金明细和费用明细模块

1. 目的

 a. 资金明细, 主要是以账户维度,可以完整的记录和展示账户所有资金流动状况,方便追踪账户资金变动和历史
 b. 费用明细, 全局的费用单据接收中心,根据费用单据的整理和归档,方便统一的费用结算

2.  资金关联模块

 2.1 资金关联模型

 

 说明: 1. 资金分为进账和出账,接收的主体为钱包

             2. 金额为入钱包的实际金额不包含任何冻结或者手续费

 2.2 表设计

     CREATE TABLE `member`.`t_wallet_record`  (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `action` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1 增加 2减少 3 不变',
  `source` tinyint NOT NULL DEFAULT 0 COMMENT '来源 1 充值,2 取款, 3payment划转,4 兑换 5 . 收款, 6 . 转账 ',
  `source_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '来源单号',
  `asset_id` bigint NOT NULL DEFAULT 0,
  `currency` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '',
  `create_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0),
  `asset_type` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1 加密 2 法币',
  `member_id` bigint NOT NULL DEFAULT 0,
  `amount` decimal(14, 6) NOT NULL DEFAULT 0.000000,
  PRIMARY KEY (`id`, `currency`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

数据不能更新,只能流水增加,具体开发按照需要增加额外业务字段

3. 费用明细关联模块

3.1 费用来源,封装统一的服务或者方法

     

3.2 费用收集和结算流程

   

    3.3 费用结算明细表

CREATE TABLE `member`.`t_wallet_fee_settle`  (
  `id` bigint NOT NULL,
  `settle_no` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '',
  `amount` decimal(14, 6) NOT NULL DEFAULT 0.000000 COMMENT '结算金额',
  `count` int NOT NULL DEFAULT 0 COMMENT '结算费用单据数量',
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '状态,1 默认生成结算单 2 发起结算中 3 现金打款, 4.结算完成',
  `create_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0),
  `currency` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '币种',
  `operator_id` bigint NOT NULL DEFAULT 0 COMMENT '操作人员id',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;


       CREATE TABLE `member`.`t_wallet_fee`  (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `amount` decimal(14, 6) NOT NULL DEFAULT 0.000000 COMMENT '金额',
  `fee_type` tinyint NOT NULL DEFAULT 0 COMMENT '费用类型,有业务使用者自行定义',
  `settle_no` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '结算号',
  `currency` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '费用货币',
  `business_no` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '业务单号',
  `create_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0),
  `status` tinyint(1) NOT NULL DEFAULT 0 COMMENT '状态',
  `op_id` bigint NOT NULL COMMENT '操作人员id',
  `business_client` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '业务单位编码',
  `update_time` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0),
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;