You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
3.8 KiB
PHP

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
namespace App\Http\Controllers\API\H5;
use App\Http\Controllers\API\SmsController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
class MemberController
{
public function Register()
{
$systemStatus = \Yz::systemStatusCheck();
if(!$systemStatus['status']){
return \Yz::echoError1($systemStatus['msg']);
}
$info = request('info');
$validator = Validator::make($info, [
'tel' => 'required|string|max:20|unique:members,tel',
'password' => 'required|string|min:6',
'confirmPassword' => 'required|string|same:password',
'name' => 'required|string|max:100',
'sfz' => 'required|string|max:18|unique:members,sfz', // 测试阶段放宽限制
'card_number' => 'required|string',
'bank_name' => 'required|string',
'verifyCode' => 'required|string',
], [
'password.min' => '密码最少6位',
'confirmPassword.same' => '两次输入的密码不一致。',
'tel.unique' => '该手机号已注册。',
'sfz.unique' => '该身份证号已被使用。',
]);
if ($validator->fails()) {
return \Yz::echoError1('参数验证失败!' . json_encode($validator->errors()->all(), JSON_UNESCAPED_UNICODE));
}
// 验证通过,处理业务逻辑
$sms=new SmsController();
$check=$sms->CheckCode($info['tel'],$info['verifyCode']);
if(!$check){
return \Yz::echoError1('验证码错误!');
}
// 例如:创建用户、保存银行卡信息等
$insertData = [
'tel' => $info['tel'],
'password' => Hash::make($info['password']), // 加密密码
'name' => $info['name'],
'sfz' => $info['sfz'],
'card_number' => $info['card_number'],
'balance' => 0,
'interest_balance' => 0,
'total_interest' => 0,
'bank_name' => $info['bank_name'],
'res_bank_img' => $info['res_bank_img'],
];
$id = DB::table('members')->insertGetId($insertData);
if (!!$id) {
return \Yz::Return(true, '注册成功!', ['user_id' => $id]);
} else {
return \Yz::echoError1('注册失败!');
}
}
public function GetInfo(Request $request)
{
$systemStatus = \Yz::systemStatusCheck();
if(!$systemStatus['status']){
return \Yz::echoError1($systemStatus['msg']);
}
$userid = $request->get('userid');//中间件产生的参数
$memberInfo = DB::table('members')
->select('id','name','tel','balance','total_interest')
->where(['id'=>$userid,'status'=>1,'is_del'=>0])->first();
if(!!$memberInfo){
// 对电话号码脱敏保留前3位和后4位中间用 **** 代替
if (!empty($memberInfo->tel)) {
$tel = $memberInfo->tel;
if (strlen($tel) >= 7) {
$memberInfo->tel = substr($tel, 0, 3) . '****' . substr($tel, -4);
}
}
$memberInfo->first_name_char = !empty($memberInfo->name) ? mb_substr($memberInfo->name, 0, 1, 'UTF-8') : '';
$configs=DB::table('configs')->whereIn('label',['存款利率','借款利率'])->get();
foreach ($configs as $config) {
$memberInfo->{$config->label}=$config->value;
}
// $memberInfo->interest_rate=$config->value;
return \Yz::Return(true, '用户信息获取成功!', ['info'=>$memberInfo]);
}else{
return \Yz::echoError1('用户不存在');
}
}
}