chore: code style and type declaration improvements

This commit is contained in:
xboard
2025-07-15 02:55:58 +08:00
parent b55a56d6a7
commit d30e9cb30b
6 changed files with 68 additions and 54 deletions
+4 -4
View File
@@ -266,9 +266,9 @@ class XboardInstall extends Command
/** /**
* 配置 MySQL 数据库 * 配置 MySQL 数据库
* *
* @return array|null * @return array
*/ */
private function configureMysql(): ?array private function configureMysql(): array
{ {
while (true) { while (true) {
$envConfig = [ $envConfig = [
@@ -312,9 +312,9 @@ class XboardInstall extends Command
/** /**
* 配置 PostgreSQL 数据库 * 配置 PostgreSQL 数据库
* *
* @return array|null * @return array
*/ */
private function configurePostgresql(): ?array private function configurePostgresql(): array
{ {
while (true) { while (true) {
$envConfig = [ $envConfig = [
@@ -111,22 +111,30 @@ class GiftCardController extends Controller
->orderBy('created_at', 'desc') ->orderBy('created_at', 'desc')
->paginate($perPage); ->paginate($perPage);
$data = $usages->getCollection()->map(function ($usage) { $data = $usages->getCollection()->map(function (GiftCardUsage $usage) {
return [ return [
'id' => $usage->id, 'id' => $usage->id,
'code' => substr($usage->code->code, 0, 8) . '****', // 脱敏处理 'code' => ($usage->code instanceof \App\Models\GiftCardCode && $usage->code->code)
'template_name' => $usage->template->name, ? (substr($usage->code->code, 0, 8) . '****')
'template_type' => $usage->template->type, : '',
'template_type_name' => $usage->template->type_name, 'template_name' => $usage->template->name ?? '',
'template_type' => $usage->template->type ?? '',
'template_type_name' => $usage->template->type_name ?? '',
'rewards_given' => $usage->rewards_given, 'rewards_given' => $usage->rewards_given,
'invite_rewards' => $usage->invite_rewards, 'invite_rewards' => $usage->invite_rewards,
'multiplier_applied' => $usage->multiplier_applied, 'multiplier_applied' => $usage->multiplier_applied,
'created_at' => $usage->created_at, 'created_at' => $usage->created_at,
]; ];
}); })->values();
$usages->setCollection($data); return response()->json([
'data' => $data,
return $this->paginate($usages); 'pagination' => [
'current_page' => $usages->currentPage(),
'last_page' => $usages->lastPage(),
'per_page' => $usages->perPage(),
'total' => $usages->total(),
],
]);
} }
/** /**
@@ -149,20 +157,20 @@ class GiftCardController extends Controller
return $this->success([ return $this->success([
'id' => $usage->id, 'id' => $usage->id,
'code' => $usage->code->code, 'code' => $usage->code->code ?? '',
'template' => [ 'template' => [
'name' => $usage->template->name, 'name' => $usage->template->name ?? '',
'description' => $usage->template->description, 'description' => $usage->template->description ?? '',
'type' => $usage->template->type, 'type' => $usage->template->type ?? '',
'type_name' => $usage->template->type_name, 'type_name' => $usage->template->type_name ?? '',
'icon' => $usage->template->icon, 'icon' => $usage->template->icon ?? '',
'theme_color' => $usage->template->theme_color, 'theme_color' => $usage->template->theme_color ?? '',
], ],
'rewards_given' => $usage->rewards_given, 'rewards_given' => $usage->rewards_given,
'invite_rewards' => $usage->invite_rewards, 'invite_rewards' => $usage->invite_rewards,
'invite_user' => $usage->inviteUser ? [ 'invite_user' => $usage->inviteUser ? [
'id' => $usage->inviteUser->id, 'id' => $usage->inviteUser->id ?? '',
'email' => substr($usage->inviteUser->email, 0, 3) . '***@***', 'email' => isset($usage->inviteUser->email) ? (substr($usage->inviteUser->email, 0, 3) . '***@***') : '',
] : null, ] : null,
'user_level_at_use' => $usage->user_level_at_use, 'user_level_at_use' => $usage->user_level_at_use,
'plan_id_at_use' => $usage->plan_id_at_use, 'plan_id_at_use' => $usage->plan_id_at_use,
@@ -9,6 +9,7 @@ use App\Models\GiftCardUsage;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Log;
use Illuminate\Validation\Rule; use Illuminate\Validation\Rule;
use Illuminate\Support\Facades\DB;
class GiftCardController extends Controller class GiftCardController extends Controller
{ {
@@ -62,10 +63,17 @@ class GiftCardController extends Controller
'codes_count' => $template->codes()->count(), 'codes_count' => $template->codes()->count(),
'used_count' => $template->usages()->count(), 'used_count' => $template->usages()->count(),
]; ];
}); })->values();
$templates->setCollection($data); return response()->json([
return $this->paginate($templates); 'data' => $data,
'pagination' => [
'current_page' => $templates->currentPage(),
'last_page' => $templates->lastPage(),
'per_page' => $templates->perPage(),
'total' => $templates->total(),
],
]);
} }
/** /**
@@ -287,15 +295,7 @@ class GiftCardController extends Controller
$templateType = $template->type ?? ''; $templateType = $template->type ?? '';
$templateRewards = $template->rewards ? json_encode($template->rewards, JSON_UNESCAPED_UNICODE) : ''; $templateRewards = $template->rewards ? json_encode($template->rewards, JSON_UNESCAPED_UNICODE) : '';
// 状态判断 // 状态判断
if ($code->disabled) { $status = $code->status_name;
$status = '已禁用';
} elseif ($code->used_at) {
$status = '已使用';
} elseif ($code->expires_at && $code->expires_at < time()) {
$status = '已过期';
} else {
$status = '未使用';
}
$usedBy = $code->user_id ?? ''; $usedBy = $code->user_id ?? '';
$usedAt = $code->used_at ? date('Y-m-d H:i:s', $code->used_at) : ''; $usedAt = $code->used_at ? date('Y-m-d H:i:s', $code->used_at) : '';
$remark = $code->remark ?? ''; $remark = $code->remark ?? '';
@@ -376,23 +376,30 @@ class GiftCardController extends Controller
return [ return [
'id' => $code->id, 'id' => $code->id,
'template_id' => $code->template_id, 'template_id' => $code->template_id,
'template_name' => $code->template->name, 'template_name' => $code->template->name ?? '',
'code' => $code->code, 'code' => $code->code,
'batch_id' => $code->batch_id, 'batch_id' => $code->batch_id,
'status' => $code->status, 'status' => $code->status,
'status_name' => $code->status_name, 'status_name' => $code->status_name,
'user_id' => $code->user_id, 'user_id' => $code->user_id,
'user_email' => $code->user ? substr($code->user->email, 0, 3) . '***@***' : null, 'user_email' => $code->user ? (substr($code->user->email ?? '', 0, 3) . '***@***') : null,
'used_at' => $code->used_at, 'used_at' => $code->used_at,
'expires_at' => $code->expires_at, 'expires_at' => $code->expires_at,
'usage_count' => $code->usage_count, 'usage_count' => $code->usage_count,
'max_usage' => $code->max_usage, 'max_usage' => $code->max_usage,
'created_at' => $code->created_at, 'created_at' => $code->created_at,
]; ];
}); })->values();
$codes->setCollection($data); return response()->json([
return $this->paginate($codes); 'data' => $data,
'pagination' => [
'current_page' => $codes->currentPage(),
'last_page' => $codes->lastPage(),
'per_page' => $codes->perPage(),
'total' => $codes->total(),
],
]);
} }
/** /**
@@ -476,18 +483,16 @@ class GiftCardController extends Controller
$data = $usages->getCollection()->map(function ($usage) { $data = $usages->getCollection()->map(function ($usage) {
return [ return [
'id' => $usage->id, 'id' => $usage->id,
'code' => $usage->code->code, 'code' => $usage->code->code ?? '',
'template_name' => $usage->template->name, 'template_name' => $usage->template->name ?? '',
'user_email' => $usage->user->email, 'user_email' => $usage->user->email ?? '',
'invite_user_email' => $usage->inviteUser ? substr($usage->inviteUser->email, 0, 3) . '***@***' : null, 'invite_user_email' => $usage->inviteUser ? (substr($usage->inviteUser->email ?? '', 0, 3) . '***@***') : null,
'rewards_given' => $usage->rewards_given, 'rewards_given' => $usage->rewards_given,
'invite_rewards' => $usage->invite_rewards, 'invite_rewards' => $usage->invite_rewards,
'multiplier_applied' => $usage->multiplier_applied, 'multiplier_applied' => $usage->multiplier_applied,
// 'ip_address' => $usage->ip_address,
'created_at' => $usage->created_at, 'created_at' => $usage->created_at,
]; ];
}); })->values();
return response()->json([ return response()->json([
'data' => $data, 'data' => $data,
'pagination' => [ 'pagination' => [
@@ -522,7 +527,7 @@ class GiftCardController extends Controller
]; ];
// 每日使用统计 // 每日使用统计
$driver = GiftCardUsage::query()->getConnection()->getDriverName(); $driver = DB::connection()->getDriverName();
$dateExpression = "date(created_at, 'unixepoch')"; // Default for SQLite $dateExpression = "date(created_at, 'unixepoch')"; // Default for SQLite
if ($driver === 'mysql') { if ($driver === 'mysql') {
$dateExpression = 'DATE(FROM_UNIXTIME(created_at))'; $dateExpression = 'DATE(FROM_UNIXTIME(created_at))';
@@ -543,9 +548,9 @@ class GiftCardController extends Controller
->get() ->get()
->map(function ($item) { ->map(function ($item) {
return [ return [
'template_name' => $item->template->name, 'template_name' => $item->template->name ?? '',
'type_name' => $item->template->type_name, 'type_name' => $item->template->type_name ?? '',
'count' => $item->count, 'count' => $item->count ?? 0,
]; ];
}); });
+2 -1
View File
@@ -172,7 +172,8 @@ class GiftCardCode extends Model
public static function generateCode(string $prefix = 'GC'): string public static function generateCode(string $prefix = 'GC'): string
{ {
do { do {
$code = $prefix . strtoupper(substr(md5(uniqid(mt_rand(), true)), 0, 12)); $safePrefix = (string) $prefix;
$code = $safePrefix . strtoupper(substr(md5(uniqid($safePrefix . mt_rand(), true)), 0, 12));
} while (self::where('code', $code)->exists()); } while (self::where('code', $code)->exists());
return $code; return $code;
+3 -2
View File
@@ -2,6 +2,7 @@
namespace App\Models; namespace App\Models;
use Dflydev\DotAccessData\Data;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\HasMany;
@@ -200,7 +201,7 @@ class GiftCardTemplate extends Model
if (isset($festivalConfig['start_time']) && isset($festivalConfig['end_time'])) { if (isset($festivalConfig['start_time']) && isset($festivalConfig['end_time'])) {
if ($now >= $festivalConfig['start_time'] && $now <= $festivalConfig['end_time']) { if ($now >= $festivalConfig['start_time'] && $now <= $festivalConfig['end_time']) {
$bonus = (float) ($festivalConfig['festival_bonus'] ?? 1.0); $bonus = data_get($festivalConfig, 'festival_bonus', 1.0);
if ($bonus > 1.0) { if ($bonus > 1.0) {
foreach ($actualRewards as $key => &$value) { foreach ($actualRewards as $key => &$value) {
if (is_numeric($value)) { if (is_numeric($value)) {
@@ -240,7 +241,7 @@ class GiftCardTemplate extends Model
->orderBy('created_at', 'desc') ->orderBy('created_at', 'desc')
->first(); ->first();
if ($lastUsage) { if ($lastUsage && isset($lastUsage->created_at)) {
$cooldownTime = $lastUsage->created_at + ($conditions['cooldown_hours'] * 3600); $cooldownTime = $lastUsage->created_at + ($conditions['cooldown_hours'] * 3600);
if (time() < $cooldownTime) { if (time() < $cooldownTime) {
return false; return false;
-1
View File
@@ -38,7 +38,6 @@ class OrderService
* @param Plan $plan * @param Plan $plan
* @param string $period * @param string $period
* @param string|null $couponCode * @param string|null $couponCode
* @param array|null $telegramMessageIds
* @return Order * @return Order
* @throws ApiException * @throws ApiException
*/ */