Files
water_new/modules/User/Http/Controllers/Api/Certification/IndexController.php
2023-03-08 09:16:04 +08:00

91 lines
2.5 KiB
PHP

<?php
namespace Modules\User\Http\Controllers\Api\Certification;
use App\Api\Controllers\Controller;
use Illuminate\Http\JsonResponse;
use Jason\Api\Api;
use Modules\User\Http\Requests\CertificationRequest;
use Modules\User\Http\Resources\UserCertificationResource;
use Modules\User\Models\UserCertification;
use Modules\User\Models\UserCertificationConfig;
class IndexController extends Controller
{
public function index()
{
$user = Api::user();
if (! $user->certification) {
return $this->failed('暂无认证记录');
}
return $this->success(new UserCertificationResource($user->certification));
}
/**
* Notes : 判定认证与秘钥
*
* @Date : 2021/5/17 16:52
* @Author : Mr.wang
* @return JsonResponse
*/
public function certified(): JsonResponse
{
$user = Api::user();
if (! $user) {
return $this->success(false);
}
return $this->success((bool) $user->certification);
}
/**
* Notes : 保存认证信息
*
* @Date : 2021/7/20 10:24 上午
* @Author : <Jason.C>
* @param CertificationRequest $request
* @return mixed
*/
public function store(CertificationRequest $request)
{
$user = Api::user();
if ($user->certification) {
return $this->failed('用户已存在认证信息');
}
$keys = [
'name' => $request->name,
'idcard' => $request->id_card,
'front_card' => $request->front_card ?? '',
'back_card' => $request->back_card ?? '',
];
$config = new UserCertificationConfig();
$data = $config->autoVerified($keys);
if ($data['code'] == 1) {
$verified = 1;
} else {
return $this->failed($data['message']);
}
$result = UserCertification::updateOrCreate([
'user_id' => $user->id,
], [
'name' => $request->name,
'id_card' => $request->id_card,
'front_card' => $request->front_card ?? '',
'back_card' => $request->back_card ?? '',
'verified' => $verified,
]);
if ($result) {
$user->info()->update([
'nickname' => $request->name,
]);
return $this->success('操作成功');
} else {
return $this->failed('操作失败');
}
}
}