添加 年龄限制

This commit is contained in:
iVampireSP.com 2023-01-15 09:25:34 +08:00
parent c692475809
commit 96320162fc
No known key found for this signature in database
GPG Key ID: 2F7B001CA27A8132
4 changed files with 26 additions and 4 deletions

View File

@ -5,6 +5,7 @@
use App\Http\Controllers\Controller;
use App\Support\RealNameSupport;
use Illuminate\Http\Request;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Cache;
class RealNameController extends Controller
@ -16,6 +17,18 @@ public function store(Request $request)
'id_card' => 'required|string|size:18|unique:users,id_card',
]);
$realNameSupport = new RealNameSupport();
$birthday = $realNameSupport->getBirthday($request->input('id_card'));
// 检查年龄是否在区间内 settings.supports.real_name.min_age ~ settings.supports.real_name.max_age
if (Carbon::now()->diffInYears($birthday) < config('settings.supports.real_name.min_age') || Carbon::now()->diffInYears($birthday) > config('settings.supports.real_name.max_age')) {
$message = '至少需要 ' . config('settings.supports.real_name.min_age') . ' 岁,最大 ' . config('settings.supports.real_name.max_age') . ' 岁。';
return back()->with('error', $message);
}
$user = $request->user();
if ($user->real_name_verified_at !== null) {
@ -26,7 +39,6 @@ public function store(Request $request)
return back()->with('error', '您的余额不足。请保证余额大于 1 元。');
}
$realNameSupport = new RealNameSupport();
$output = $realNameSupport->create($user->id, $request->input('real_name'), $request->input('id_card'));
// 标记用户正在实名,缓存 600s

View File

@ -91,8 +91,6 @@ protected static function boot()
$user->birthday_at = null;
}
}
}
});

View File

@ -3,6 +3,7 @@
namespace App\Support;
use Illuminate\Http\Client\PendingRequest;
use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Str;
@ -139,4 +140,13 @@ private function verifyIfSuccess(string $request, string $sign): bool
return $flag === 1;
}
public function getBirthday(string $id_card): string
{
$year = substr($id_card, 6, 4);
$month = substr($id_card, 10, 2);
$day = substr($id_card, 12, 2);
return $year . '-' . $month . '-' . $day;
}
}

View File

@ -25,7 +25,9 @@
],
'supports' => [
'real_name' => [
'code' => env('SUPPORT_REAL_NAME_APP_CODE')
'code' => env('SUPPORT_REAL_NAME_APP_CODE'),
'min_age' => env('SUPPORT_REAL_NAME_MIN_AGE', 13),
'max_age' => env('SUPPORT_REAL_NAME_MAX_AGE', 60),
]
],
'forum' => [