count() > 0) { return FunctionResponse::error(400, [], '手机号已存在'); } // 检测身份证号码 并提取信息 $idCardInfo = self::getDetailsFromIdCard($idcard); if ($idCardInfo['code'] !== 200) { return $idCardInfo; // 返回错误信息 } // 你可以在此处添加更多的注册逻辑,例如:存储用户信息到数据库 // 假设我们通过 Users 模型来创建用户 $user = new Users(); $user->phone = $phone; $user->password = password_hash($password, PASSWORD_DEFAULT); // 密码加密 $user->cardid = $idcard; $user->birthday = $idCardInfo['data']['birthDate']; // 出生日期 $user->gender = $idCardInfo['data']['gender']; // 性别 $user->avatar = ''; // 头像 $user->save(); return FunctionResponse::success(200, ['$phone' => $phone], '注册成功'); } /** * 检查身份证号,提取身份证号信息 * * @param string $idCard * @return array */ private static function getDetailsFromIdCard($idCard) { $birthDate = ''; $gender = ''; // 校验并处理18位身份证 if (strlen($idCard) === 18) { // 提取出生日期 $birthDate = substr($idCard, 6, 8); // 获取出生日期(YYYYMMDD) // 性别判断:顺序码第17位奇数为男,偶数为女 $genderCode = (int) $idCard[16]; $gender = $genderCode % 2; } else { return FunctionResponse::error(400, [], '身份证格式不对'); } // 格式化出生日期 $birthYear = substr($birthDate, 0, 4); $birthMonth = substr($birthDate, 4, 2); $birthDay = substr($birthDate, 6, 2); $formattedBirthDate = $birthYear . '-' . $birthMonth . '-' . $birthDay; return FunctionResponse::success(200, [ 'birthDate' => $formattedBirthDate, // 出生日期格式化 'gender' => $gender, // 性别 ]); } /** * 手机号是否唯一 * @param [string] $phone * @return [bole] 有手机号返回 true 没有返回flase */ private static function isThePhoneNumberUnique($phone) { return Users::where('phone', $phone)->count() > 0; } /** * 修改密码 * @param [int] $userid 用户id * @param [string] $phone 密码 */ public static function chang_passwd($userid,$password){ //哈希密码 $hasa_password=password_hash($password, PASSWORD_DEFAULT); Users::where('id', $userid)->update(['password' => $hasa_password]); } /** * 修改用户名 * @param [int] $userid 用户id * @param [string] $nickname 用户名 */ public static function chang_nickname($userid,$nickname){ Users::where('id', $userid)->update(['nickname' => $nickname]); } }