203 lines
4.9 KiB
PHP
203 lines
4.9 KiB
PHP
<?php
|
|
|
|
namespace app\api\validate;
|
|
|
|
|
|
use app\common\validate\BaseValidate;
|
|
use app\common\model\user\{User,UserInfo,UserSigninRecord};
|
|
|
|
/**
|
|
* 用户验证器
|
|
* Class UserValidate
|
|
* @package app\shopapi\validate
|
|
*/
|
|
class UserValidate extends BaseValidate
|
|
{
|
|
|
|
protected $rule = [
|
|
'code' => 'require',
|
|
'card_name' => 'require|length:2,20',
|
|
'card_num' => 'require|length:6,32|checkCardNum',
|
|
'signin' => 'checkSignin',
|
|
'start' => 'checkMineStart',
|
|
'receive' => 'checkMineReceive',
|
|
];
|
|
|
|
protected $message = [
|
|
'code.require' => 'network.parameterAbnormality',//参数缺失
|
|
'card_name.require' => 'network.parameterAbnormality',//参数缺失
|
|
'card_name.length' => 'auth.realNameError',//请输入正确的姓名
|
|
'card_num.require' => 'network.parameterAbnormality',//参数缺失
|
|
'card_num.length' => 'auth.realNumError',//请输入正确的证件号
|
|
];
|
|
|
|
/**
|
|
* @notes 绑定/变更 手机号
|
|
* @return UserValidate
|
|
* @author BD
|
|
* @date 2023/9/21 19:15
|
|
*/
|
|
public function sceneBindMobile()
|
|
{
|
|
return $this->only(['mobile', 'code']);
|
|
}
|
|
|
|
/**
|
|
* @notes Google Authenticator校验
|
|
* @return UserValidate
|
|
* @author BD
|
|
* @date 2023/9/21 19:15
|
|
*/
|
|
public function sceneVerifyGoogle()
|
|
{
|
|
return $this->only(['code']);
|
|
}
|
|
|
|
/**
|
|
* @notes 邮箱校验
|
|
* @return UserValidate
|
|
* @author BD
|
|
* @date 2023/9/21 19:15
|
|
*/
|
|
public function sceneVerifyEmail()
|
|
{
|
|
return $this->only(['code']);
|
|
}
|
|
|
|
/**
|
|
* @notes 实名认证
|
|
* @return UserValidate
|
|
* @author BD
|
|
* @date 2023/9/21 19:15
|
|
*/
|
|
public function sceneVerifyRealname()
|
|
{
|
|
return $this->only(['card_name','card_num']);
|
|
}
|
|
|
|
/**
|
|
* @notes 签到
|
|
* @return UserValidate
|
|
* @author BD
|
|
* @date 2024/9/21 19:15
|
|
*/
|
|
public function sceneSignin()
|
|
{
|
|
return $this->only(['signin']);
|
|
}
|
|
|
|
/**
|
|
* @notes 矿机 启动
|
|
* @return UserValidate
|
|
* @author BD
|
|
* @date 2024/9/21 19:15
|
|
*/
|
|
public function sceneMineStart()
|
|
{
|
|
return $this->only(['start']);
|
|
}
|
|
|
|
/**
|
|
* @notes 矿机 收益
|
|
* @return UserValidate
|
|
* @author BD
|
|
* @date 2024/9/21 19:15
|
|
*/
|
|
public function sceneMineReceive()
|
|
{
|
|
return $this->only(['receive']);
|
|
}
|
|
|
|
/**
|
|
* @notes 校验卡号
|
|
* @param $num
|
|
* @param $rule
|
|
* @param $data
|
|
* @return bool|string
|
|
* @author BD
|
|
* @date 2023/9/21 19:15
|
|
*/
|
|
protected function checkCardNum($num, $rule, $data)
|
|
{
|
|
$userInfo = UserInfo::where(['user_id' => $data['user_id']])->findOrEmpty();
|
|
|
|
if($userInfo->isEmpty()) {
|
|
return 'network.parameterAbnormality';
|
|
}
|
|
if($userInfo['auth_card'] != 0 && $userInfo['auth_card'] != 3) {
|
|
return 'network.parameterAbnormality';
|
|
}
|
|
|
|
//查询证件照
|
|
if (!isset($data['card_img1'])||!isset($data['card_img2'])||!isset($data['card_img3'])) {
|
|
return 'network.parameterAbnormality';
|
|
}
|
|
|
|
//判断是否绑定过
|
|
$info_t = UserInfo::where(['card_num' => $data['card_num']])->findOrEmpty();
|
|
if(!$info_t->isEmpty()) {
|
|
return 'auth.realNumExited';//该证件已使用过
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* @notes 校验签到
|
|
* @param $signin
|
|
* @param $rule
|
|
* @param $data
|
|
* @return bool|string
|
|
* @author BD
|
|
* @date 2024/9/21 19:15
|
|
*/
|
|
protected function checkSignin($signin, $rule, $data)
|
|
{
|
|
//判断是否签到
|
|
$todayStart = strtotime("today midnight");
|
|
$sign_count = UserSigninRecord::where(['user_id' => $data['user_id']])->where("create_time > $todayStart")->count();
|
|
if($sign_count > 0) {
|
|
return 'network.parameterAbnormality';
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* @notes 校验矿机 启动
|
|
* @param $start
|
|
* @param $rule
|
|
* @param $data
|
|
* @return bool|string
|
|
* @author BD
|
|
* @date 2024/9/21 19:15
|
|
*/
|
|
protected function checkMineStart($start, $rule, $data)
|
|
{
|
|
$user = User::where(['id' => $data['user_id']])->findOrEmpty();
|
|
if($user['mine_status'] != 0) {
|
|
return 'network.parameterAbnormality';
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* @notes 校验矿机 收益
|
|
* @param $receive
|
|
* @param $rule
|
|
* @param $data
|
|
* @return bool|string
|
|
* @author BD
|
|
* @date 2024/9/21 19:15
|
|
*/
|
|
protected function checkMineReceive($receive, $rule, $data)
|
|
{
|
|
$user = User::where(['id' => $data['user_id']])->findOrEmpty();
|
|
if($user['mine_status'] != 2) {
|
|
return 'network.parameterAbnormality';
|
|
}
|
|
|
|
return true;
|
|
}
|
|
} |