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;
Attachments:
image-2023-10-7_11-45-58.png (image/png)
image-2023-10-7_13-41-54.png (image/png)
image-2023-10-7_13-58-49.png (image/png)
image-2023-10-7_14-4-43.png (image/png)
image-2023-10-7_14-5-44.png (image/png)
image-2023-10-7_14-10-11.png (image/png)
image-2023-10-7_14-14-40.png (image/png)