| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- <?php
- namespace App\Module\AppGame\Service;
- use App\Module\System\Services\OrderNo;
- use App\Module\Transaction\Enums\ACCOUNT_TYPE;
- use App\Module\Transaction\Enums\TRANSACTION_TYPE;
- use Composer\DependencyResolver\Transaction;
- /**
- * 交易单
- */
- class TransactionService
- {
- /**
- * @param $coinType
- * @param TRANSACTION_TYPE $type
- * @param $userId
- * @param $amount
- * @param $addressId
- * @return true
- */
- public static function createTransaction($coinType, TRANSACTION_TYPE $type, $userId, $amount, $addressId = 0,$toAddress = '')
- {
- $service = new \App\Module\Transaction\Services\TransactionService();
- $amount = $amount * 10000000;
- $transactionId = 0;
- // 充值单
- if ($type->value == 1) {
- $transactionId = $service->createRecharge($userId, $coinType, $type, $amount, $addressId);
- }
- // 转赠单
- if ($type->value == TRANSACTION_TYPE::TRANSFER->value) {
- $transactionId = $service->createTransfer($userId, $coinType, $type, $amount, $addressId);
- }
- if ($type->value == TRANSACTION_TYPE::WITHDRAWAL->value) {
- $transactionId = $service->createWithdrawal($userId, $coinType, $type, $amount,toAddress: $toAddress);
- }
- return $transactionId;
- }
- /**
- * @param $userId
- * @param $transactionId
- * @param $isFirst
- * @return array
- * 订单详情
- */
- public static function getDetail($userId, $transactionId)
- {
- $service = new \App\Module\Transaction\Services\TransactionService();
- $transactionData = $service->getDetail($userId, $transactionId);
- // 判断交易单类型
- $return = [];
- $detailData = [];
- if ($transactionData->type == TRANSACTION_TYPE::RECHARGE->value) {
- $detailData = $service->getRechargeDetail($transactionId);
- }
- if ($transactionData->type == TRANSACTION_TYPE::TRANSFER->value) {
- $detailData = $service->getTransferDetail($transactionId);
- }
- if ($transactionData->type == TRANSACTION_TYPE::WITHDRAWAL->value) {
- $detailData = $service->getWithdrawalDetail($transactionId);
- }
- $return = [
- // deposit_id 充值单ID
- 'deposit_id' => $transactionData->id,
- // deposit_no 充值单,单号
- 'deposit_no' => $transactionData->transaction_no,
- // status 状态
- 'status' => $transactionData->status,
- // tx_hash 交易哈希
- 'tx_hash' => $detailData->tx_hash,
- // pay_address 付款地址(用户地址)
- 'pay_address' => $detailData->from_address,
- // receive_address 收款地址
- 'receive_address' => $detailData->to_address,
- // create_times 创建时间,时间戳(秒)
- 'create_times' => $transactionData->created_at,
- // ok_times 成交时间
- 'ok_times' => $transactionData->ok_time ?? 0,
- // amount 金额
- 'amount' => $transactionData->amount
- ];
- return $return;
- }
- /**
- * @param $id
- * @param $hash
- * @return bool
- * 充值单增加hash
- */
- public static function addTx($id,$hash)
- {
- $service = new \App\Module\Transaction\Services\TransactionService();
- $res = $service->addHash($id, $hash);
- if (!$res) {
- return false;
- }
- return true;
- }
- }
|