diff --git a/lease_v1.0.0.sql b/lease_v1.0.0.sql new file mode 100644 index 0000000..112f4ed --- /dev/null +++ b/lease_v1.0.0.sql @@ -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 '订单手续费'; diff --git a/m2pool-modules/m2pool-lease/src/main/java/com/m2pool/lease/entity/LeaseProduct.java b/m2pool-modules/m2pool-lease/src/main/java/com/m2pool/lease/entity/LeaseProduct.java index 36a0c16..aa90cee 100644 --- a/m2pool-modules/m2pool-lease/src/main/java/com/m2pool/lease/entity/LeaseProduct.java +++ b/m2pool-modules/m2pool-lease/src/main/java/com/m2pool/lease/entity/LeaseProduct.java @@ -52,6 +52,12 @@ public class LeaseProduct implements Serializable { */ private Integer type; + /** + * 商品矿池类型 0 自营矿池 1 非自营矿池 + */ + private Integer poolType; + + /** * 上下架状态,0 上架,1 下架 */ diff --git a/m2pool-modules/m2pool-lease/src/main/java/com/m2pool/lease/service/impl/LeaseProductServiceImpl.java b/m2pool-modules/m2pool-lease/src/main/java/com/m2pool/lease/service/impl/LeaseProductServiceImpl.java index efebdbc..6ddc019 100644 --- a/m2pool-modules/m2pool-lease/src/main/java/com/m2pool/lease/service/impl/LeaseProductServiceImpl.java +++ b/m2pool-modules/m2pool-lease/src/main/java/com/m2pool/lease/service/impl/LeaseProductServiceImpl.java @@ -329,7 +329,6 @@ public class LeaseProductServiceImpl extends ServiceImpl