优化页面和模型
This commit is contained in:
@@ -9,11 +9,11 @@ use app\common\controller\Api;
|
||||
use app\common\facade\Token;
|
||||
use app\common\library\Auth as UserAuth;
|
||||
use app\common\model\MallItem;
|
||||
use app\common\model\MallPlayxClaimLog;
|
||||
use app\common\model\MallPlayxDailyPush;
|
||||
use app\common\model\MallPlayxSession;
|
||||
use app\common\model\MallPlayxOrder;
|
||||
use app\common\model\MallPlayxUserAsset;
|
||||
use app\common\model\MallClaimLog;
|
||||
use app\common\model\MallDailyPush;
|
||||
use app\common\model\MallSession;
|
||||
use app\common\model\MallOrder;
|
||||
use app\common\model\MallUserAsset;
|
||||
use app\common\model\MallAddress;
|
||||
use support\think\Db;
|
||||
use Webman\Http\Request;
|
||||
@@ -25,17 +25,17 @@ use support\Response;
|
||||
class Playx extends Api
|
||||
{
|
||||
/**
|
||||
* 从请求解析 mall_playx_user_asset.id(muser token、session、user_id 均指向资产表主键或 playx_user_id)
|
||||
* 从请求解析 mall_user_asset.id(muser token、session、user_id 均指向资产表主键或 playx_user_id)
|
||||
*/
|
||||
private function resolvePlayxAssetIdFromRequest(Request $request): ?int
|
||||
{
|
||||
$sessionId = strval($request->post('session_id', $request->get('session_id', '')));
|
||||
if ($sessionId !== '') {
|
||||
$session = MallPlayxSession::where('session_id', $sessionId)->find();
|
||||
$session = MallSession::where('session_id', $sessionId)->find();
|
||||
if ($session) {
|
||||
$expireTime = intval($session->expire_time ?? 0);
|
||||
if ($expireTime > time()) {
|
||||
$asset = MallPlayxUserAsset::where('playx_user_id', strval($session->user_id ?? ''))->find();
|
||||
$asset = MallUserAsset::where('playx_user_id', strval($session->user_id ?? ''))->find();
|
||||
if ($asset) {
|
||||
return intval($asset->getKey());
|
||||
}
|
||||
@@ -63,7 +63,7 @@ class Playx extends Api
|
||||
return intval($userId);
|
||||
}
|
||||
|
||||
$asset = MallPlayxUserAsset::where('playx_user_id', $userId)->find();
|
||||
$asset = MallUserAsset::where('playx_user_id', $userId)->find();
|
||||
if ($asset) {
|
||||
return intval($asset->getKey());
|
||||
}
|
||||
@@ -91,7 +91,7 @@ class Playx extends Api
|
||||
{
|
||||
for ($i = 0; $i < 8; $i++) {
|
||||
$candidate = '13' . str_pad(strval(mt_rand(0, 999999999)), 9, '0', STR_PAD_LEFT);
|
||||
if (!MallPlayxUserAsset::where('phone', $candidate)->find()) {
|
||||
if (!MallUserAsset::where('phone', $candidate)->find()) {
|
||||
return $candidate;
|
||||
}
|
||||
}
|
||||
@@ -99,9 +99,9 @@ class Playx extends Api
|
||||
return null;
|
||||
}
|
||||
|
||||
private function ensureAssetForPlayx(string $playxUserId, string $username): ?MallPlayxUserAsset
|
||||
private function ensureAssetForPlayx(string $playxUserId, string $username): ?MallUserAsset
|
||||
{
|
||||
$asset = MallPlayxUserAsset::where('playx_user_id', $playxUserId)->find();
|
||||
$asset = MallUserAsset::where('playx_user_id', $playxUserId)->find();
|
||||
if ($asset) {
|
||||
return $asset;
|
||||
}
|
||||
@@ -110,7 +110,7 @@ class Playx extends Api
|
||||
if ($effectiveUsername === '') {
|
||||
$effectiveUsername = 'playx_' . $playxUserId;
|
||||
}
|
||||
$byName = MallPlayxUserAsset::where('username', $effectiveUsername)->find();
|
||||
$byName = MallUserAsset::where('username', $effectiveUsername)->find();
|
||||
if ($byName) {
|
||||
$byName->playx_user_id = $playxUserId;
|
||||
$byName->save();
|
||||
@@ -125,7 +125,7 @@ class Playx extends Api
|
||||
$pwd = hash_password(Random::build('alnum', 16));
|
||||
$now = time();
|
||||
|
||||
return MallPlayxUserAsset::create([
|
||||
return MallUserAsset::create([
|
||||
'playx_user_id' => $playxUserId,
|
||||
'username' => $effectiveUsername,
|
||||
'phone' => $phone,
|
||||
@@ -141,9 +141,9 @@ class Playx extends Api
|
||||
]);
|
||||
}
|
||||
|
||||
private function getAssetById(int $assetId): ?MallPlayxUserAsset
|
||||
private function getAssetById(int $assetId): ?MallUserAsset
|
||||
{
|
||||
return MallPlayxUserAsset::where('id', $assetId)->find();
|
||||
return MallUserAsset::where('id', $assetId)->find();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -219,7 +219,7 @@ class Playx extends Api
|
||||
$lifetimeTotalDeposit = $m['lty_deposit'] ?? 0;
|
||||
$lifetimeTotalWithdraw = $m['lty_withdrawal'] ?? 0;
|
||||
|
||||
$exists = MallPlayxDailyPush::where('user_id', $playxUserId)->where('date', $date)->find();
|
||||
$exists = MallDailyPush::where('user_id', $playxUserId)->where('date', $date)->find();
|
||||
if ($exists) {
|
||||
$results[] = [
|
||||
'user_id' => $playxUserId,
|
||||
@@ -232,7 +232,7 @@ class Playx extends Api
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
MallPlayxDailyPush::create([
|
||||
MallDailyPush::create([
|
||||
'user_id' => $playxUserId,
|
||||
'date' => $date,
|
||||
'username' => $username,
|
||||
@@ -304,7 +304,7 @@ class Playx extends Api
|
||||
return $this->error(__('Missing required fields: request_id, date, user_id'));
|
||||
}
|
||||
|
||||
$exists = MallPlayxDailyPush::where('user_id', $playxUserId)->where('date', $date)->find();
|
||||
$exists = MallDailyPush::where('user_id', $playxUserId)->where('date', $date)->find();
|
||||
if ($exists) {
|
||||
return $this->success('', [
|
||||
'request_id' => $requestId,
|
||||
@@ -316,7 +316,7 @@ class Playx extends Api
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
MallPlayxDailyPush::create([
|
||||
MallDailyPush::create([
|
||||
'user_id' => $playxUserId,
|
||||
'date' => $date,
|
||||
'username' => $body['username'] ?? '',
|
||||
@@ -427,7 +427,7 @@ class Playx extends Api
|
||||
}
|
||||
|
||||
$sessionId = bin2hex(random_bytes(16));
|
||||
MallPlayxSession::create([
|
||||
MallSession::create([
|
||||
'session_id' => $sessionId,
|
||||
'user_id' => $userId,
|
||||
'username' => $username,
|
||||
@@ -448,7 +448,7 @@ class Playx extends Api
|
||||
}
|
||||
|
||||
/**
|
||||
* 本地校验 temLogin 等写入的商城 token(类型 muser),写入 mall_playx_session
|
||||
* 本地校验 temLogin 等写入的商城 token(类型 muser),写入 mall_session
|
||||
*/
|
||||
private function verifyTokenLocal(string $token): Response
|
||||
{
|
||||
@@ -465,7 +465,7 @@ class Playx extends Api
|
||||
return $this->error(__('Invalid token'), null, 0, ['statusCode' => 401]);
|
||||
}
|
||||
|
||||
$asset = MallPlayxUserAsset::where('id', $assetId)->find();
|
||||
$asset = MallUserAsset::where('id', $assetId)->find();
|
||||
if (!$asset) {
|
||||
return $this->error(__('Invalid token'), null, 0, ['statusCode' => 401]);
|
||||
}
|
||||
@@ -477,7 +477,7 @@ class Playx extends Api
|
||||
|
||||
$expireAt = time() + intval(config('playx.session_expire_seconds', 3600));
|
||||
$sessionId = bin2hex(random_bytes(16));
|
||||
MallPlayxSession::create([
|
||||
MallSession::create([
|
||||
'session_id' => $sessionId,
|
||||
'user_id' => $playxUserId,
|
||||
'username' => strval($asset->username ?? ''),
|
||||
@@ -556,7 +556,7 @@ class Playx extends Api
|
||||
}
|
||||
$playxUserId = strval($asset->playx_user_id);
|
||||
|
||||
$exists = MallPlayxClaimLog::where('claim_request_id', $claimRequestId)->find();
|
||||
$exists = MallClaimLog::where('claim_request_id', $claimRequestId)->find();
|
||||
if ($exists) {
|
||||
return $this->success('', $this->formatAsset($asset));
|
||||
}
|
||||
@@ -576,7 +576,7 @@ class Playx extends Api
|
||||
|
||||
Db::startTrans();
|
||||
try {
|
||||
MallPlayxClaimLog::create([
|
||||
MallClaimLog::create([
|
||||
'claim_request_id' => $claimRequestId,
|
||||
'user_id' => $playxUserId,
|
||||
'claimed_amount' => $canClaim,
|
||||
@@ -667,7 +667,7 @@ class Playx extends Api
|
||||
return $this->success('', ['list' => []]);
|
||||
}
|
||||
|
||||
$list = MallPlayxOrder::where('user_id', strval($asset->playx_user_id))
|
||||
$list = MallOrder::where('user_id', strval($asset->playx_user_id))
|
||||
->with(['mallItem'])
|
||||
->order('id', 'desc')
|
||||
->limit(100)
|
||||
@@ -867,7 +867,7 @@ class Playx extends Api
|
||||
return $this->success('', ['deleted' => true]);
|
||||
}
|
||||
|
||||
private function formatAsset(?MallPlayxUserAsset $asset): array
|
||||
private function formatAsset(?MallUserAsset $asset): array
|
||||
{
|
||||
if (!$asset) {
|
||||
return [
|
||||
@@ -924,16 +924,16 @@ class Playx extends Api
|
||||
$asset->save();
|
||||
|
||||
$orderNo = 'BONUS_ORD' . date('YmdHis') . mt_rand(1000, 9999);
|
||||
$order = MallPlayxOrder::create([
|
||||
$order = MallOrder::create([
|
||||
'user_id' => $playxUserId,
|
||||
'type' => MallPlayxOrder::TYPE_BONUS,
|
||||
'status' => MallPlayxOrder::STATUS_PENDING,
|
||||
'type' => MallOrder::TYPE_BONUS,
|
||||
'status' => MallOrder::STATUS_PENDING,
|
||||
'mall_item_id' => $item->id,
|
||||
'points_cost' => $item->score,
|
||||
'amount' => $amount,
|
||||
'multiplier' => $multiplier,
|
||||
'external_transaction_id' => $orderNo,
|
||||
'grant_status' => MallPlayxOrder::GRANT_NOT_SENT,
|
||||
'grant_status' => MallOrder::GRANT_NOT_SENT,
|
||||
'create_time' => time(),
|
||||
'update_time' => time(),
|
||||
]);
|
||||
@@ -990,10 +990,10 @@ class Playx extends Api
|
||||
$asset->available_points -= $item->score;
|
||||
$asset->save();
|
||||
|
||||
MallPlayxOrder::create([
|
||||
MallOrder::create([
|
||||
'user_id' => $playxUserId,
|
||||
'type' => MallPlayxOrder::TYPE_PHYSICAL,
|
||||
'status' => MallPlayxOrder::STATUS_PENDING,
|
||||
'type' => MallOrder::TYPE_PHYSICAL,
|
||||
'status' => MallOrder::STATUS_PENDING,
|
||||
'mall_item_id' => $item->id,
|
||||
'points_cost' => $item->score,
|
||||
'receiver_name' => $receiverName,
|
||||
@@ -1053,16 +1053,16 @@ class Playx extends Api
|
||||
$asset->save();
|
||||
|
||||
$orderNo = 'WITHDRAW_ORD' . date('YmdHis') . mt_rand(1000, 9999);
|
||||
$order = MallPlayxOrder::create([
|
||||
$order = MallOrder::create([
|
||||
'user_id' => $playxUserId,
|
||||
'type' => MallPlayxOrder::TYPE_WITHDRAW,
|
||||
'status' => MallPlayxOrder::STATUS_PENDING,
|
||||
'type' => MallOrder::TYPE_WITHDRAW,
|
||||
'status' => MallOrder::STATUS_PENDING,
|
||||
'mall_item_id' => $item->id,
|
||||
'points_cost' => $item->score,
|
||||
'amount' => $amount,
|
||||
'multiplier' => $multiplier,
|
||||
'external_transaction_id' => $orderNo,
|
||||
'grant_status' => MallPlayxOrder::GRANT_NOT_SENT,
|
||||
'grant_status' => MallOrder::GRANT_NOT_SENT,
|
||||
'create_time' => time(),
|
||||
'update_time' => time(),
|
||||
]);
|
||||
@@ -1084,7 +1084,7 @@ class Playx extends Api
|
||||
]);
|
||||
}
|
||||
|
||||
private function callPlayxBonusGrant(MallPlayxOrder $order, MallItem $item, string $userId): void
|
||||
private function callPlayxBonusGrant(MallOrder $order, MallItem $item, string $userId): void
|
||||
{
|
||||
$baseUrl = rtrim(config('playx.api.base_url', ''), '/');
|
||||
$url = config('playx.api.bonus_grant_url', '/api/v1/bonus/grant');
|
||||
@@ -1109,21 +1109,21 @@ class Playx extends Api
|
||||
$data = json_decode(strval($res->getBody()), true);
|
||||
if ($res->getStatusCode() === 200 && ($data['status'] ?? '') === 'accepted') {
|
||||
$order->playx_transaction_id = $data['playx_transaction_id'] ?? '';
|
||||
$order->grant_status = MallPlayxOrder::GRANT_ACCEPTED;
|
||||
$order->grant_status = MallOrder::GRANT_ACCEPTED;
|
||||
$order->save();
|
||||
} else {
|
||||
$order->grant_status = MallPlayxOrder::GRANT_FAILED_RETRYABLE;
|
||||
$order->grant_status = MallOrder::GRANT_FAILED_RETRYABLE;
|
||||
$order->fail_reason = $data['message'] ?? 'unknown';
|
||||
$order->save();
|
||||
}
|
||||
} catch (\Throwable $e) {
|
||||
$order->grant_status = MallPlayxOrder::GRANT_FAILED_RETRYABLE;
|
||||
$order->grant_status = MallOrder::GRANT_FAILED_RETRYABLE;
|
||||
$order->fail_reason = $e->getMessage();
|
||||
$order->save();
|
||||
}
|
||||
}
|
||||
|
||||
private function callPlayxBalanceCredit(MallPlayxOrder $order, string $userId): void
|
||||
private function callPlayxBalanceCredit(MallOrder $order, string $userId): void
|
||||
{
|
||||
$baseUrl = rtrim(config('playx.api.base_url', ''), '/');
|
||||
$url = config('playx.api.balance_credit_url', '/api/v1/balance/credit');
|
||||
@@ -1145,15 +1145,15 @@ class Playx extends Api
|
||||
$data = json_decode(strval($res->getBody()), true);
|
||||
if ($res->getStatusCode() === 200 && ($data['status'] ?? '') === 'accepted') {
|
||||
$order->playx_transaction_id = $data['playx_transaction_id'] ?? '';
|
||||
$order->grant_status = MallPlayxOrder::GRANT_ACCEPTED;
|
||||
$order->grant_status = MallOrder::GRANT_ACCEPTED;
|
||||
$order->save();
|
||||
} else {
|
||||
$order->grant_status = MallPlayxOrder::GRANT_FAILED_RETRYABLE;
|
||||
$order->grant_status = MallOrder::GRANT_FAILED_RETRYABLE;
|
||||
$order->fail_reason = $data['message'] ?? 'unknown';
|
||||
$order->save();
|
||||
}
|
||||
} catch (\Throwable $e) {
|
||||
$order->grant_status = MallPlayxOrder::GRANT_FAILED_RETRYABLE;
|
||||
$order->grant_status = MallOrder::GRANT_FAILED_RETRYABLE;
|
||||
$order->fail_reason = $e->getMessage();
|
||||
$order->save();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user