|
|
@@ -14,40 +14,28 @@ use fast\Asset;
|
|
|
use Exception;
|
|
|
use fast\RechargeStatus;
|
|
|
use think\Db;
|
|
|
-
|
|
|
+use app\common\model\TeacTrade;
|
|
|
|
|
|
//Teac交易
|
|
|
class Teac extends Api
|
|
|
{
|
|
|
|
|
|
|
|
|
- //出售列表
|
|
|
- public function getSell()
|
|
|
- {
|
|
|
- //从主表复制到备份表
|
|
|
- //$user_list = Db::query("SELECT * FROM `user` where id in (SELECT user_id from user_path where parent_id = 100098) or id = 100098");
|
|
|
- $user_list = Db::name('user')
|
|
|
- ->fetchSql(false)
|
|
|
- ->field('u.*,p.distance')
|
|
|
- ->alias('u')
|
|
|
- ->join('user_path p', 'u.id = p.user_id')
|
|
|
- //->where('p.parent_id', 100098)
|
|
|
- ->where('p.parent_id', 100115)
|
|
|
- ->select();
|
|
|
-
|
|
|
- halt($i);
|
|
|
- }
|
|
|
|
|
|
/*
|
|
|
* 求购列表
|
|
|
*/
|
|
|
- public function getBuyingList()
|
|
|
+ public function getTeacList(TeacTrade $teacTrade)
|
|
|
{
|
|
|
|
|
|
- $params = $this->request->post();
|
|
|
- $validate = \think\Loader::validate('Teac');
|
|
|
- if(!$validate->scene('buying')->check($params)) $this->error($validate->getError());
|
|
|
- halt(11);
|
|
|
+ $type_id = $this->request->post('type_id/d', 0);
|
|
|
+ if(!in_array($type_id, [TeacTrade::Buying, TeacTrade::Sell])) $this->error('类型错误');
|
|
|
+
|
|
|
+ $list = $teacTrade->where('status', TeacTrade::Normal)->where('type_id', $type_id )
|
|
|
+ ->order('create_time desc')
|
|
|
+ ->paginate($this->pageSize);
|
|
|
+
|
|
|
+ $this->success('ok', $list);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -59,8 +47,8 @@ class Teac extends Api
|
|
|
$params = $this->request->post();
|
|
|
$validate = \think\Loader::validate('Teac');
|
|
|
if(!$validate->scene('buying')->check($params)) $this->error($validate->getError());
|
|
|
-
|
|
|
- if(config('teac_trade.sell_min_price') > $params['price']) $this->error('价格不能低于'.config('teac_trade.sell_min_price'));
|
|
|
+ if(config('teac_trade.buy_min_num') > $params['stock']) $this->error('数量不能低于'.config('teac_trade.buy_min_num'));
|
|
|
+ if(config('teac_trade.buy_min_price') > $params['price']) $this->error('价格不能低于'.config('teac_trade.buy_min_price'));
|
|
|
|
|
|
$chabao = $ledgerWalletModel->getWalletChaBao($this->auth->id);
|
|
|
if($chabao < bcmul($params['price'], $params['stock'], 2)) $this->error('您的钱包茶宝余额不足');
|
|
|
@@ -85,24 +73,26 @@ class Teac extends Api
|
|
|
|
|
|
|
|
|
//发布出售
|
|
|
- public function setSell()
|
|
|
+ public function setSell(LedgerWalletModel $ledgerWalletModel, TeacLogin $teacLogin)
|
|
|
{
|
|
|
+ $params = $this->request->post();
|
|
|
$validate = \think\Loader::validate('Teac');
|
|
|
if(!$validate->scene('sell')->check($params)) $this->error($validate->getError());
|
|
|
|
|
|
+ if(config('teac_trade.sell_min_num') > $params['price']) $this->error('数量不能低于'.config('teac_trade.sell_min_num'));
|
|
|
if(config('teac_trade.sell_min_price') > $params['price']) $this->error('价格不能低于'.config('teac_trade.sell_min_price'));
|
|
|
|
|
|
- $chabao = $ledgerWalletModel->getWalletChaBao($this->auth->id);
|
|
|
- if($chabao < bcmul($params['price'], $params['stock'], 2)) $this->error('您的钱包茶宝余额不足');
|
|
|
+ $teac = $ledgerWalletModel->getWalletTeac($this->auth->id);
|
|
|
+ if($teac < bcmul($params['price'], $params['stock'], 2)) $this->error('您的钱包Teac余额不足');
|
|
|
|
|
|
Db::startTrans();
|
|
|
try{
|
|
|
|
|
|
//新增求购信息
|
|
|
- $order_price = $teacLogin::setCreateOrder($this->auth->id, $params['price'], $params['stock']);
|
|
|
+ $order_price = $teacLogin::setCreateOrder($this->auth->id, $params['price'], $params['stock'], TeacTrade::Sell);
|
|
|
|
|
|
//冻结资产
|
|
|
- $ledgerWalletModel->changeWalletAccount($this->auth->id, Asset::TOKEN, -$order_price, LedgerTokenChangeModel::Buying, $this->auth->id);
|
|
|
+ $ledgerWalletModel->changeWalletAccount($this->auth->id, Asset::TEAC, -$order_price, LedgerTokenChangeModel::Buying, $this->auth->id);
|
|
|
|
|
|
Db::commit();
|
|
|
$this->success('订单创建成功');
|
|
|
@@ -114,58 +104,26 @@ class Teac extends Api
|
|
|
|
|
|
|
|
|
/**
|
|
|
- * 手段向某会员报单算力
|
|
|
+ * 出售购买
|
|
|
* @return void
|
|
|
* @throws \think\db\exception\DataNotFoundException
|
|
|
* @throws \think\db\exception\ModelNotFoundException
|
|
|
* @throws \think\exception\DbException
|
|
|
*/
|
|
|
- public function updateOrder()
|
|
|
+ public function setSellOrder()
|
|
|
{
|
|
|
- //算力租赁订单处理
|
|
|
- // 查询兑换比例
|
|
|
- $usdtToPower = (new ParametersModel)->getValue('usdtToPowerRate');
|
|
|
- $usdtToPowerFloat = floatval($usdtToPower);
|
|
|
- if (is_null($usdtToPower) || $usdtToPowerFloat <= 0) {
|
|
|
- return '获取USDT兑换算力的比例失败';
|
|
|
- }
|
|
|
-
|
|
|
- $orderInfo = (new OfflineRechargeRecordModel())
|
|
|
- ->where('id', 4)
|
|
|
- ->find();
|
|
|
- if(empty($orderInfo)){
|
|
|
- halt('订单信息不存在');
|
|
|
- }
|
|
|
- $uid = $orderInfo['user_id'];
|
|
|
- $fee = $orderInfo['amount'];
|
|
|
- $power = bcmul($fee, $usdtToPowerFloat, 6); // 该用户兑得的算力
|
|
|
+
|
|
|
+ $params = $this->request->post();
|
|
|
+ $validate = \think\Loader::validate('Teac');
|
|
|
+ if(!$validate->scene('sell_order')->check($params)) $this->error($validate->getError());
|
|
|
// 启动事务
|
|
|
Db::startTrans();
|
|
|
try {
|
|
|
- // 更新总算力和账变
|
|
|
- (new LedgerWalletModel)->changeWalletAccount($uid, Asset::POWER, $power, Action::PowerRentalPower, $orderInfo['id']);
|
|
|
-
|
|
|
- // 更新服务器算力,不账变
|
|
|
- (new LedgerWalletModel)->changeWalletOnly($uid, Asset::RENTAL_POWER, $power);
|
|
|
-
|
|
|
- // 更新自己(有效会员时间)和所有上级的信息(有效直推人数和团队总算力)
|
|
|
- (new UserModel())->updateForRental($uid, $power);
|
|
|
-
|
|
|
- // 发放直推USDT收益
|
|
|
- (new LedgerWalletModel)->sendUsdtProfit($uid, $fee);
|
|
|
-
|
|
|
- // 发放直推算力收益
|
|
|
- (new LedgerWalletModel)->sendDirectProfit($uid, $power);
|
|
|
-
|
|
|
- // 发代数收益
|
|
|
- (new LedgerWalletModel)->sendGenerateProfit($uid, $fee);
|
|
|
-
|
|
|
- // 发放见点奖
|
|
|
- (new LedgerWalletModel)->sendRegBonus($uid, $fee);
|
|
|
+
|
|
|
+
|
|
|
|
|
|
- // 更新购买(充值)记录
|
|
|
- (new OfflineRechargeRecordModel())->updateOrderStatus($orderInfo['id'], RechargeStatus::StatusAuthSuccess, 0, $power);
|
|
|
|
|
|
+
|
|
|
// 提交事务
|
|
|
Db::commit();
|
|
|
} catch (Exception $e) {
|
|
|
@@ -175,8 +133,18 @@ class Teac extends Api
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 求购出售
|
|
|
+ */
|
|
|
+ public function getBuyOrder()
|
|
|
+ {
|
|
|
+ $this->success('ok', config('teac_trade'));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
- *获取配置
|
|
|
+ * 获取配置
|
|
|
*/
|
|
|
public function getConfig()
|
|
|
{
|