|
@@ -88,63 +88,26 @@ class TeacLogin
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- * 根据时间戳获取最近的区块高度
|
|
|
|
|
- * api接口返回数据格式
|
|
|
|
|
- * @param $orderInfo
|
|
|
|
|
- * @return array|string
|
|
|
|
|
|
|
+ * 退回相应茶宝/Teac
|
|
|
|
|
+ * @param $uid 用户id
|
|
|
|
|
+ * @param $typeId 订单类型
|
|
|
|
|
+ * @param $stock 剩余数
|
|
|
|
|
+ * @return void
|
|
|
*/
|
|
*/
|
|
|
- public function getBlockNoByTime($time):array
|
|
|
|
|
|
|
+ public static function setUserReturnOrder(int $uid, int $typeId, int $stock)
|
|
|
{
|
|
{
|
|
|
- if(!Cache::has('block_' . $time)){
|
|
|
|
|
- if (empty($time)) {
|
|
|
|
|
- return _error('时间戳不能为空');
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- //https://api.bscscan.com/api?module=block&action=getblocknobytime×tamp=1601510400&closest=before&apikey=YourApiKeyToken
|
|
|
|
|
-
|
|
|
|
|
- $url = "https://api.bscscan.com/api?module=block&action=getblocknobytime&";
|
|
|
|
|
- $url .= "&closest=before";//closest 值还有个参数 after 控制返回接近时间戳之前还是之后的区块高度
|
|
|
|
|
- $url .= "&apikey=" . $this->bsc_api_key;
|
|
|
|
|
- $url .= "×tamp=" . $time;
|
|
|
|
|
- dump($url);
|
|
|
|
|
- $body = Http::get($url);
|
|
|
|
|
- if (empty($body)) {
|
|
|
|
|
- return _error('获取区块高度api返回内容为空');
|
|
|
|
|
- }
|
|
|
|
|
- // 转成数组
|
|
|
|
|
- $rsArr = json_decode($body, true);
|
|
|
|
|
- if (empty($rsArr) || !is_array($rsArr)) {
|
|
|
|
|
- return _error('获取区块高度api返回数据异常,json转换失败');
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if ($rsArr['status'] != '1') {
|
|
|
|
|
- return _error($rsArr['message'] . ' -- ' . $rsArr['result']);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- Cache::set('block_' . $time, _success($rsArr['result']), 3600);
|
|
|
|
|
- }
|
|
|
|
|
- //获取开始预约前的区块高度
|
|
|
|
|
- return Cache::get('block_' . $time);
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- public function getBlcokNoByCache($time){
|
|
|
|
|
- if(!Cache::has('block')){
|
|
|
|
|
- $get_block = (new BscApi())->getBlockNoByTime($start_time);
|
|
|
|
|
- if($get_block['code'] == 0){
|
|
|
|
|
- Log::info($get_block['msg'] . date('Y-m-d H:i:s'));
|
|
|
|
|
- dump('获取区块高度有误');
|
|
|
|
|
- dump($get_block);
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- Cache::set('block', $get_block['data'], 3600);
|
|
|
|
|
|
|
+ if($typeId == ProductTeac::Sell) {
|
|
|
|
|
+ $asset = Asset::TEAC ;
|
|
|
|
|
+ $action = LedgerTeacChangeModel::SellCancel;
|
|
|
|
|
+ }else{
|
|
|
|
|
+ $asset = Asset::TOKEN ;
|
|
|
|
|
+ $action = LedgerTokenChangeModel::BuyCancel;
|
|
|
}
|
|
}
|
|
|
- //获取开始预约前的区块高度
|
|
|
|
|
- $start_block = Cache::get('block');
|
|
|
|
|
|
|
+ return Loader::model('LedgerWalletModel')->changeWalletAccount($uid, $asset, $stock, $action, $uid);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
|
}
|
|
}
|