RegisterRequest.php
2.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
namespace App\Http\Container\AppSection\Requests;
use App\Http\Request\PhoneCodeRequest;
use App\Models\User;
use App\Support\BusinessCode;
use Hikoon\LaravelApi\Exceptions\ValidationException;
class RegisterRequest extends PhoneCodeRequest
{
/**
* @var string
*/
protected string $areaName = 'area_code';
/**
* @throws \Hikoon\LaravelApi\Exceptions\ValidationException
* @throws \RedisException
*/
public function passedValidation(): void
{
parent::passedValidation();
$this->setCode($this->input('code'), 'register', 'app');
if ($this->checkPhoneExist()) {
throw new ValidationException(BusinessCode::PHONE_EXISTS);
}
if (!$this->checkSmsKey()) {
throw new ValidationException(BusinessCode::SMS_CODE_ERROR);
}
}
/**
* @return array
*/
public function rules(): array
{
return array_merge(parent::rules(), [
'nick_name' => 'required|string|between:2,100|unique:' . User::class . ',nick_name,NULL,id,deleted_at,NULL',
'real_name' => 'required|string|between:2,100',
'email' => 'required|email|unique:' . User::class . ',email,NULL,id,deleted_at,NULL',
'register_type' => 'required|integer|in:1,2',
'register_remark' => 'exclude_unless:register_type,1|required|string|between:0,200',
'inviter_id' => 'exclude_unless:register_type,2|required|integer|exists:' . User::class . ',id,deleted_at,NULL',
]);
}
/**
* @return array
*/
public function messages(): array
{
return array_merge(parent::messages(), [
'nick_name.required' => '请输入艺名',
'nick_name.between' => '艺名长度区间为:min~:max',
'nick_name.unique' => '艺名已被注册',
'real_name.required' => '请输入实名',
'real_name.between' => '实名长度区间为:min~:max',
'email.required' => '请输入邮箱地址',
'email.email' => '邮箱地址格式不正确',
'email.unique' => '邮箱地址已被注册',
'register_type.required' => '请选择来源渠道',
'register_type.integer' => '来源渠道类型错误',
'register_type.in' => '来源渠道不在指定范围内',
'register_remark.required' => '请输入来源说明',
'register_remark.between' => '来源说明长度区间为:min~:max字节',
'inviter_id.required' => '请选择推荐用户',
'inviter_id.integer' => '推荐用户类型错误',
'inviter_id.exists' => '推荐用户不存在'
]);
}
}