update 租赁系统业务完成,其他矿池挖矿机器租赁业务开始

This commit is contained in:
yyb
2025-11-20 11:01:34 +08:00
parent a7a2b73d00
commit 7cd19a2338
3 changed files with 444 additions and 1 deletions

438
lease_v1.0.0.sql Normal file
View File

@@ -0,0 +1,438 @@
-- 第一版租赁系统 只支持自营矿池挖矿
-- -- 创建用户表,存储用户基本信息
-- CREATE TABLE IF NOT EXISTS `lease_user` (
-- `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
-- `user_id` VARCHAR(50) NOT NULL UNIQUE COMMENT '用户id(邮箱)',
-- `password` VARCHAR(64) NOT NULL COMMENT '密码',
-- `address` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '钱包地址',
-- `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-- `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
--
--
-- 创建店铺表
CREATE TABLE IF NOT EXISTS `lease_shop` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '店铺ID',
`user_email` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '店铺拥有者邮箱',
`name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '店铺名称',
`image` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '店铺图片路径',
`state` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '商铺状态 0 待审核 1 审核通过(店铺开启) 2 店铺关闭',
`description` TEXT COMMENT '店铺描述',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段',
UNIQUE INDEX idx_email (user_email)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='店铺表';
-- 创建店铺--店铺支持收款地址配置表
CREATE TABLE IF NOT EXISTS `lease_shop_config` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '配置ID',
`shop_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商铺ID',
`product_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商品 ID (商品id为0代表适用于店铺中所有商品) ------- 该字段删除',
`pay_coin` VARCHAR(32) NOT NULL DEFAULT '' COMMENT 'nexa rxd dgbo dgbq dgbs alph enx grs mona usdt usdc busd',
`chain` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '卖家地址链名称',
`pay_coin_image` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '支付币种图标',
`pay_type` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '币种类型 0 虚拟币 1 稳定币',
`pay_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '卖方对应收款钱包',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`qrcode` LONGTEXT COMMENT '卖方对应收款钱包二维码',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='店铺支持收款地址配置表';
-- 用于店铺收款钱包配置 时下拉选择链和币
CREATE TABLE IF NOT EXISTS `lease_chain_coin_config` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '配置ID',
`coin_full` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种全称',
`coin_image` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '支付币种图标',
`coin` VARCHAR(32) NOT NULL DEFAULT '' COMMENT 'nexa rxd dgbo dgbq dgbs alph enx grs mona usdt usdc busd',
`chain` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '链名称'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='店铺支持收款地址配置表(店铺钱包)';
-- 创建商品表,存储挖矿机器和算力套餐信息
CREATE TABLE IF NOT EXISTS `lease_product` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '商品 ID',
`shop_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商铺ID',
`name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '商品名称',
`image` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '商品图片路径',
`algorithm` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '算法',
`sale_number` INT NOT NULL DEFAULT 0 COMMENT '销售机器数(租赁出一次算一个销售数)',
`total_machine_number` INT NOT NULL DEFAULT 0 COMMENT '当前总矿机数(包含已售出矿机数)',
`max_price` DECIMAL(30, 18) NOT NULL DEFAULT 0.000000 COMMENT '商品下机器最大价格',
`min_price` DECIMAL(30, 18) NOT NULL DEFAULT 0.000000 COMMENT '商品下机器最小价格',
`coin` VARCHAR(32) NOT NULL DEFAULT '' COMMENT ' 矿机挖矿币种 nexa rxd dgbo dgbq dgbs alph enx grs mona',
`coin_full_name` VARCHAR(32) NOT NULL DEFAULT '' COMMENT ' 矿机挖矿币种 nexa rxd dgbo dgbq dgbs alph enx grs mona',
`type` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '商品类型0 矿机 1 算力 ',
`state` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '上下架状态0 上架1 下架',
`description` TEXT COMMENT '商品描述',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品表';
CREATE TABLE IF NOT EXISTS `lease_product_machine` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
`shop_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商铺ID',
`product_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商品 ID',
`user` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '挖矿机器 对应的矿工账号',
`type` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '矿机型号',
`coin` VARCHAR(32) NOT NULL DEFAULT '' COMMENT ' 矿机挖矿币种 nexa rxd dgbo dgbq dgbs alph enx grs mona',
`miner` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '挖矿机器编号',
`theory_power` DECIMAL(32, 6) NOT NULL DEFAULT 0.000000 COMMENT '商品机器单机算力(卖方手动填写)理论算力 (如果实时变化可不要这个字段)',
`computing_power` DECIMAL(32, 6) NOT NULL DEFAULT 0.000000 COMMENT '实际算力(计算得到,商家不能够自己添加和修改) (如果实时变化可不要这个字段)',
`theory_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.00 COMMENT '单机理论收益单位usdt每日:根据添加机器时,实时计算的收益值)',
-- `actual_income` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '单机预估实际收益(每日)',
`unit` VARCHAR(16) NOT NULL DEFAULT '' COMMENT '算力单位 GH/s TH/s PH/s',
-- `electricity_bill` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '电费 单位 $/度 (该字段目前未使用,可删除)',
`max_lease_days` INT NOT NULL DEFAULT 7 COMMENT '矿机租售天数',
`power_dissipation` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '功耗 单位kw/h',
`income_rate` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 DEFAULT 0.00 COMMENT '收益率',
`cost` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '默认单价单位$ [ 功耗 * 电费 * 24 * (1 + 收益率) ]',
`price` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '实际单价',
`sale_state` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '售出状态 0未售出 1已售出 2售出中(已下单情况该状态已不存在)',
`state` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '上下架状态0 上架1 下架',
`del` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除字段',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
KEY `idx_user_coin_miner` (`user`, `coin`, `miner`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品表对应的物品机器表';
CREATE TABLE IF NOT EXISTS `lease_product_machine_price` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
`product_machine_id` BIGINT NOT NULL DEFAULT 0 COMMENT '矿机id',
`price` DECIMAL(30, 18) NOT NULL DEFAULT 0.00 COMMENT '实际单价',
`coin` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '价值单位',
`chain` VARCHAR(256) NOT NULL DEFAULT '' COMMENT '',
`del` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '逻辑删除字段'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品表对应的物品机器表';
-- 创建已购机器表(租赁表)
CREATE TABLE IF NOT EXISTS `lease_user_owned_product` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
`user_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '用户id(邮箱)',
`product_machine_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商品对应的机器id',
`user` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '挖矿机器 对应的矿工账号',
`order_id` BIGINT NOT NULL DEFAULT 0 COMMENT '订单 ID',
`miner` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '挖矿机器编号',
`coin` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '矿机挖矿币种 nexa rxd dgbo dgbq dgbs alph enx grs mona',
`estimated_end_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '预估商品结束时的总收益',
`estimated_end_usdt_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '预估商品结束时的总收益 单价usdt',
`current_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '当前收益(根据购买机器到现在的平均算力计算得到)单位 币种',
`current_usdt_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '当前收益(根据购买机器到现在的平均算力计算得到----非实时单位usdt',
`settle_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '待结算收益(用于存储某天还未支付情况下的收益)',
`settle_usdt_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '待结算收益 (用于存储某天还未支付情况下的收益----非实时)单位usdt',
`order_item_id` BIGINT NOT NULL DEFAULT 0 COMMENT '订单明细 ID关联订单中的购买记录',
`address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '卖方对应收款钱包',
`start_time` DATETIME NOT NULL COMMENT '商品开始使用时间(购买当天24点生效)',
`end_time` DATETIME NOT NULL COMMENT '商品使用结束时间',
`purchased_computing_power` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '购买算力时实时算力,当 type 为 1 时有效',
`status` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '商品状态0 表示运行中1 表示已过期 ',
`type` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '商品类型0 表示挖矿机器1 表示算力套餐',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '购买时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户拥有商品详情表';
-- 创建购物车表,存储用户添加到购物车的商品信息
CREATE TABLE IF NOT EXISTS `lease_shopping_cart` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '购物车 ID',
`user_id` varchar(64) NOT NULL DEFAULT '' COMMENT '用户 ID(邮箱)',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='购物车表';
-- 创建购物车详情表
CREATE TABLE IF NOT EXISTS `lease_shopping_cart_info` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
`cart_id` BIGINT NOT NULL DEFAULT 0 COMMENT '购物车ID',
`product_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商品 ID',
`product_machine_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商品机器ID',
`lease_time` int NOT NULL DEFAULT 1 COMMENT '租赁天数',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='购物车详情表';
-- 创建订单表,存储订单基本信息
CREATE TABLE IF NOT EXISTS `lease_order_info` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '订单 ID',
`order_number` VARCHAR(50) NOT NULL DEFAULT '' UNIQUE COMMENT '订单号',
`user_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '用户id(邮箱)',
`total_price` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '订单总价',
`status` TINYINT(1) NOT NULL DEFAULT 7 COMMENT '订单状态0 表示待支付1 表示全部已支付2 表示已取消 3售后状态 4已退款 5 支付已超时 6 支付中 ( 目前只有这三种状态 7 订单进行中 8 订单已完成 9 余额不足,订单已取消) 10 部分已支付',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '下单时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单表';
-- 创建订单明细表,存储订单中的商品明细
CREATE TABLE IF NOT EXISTS `lease_order_item` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '订单明细 ID',
`order_id` BIGINT NOT NULL DEFAULT 0 COMMENT '订单 ID',
`user_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '用户id(邮箱)',
`shop_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商铺ID',
`product_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商品 ID',
`product_machine_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商品对应的机器id',
`user` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '挖矿机器 对应的矿工账号',
`miner` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '挖矿机器编号',
`name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '商品名称',
`theory_income` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '单机理论收益',
`lease_time` INT NOT NULL DEFAULT 0 COMMENT '租赁天数',
`status` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '0 租约已过期 1 租约生效中 2 等待租约生效 ',
`pay_coin` VARCHAR(32) NOT NULL DEFAULT '' COMMENT 'nexa rxd dgbo dgbq dgbs alph enx grs mona usdt usdc busd',
`coin` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '矿机挖矿币种 nexa rxd dgbo dgbq dgbs alph enx grs mona',
`address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '卖方对应收款钱包',
`chain` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '卖家地址链名称',
`symbol` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '卖家地址支付币种',
`from_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '买方对应收款钱包(删除,支付时用户必定存在和卖家收款地址相同币种和链的地址,代码中已做处理)',
`from_chain` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '买方地址链名称(删除)',
`from_symbol` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '买方地址支付币种(删除)',
`image` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '商品图片路径',
`quantity` INT NOT NULL DEFAULT 1 COMMENT '商品数量(弃用)',
`price` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '商品价格',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单明细表';
-- 创建支付记录表,模拟支付信息
CREATE TABLE IF NOT EXISTS `lease_payment_record` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '支付记录 ID',
`order_id` BIGINT NOT NULL DEFAULT 0 UNIQUE COMMENT '订单 ID',
`shop_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商铺ID',
`product_id` BIGINT COMMENT '商品 ID后续删除',
`pay_coin` VARCHAR(32) NOT NULL DEFAULT '' COMMENT 'nexa rxd dgbo dgbq dgbs alph enx grs mona usdt usdc busd',
`amount` DECIMAL(40, 6) NOT NULL DEFAULT 0.000000 COMMENT '需支付总金额',
`pay_amount` DECIMAL(40, 6) NOT NULL DEFAULT 0.000000 COMMENT '已支付金额',
`status` TINYINT(1) NOT NULL DEFAULT 7 COMMENT '支付状态0支付失败 1支付成功--全部货款已支付 2待支付 5支付已超时 6 支付中( 目前只有这三种状态 7 订单进行中 8 订单已完成 9 余额不足,订单已取消) 10支付成功--已支付部分货款 ',
`from` VARCHAR(256) NOT NULL DEFAULT '' COMMENT '买家钱包',
`hash` VARCHAR(256) NOT NULL DEFAULT '' COMMENT '交易id 交易成功后生成',
`pay_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '卖方对应收款钱包',
`qrcode` LONGTEXT COMMENT '支付地址二维码',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '支付时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段'
KEY `orderid_shopid` (`order_id`,`shop_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='支付记录表';
-- -- 创建商品收益表,存储每个商品对应的收益信息
-- CREATE TABLE IF NOT EXISTS `lease_product_income` (
-- `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '收益记录 ID',
-- `user_owned_product_id` BIGINT NOT NULL DEFAULT 0 COMMENT '用户拥有商品详情 ID关联 lease_user_owned_product 表',
-- `estimated_end_income` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '预估商品结束时的总收益',
-- `current_actual_income` DECIMAL(18, 2) NOT NULL DEFAULT 0.00 COMMENT '当前实际总收益',
-- `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
-- `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录更新时间'
-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品收益表';
--
--
-- -- 删除
-- CREATE TABLE IF NOT EXISTS `lease_shop_address_config` (
-- `id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
-- `user_id` varchar(64) NOT NULL COMMENT '买方账号id邮箱',
-- `address` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '卖方收款钱包 每个买方对应一个地址(自动生成匹配)',
-- `shop_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商铺ID',
-- UNIQUE KEY `idx_user_address_shop` (`user_id`,`address`,shop_id)
-- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='矿池nexa机器实时平均算力';
-- 官方自动生成地址存储表
CREATE TABLE IF NOT EXISTS `lease_auto_address` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
`address` VARCHAR(512) NOT NULL DEFAULT '' COMMENT '钱包地址',
`from_symbol` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种名称',
`from_chain` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '链名称',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0 未使用 1 已使用 2 钱包已过期',
`bind_user` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '绑定者邮箱',
UNIQUE INDEX `idx_address_from_symbol_from_chain` (`address`, `from_symbol`, `from_chain`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='官方自动生成地址表';
-- 个人钱包资料表
CREATE TABLE IF NOT EXISTS `lease_user_wallet_data` (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
`user_id` VARCHAR(50) NOT NULL UNIQUE COMMENT '用户id(邮箱)',
`queue_id` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '钱包唯一id(用于充值功能)',
`from_address` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '充值钱包地址(我们提供)',
`balance` DECIMAL(40, 6) NOT NULL DEFAULT 0.000000 COMMENT '余额',
`blocked_balance` DECIMAL(40, 6) NOT NULL DEFAULT 0.000000 COMMENT '冻结余额(用户购买机器完成租约所需金额)',
`to_address` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '收款钱包地址(用户自己填写)',
`from_symbol` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种名称',
`from_chain` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '链名称',
`to_symbol` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种名称',
`to_chain` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '链名称',
`qrcode` LONGTEXT COMMENT '支付地址二维码',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段' ,
UNIQUE INDEX `idx_user_from_info` (`user_id`, `from_address`,`from_symbol`, `from_chain`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户钱包信息表(个人钱包)';
-- 支付记录表
CREATE TABLE IF NOT EXISTS lease_pay_record_message (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
`queue_id` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '消息ID',
`from_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '买家充值地址',
`to_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '卖家充值地址',
`order_number` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '订单号(方便查询,基本未使用)',
`order_id` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '订单号',
`shop_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商铺ID',
`user_id` VARCHAR(50) NOT NULL COMMENT '买方邮箱',
`block_amount`DECIMAL(40, 18) NOT NULL DEFAULT 0.00000000 COMMENT '买方钱包冻结金额',
`amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.00000000 COMMENT '理论支付金额',
`real_amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.000000 COMMENT '实际支付金额',
`need_amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.000000 COMMENT '实际应支付金额(支付是一天一次,根据一天内预估算力和实际算力差值计算得来)',
`block_height` BIGINT NOT NULL DEFAULT 0 COMMENT '报块高度',
`from_symbol` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种名称',
`from_chain` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '链名称',
`to_symbol` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种名称',
`to_chain` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '链名称',
`tx_hash` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '交易id',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '支付时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`status` tinyint(1) NOT NULL DEFAULT 2 COMMENT '0 支付失败 1 支付成功 2 支付中 3 校验失败 4 发送支付消息失败',
`del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='支付记录表';
CREATE TABLE IF NOT EXISTS lease_pay_record_message_info (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
`queue_id` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '消息ID',
`from_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '买家充值地址',
`to_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '卖家充值地址',
`order_number` VARCHAR(50) NOT NULL DEFAULT '' COMMENT '订单号(方便查询,基本未使用)',
`order_id` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '订单号',
`shop_id` BIGINT NOT NULL DEFAULT 0 COMMENT '商铺ID',
`user_id` VARCHAR(50) NOT NULL COMMENT '买方邮箱',
`block_amount`DECIMAL(40, 18) NOT NULL DEFAULT 0.00000000 COMMENT '买方钱包冻结金额',
`amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.00000000 COMMENT '理论支付金额',
`real_amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.000000 COMMENT '实际支付金额',
`need_amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.000000 COMMENT '实际应支付金额(支付是一天一次,根据一天内预估算力和实际算力差值计算得来)',
`block_height` BIGINT NOT NULL DEFAULT 0 COMMENT '报块高度',
`from_symbol` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种名称',
`from_chain` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '链名称',
`to_symbol` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种名称',
`to_chain` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '链名称',
`tx_hash` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '交易id',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '支付时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`status` tinyint(1) NOT NULL DEFAULT 2 COMMENT '0 支付失败 1 支付成功 2 支付中 3 校验失败 4 发送支付消息失败',
`del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='支付记录详情表(订单对应每日应支付金额)';
-- 充值记录返回表
CREATE TABLE IF NOT EXISTS lease_pay_recharge_message (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
`queue_id` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '消息ID',
`address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '充值地址',
`amount` DECIMAL(40, 6) NOT NULL DEFAULT 0.00000000 COMMENT '支付金额',
`chain` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '链名称',
`symbol` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '币种',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '充值时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '0 充值失败 1 充值成功 2 充值中',
`tx_hash` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '交易id',
`del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段' ,
UNIQUE INDEX `tx_hash_key` (`tx_hash`);
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='充值记录表';
-- 提现记录表
CREATE TABLE IF NOT EXISTS lease_pay_withdraw_message (
`id` BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 'ID',
`queue_id` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '消息ID',
`from_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '用户充值地址',
`to_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '提现地址(用户自定义)',
`amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.00000000 COMMENT '提现金额',
`from_symbol` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种名称',
`from_chain` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '链名称',
`to_symbol` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '币种名称',
`service_charge` DECIMAL(40, 6) NOT NULL DEFAULT 0.000000 COMMENT '提现费用',
`to_chain` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '链名称',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '充值时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`status` tinyint(1) NOT NULL DEFAULT 2 COMMENT '0 提现失败 1 提现成功 2 提现中',
`tx_hash` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '交易id',
`del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除字段'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='提现记录表';
CREATE TABLE IF NOT EXISTS `nexa_real_power` (
`id` int NOT NULL AUTO_INCREMENT,
`user` varchar(64) NOT NULL COMMENT "挖矿账户",
`miner` varchar(64) NOT NULL COMMENT "矿工编号",
`date` datetime NOT NULL,
`power` decimal(32,6) NOT NULL COMMENT "实时算力单位 MH/S",
PRIMARY KEY (`id`),
UNIQUE KEY `user_miner` (`user`,`miner`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='矿机实时算力';
CREATE TABLE IF NOT EXISTS `grs_real_power` (
`id` int NOT NULL AUTO_INCREMENT,
`user` varchar(64) NOT NULL COMMENT "挖矿账户",
`miner` varchar(64) NOT NULL COMMENT "矿工编号",
`date` datetime NOT NULL,
`power` decimal(32,6) NOT NULL COMMENT "实时算力单位 MH/S",
PRIMARY KEY (`id`),
UNIQUE KEY `user_miner` (`user`,`miner`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='矿机实时算力';
CREATE TABLE IF NOT EXISTS `mona_real_power` (
`id` int NOT NULL AUTO_INCREMENT,
`user` varchar(64) NOT NULL COMMENT "挖矿账户",
`miner` varchar(64) NOT NULL COMMENT "矿工编号",
`date` datetime NOT NULL,
`power` decimal(32,6) NOT NULL COMMENT "实时算力单位 MH/S",
PRIMARY KEY (`id`),
UNIQUE KEY `user_miner` (`user`,`miner`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='矿机实时算力';
CREATE TABLE IF NOT EXISTS `rxd_real_power` (
`id` int NOT NULL AUTO_INCREMENT,
`user` varchar(64) NOT NULL COMMENT "挖矿账户",
`miner` varchar(64) NOT NULL COMMENT "矿工编号",
`date` datetime NOT NULL,
`power` decimal(32,6) NOT NULL COMMENT "实时算力单位 MH/S",
PRIMARY KEY (`id`),
UNIQUE KEY `user_miner` (`user`,`miner`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='矿机实时算力';
ALTER TABLE lease_product MODIFY COLUMN `max_price` DECIMAL(30, 18) NOT NULL DEFAULT 0.000000 COMMENT '商品下机器最大价格';
ALTER TABLE lease_product MODIFY COLUMN `min_price` DECIMAL(30, 18) NOT NULL DEFAULT 0.000000 COMMENT '商品下机器最小价格';
ALTER TABLE lease_product_machine MODIFY COLUMN `theory_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '单机理论收益单位usdt每日:根据添加机器时,实时计算的收益值)';
ALTER TABLE lease_user_owned_product MODIFY COLUMN `estimated_end_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '预估商品结束时的总收益';
ALTER TABLE lease_user_owned_product MODIFY COLUMN `estimated_end_usdt_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '预估商品结束时的总收益 单价usdt';
ALTER TABLE lease_user_owned_product MODIFY COLUMN `current_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '当前收益(根据购买机器到现在的平均算力计算得到)单位 币种';
ALTER TABLE lease_user_owned_product MODIFY COLUMN `current_usdt_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '当前收益(根据购买机器到现在的平均算力计算得到----非实时单位usdt';
ALTER TABLE lease_user_owned_product MODIFY COLUMN `settle_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '待结算收益(用于存储某天还未支付情况下的收益)';
ALTER TABLE lease_user_owned_product MODIFY COLUMN `settle_usdt_income` DECIMAL(32, 18) NOT NULL DEFAULT 0.000000 COMMENT '待结算收益 (用于存储某天还未支付情况下的收益----非实时)单位usdt';
ALTER TABLE lease_pay_record_message MODIFY COLUMN `block_amount`DECIMAL(40, 18) NOT NULL DEFAULT 0.00000000 COMMENT '买方钱包冻结金额';
ALTER TABLE lease_pay_record_message MODIFY COLUMN `amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.00000000 COMMENT '理论支付金额';
ALTER TABLE lease_pay_record_message MODIFY COLUMN `real_amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.000000 COMMENT '实际支付金额';
ALTER TABLE lease_pay_record_message MODIFY COLUMN `need_amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.000000 COMMENT '实际应支付金额(支付是一天一次,根据一天内预估算力和实际算力差值计算得来)';
ALTER TABLE lease_pay_withdraw_message MODIFY COLUMN `amount` DECIMAL(40, 18) NOT NULL DEFAULT 0.00000000 COMMENT '提现金额';
ALTER TABLE lease_pay_recharge_message ADD COLUMN `block_height` BIGINT NOT NULL DEFAULT 0 COMMENT '报块高度';
ALTER TABLE lease_pay_recharge_message ADD COLUMN `from_address` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '充值来源地址(用户自己的钱包)';
ALTER TABLE lease_pay_withdraw_message ADD COLUMN `block_height` BIGINT NOT NULL DEFAULT 0 COMMENT '报块高度';
ALTER TABLE lease_order_item ADD COLUMN `already_pay_amount` DECIMAL(32, 18) NOT NULL DEFAULT 0.00 COMMENT '已支付总金额(每天加一)';
ALTER TABLE lease_order_item ADD COLUMN `already_pay_real_amount` DECIMAL(32, 18) NOT NULL DEFAULT 0.00 COMMENT '已支付实际总金额';
ALTER TABLE lease_order_item ADD COLUMN `settle_pay_real_amount` DECIMAL(32, 18) NOT NULL DEFAULT 0.00 COMMENT '当日待确认支付金额';
ALTER TABLE lease_order_info ADD COLUMN `fee` DECIMAL(32, 8) NOT NULL DEFAULT 0.00 COMMENT '订单手续费';

View File

@@ -52,6 +52,12 @@ public class LeaseProduct implements Serializable {
*/
private Integer type;
/**
* 商品矿池类型 0 自营矿池 1 非自营矿池
*/
private Integer poolType;
/**
* 上下架状态0 上架1 下架
*/

View File

@@ -329,7 +329,6 @@ public class LeaseProductServiceImpl extends ServiceImpl<LeaseProductMapper, Lea
if (leaseShopConfig.isEmpty()){
return Result.fail("添加商品失败,请先绑定收款钱包");
}
String algorithm = Algorithm.getAlgorithm(productURDVo.getCoin());
String coinFullName = Algorithm.getCoinFullName(productURDVo.getCoin());
LeaseProduct product = LeaseProduct.builder()