新增:获取个人简介审核失败原因、获取身份认证审核失败原因、获取身份认证信息修改

This commit is contained in:
wucongxing 2024-01-18 15:35:22 +08:00
parent 0e2301c1d7
commit dca495db1a
5 changed files with 143 additions and 82 deletions

View File

@ -11,7 +11,7 @@ use Psr\Container\NotFoundExceptionInterface;
use Psr\Http\Message\ResponseInterface;
/**
* 医生认证
* 医生身份认证
*/
class DoctorAuthController extends AbstractController
{
@ -100,4 +100,26 @@ class DoctorAuthController extends AbstractController
$data = $DoctorAuthService->addAuthMulti();
return $this->response->json($data);
}
/**
* 获取身份认证审核失败原因
* @return ResponseInterface
*/
public function getIdenAuthFailReason(): ResponseInterface
{
$DoctorAuthService = new DoctorAuthService();
$data = $DoctorAuthService->getIdenAuthFailReason();
return $this->response->json($data);
}
/**
* 获取个人简介审核失败原因
* @return ResponseInterface
*/
public function getDoctorIntroductionFailReason(): ResponseInterface
{
$DoctorAuthService = new DoctorAuthService();
$data = $DoctorAuthService->getDoctorIntroductionFailReason();
return $this->response->json($data);
}
}

View File

@ -31,11 +31,6 @@ class DoctorIdenFail extends Model
*/
protected array $fillable = ['iden_fail_id', 'doctor_id', 'field_name', 'fail_reason', 'created_at', 'updated_at'];
/**
* The attributes that should be cast to native types.
*/
protected array $casts = ['iden_fail_id' => 'integer', 'doctor_id' => 'integer', 'created_at' => 'datetime', 'updated_at' => 'datetime'];
protected string $primaryKey = "iden_fail_id";
/**

View File

@ -29,6 +29,8 @@ use Hyperf\Utils\Arr;
* @property int $multi_point_status 医生多点执业认证状态0:未认证 1:认证通过 2:审核中 3:认证失败)
* @property string $multi_point_time 审核时间
* @property string $multi_point_fail_reason 多点执业认证失败原因
* @property int $introduction_status 个人简介审核状态0:未审核 1:审核通过 2:审核中 3:审核失败)
* @property string $introduction_time 审核时间
* @property int $is_bind_bank 是否已绑定结算银行卡0: 1:是)
* @property int $is_recommend 是否首页推荐0: 1:是)
* @property string $avatar 头像
@ -56,6 +58,7 @@ use Hyperf\Utils\Arr;
* @property-read \Hyperf\Database\Model\Collection|DoctorInquiryConfig[]|null $DoctorInquiryConfig
* @property-read Hospital|null $Hospital
* @property-read \Hyperf\Database\Model\Collection|OrderInquiry[]|null $OrderInquiry
* @property-read User|null $User
*/
class UserDoctor extends Model
{
@ -69,7 +72,7 @@ class UserDoctor extends Model
/**
* The attributes that are mass assignable.
*/
protected array $fillable = ['doctor_id', 'user_id', 'user_name', 'open_id', 'union_id', 'wx_session_key', 'status', 'idcard_status', 'iden_auth_status', 'iden_auth_time', 'iden_auth_fail_reason', 'multi_point_status', 'multi_point_time', 'multi_point_fail_reason', 'is_bind_bank', 'is_recommend', 'avatar', 'doctor_title', 'department_custom_id', 'department_custom_name', 'department_custom_mobile', 'hospital_id', 'served_patients_num', 'praise_rate', 'avg_response_time', 'number_of_fans', 'is_img_expert_reception', 'is_img_welfare_reception', 'is_img_quick_reception', 'is_platform_deep_cooperation', 'is_enterprise_deep_cooperation', 'is_sys_diagno_cooperation', 'qr_code', 'be_good_at', 'brief_introduction', 'created_at', 'updated_at'];
protected array $fillable = ['doctor_id', 'user_id', 'user_name', 'open_id', 'union_id', 'wx_session_key', 'status', 'idcard_status', 'iden_auth_status', 'iden_auth_time', 'iden_auth_fail_reason', 'multi_point_status', 'multi_point_time', 'multi_point_fail_reason', 'introduction_status', 'introduction_time', 'is_bind_bank', 'is_recommend', 'avatar', 'doctor_title', 'department_custom_id', 'department_custom_name', 'department_custom_mobile', 'hospital_id', 'served_patients_num', 'praise_rate', 'avg_response_time', 'number_of_fans', 'is_img_expert_reception', 'is_img_welfare_reception', 'is_img_quick_reception', 'is_platform_deep_cooperation', 'is_enterprise_deep_cooperation', 'is_sys_diagno_cooperation', 'qr_code', 'be_good_at', 'brief_introduction', 'created_at', 'updated_at'];
protected string $primaryKey = "doctor_id";

View File

@ -19,7 +19,7 @@ use GuzzleHttp\Exception\GuzzleException;
use Hyperf\DbConnection\Db;
/**
* 医生认证
* 医生身份认证
*/
class DoctorAuthService extends BaseService
{
@ -338,20 +338,6 @@ class DoctorAuthService extends BaseService
$UserDoctorService = new UserDoctorService();
$result['doctor_expertise'] = $UserDoctorService->getDoctorSelectedExpertise($doctor['doctor_id']);
// 获取医生身份认证失败原因
$iden_auth_fail_reson = $this->getIdenAuthFailReason($doctor['iden_auth_status'], $doctor['doctor_id']);
$result['avatar_reason'] = $iden_auth_fail_reson['avatar_reason'] ?? "";
$result['department_custom_mobile_reason'] = $iden_auth_fail_reson['department_custom_mobile_reason'] ?? "";
$result['brief_introduction_reason'] = $iden_auth_fail_reson['brief_introduction_reason'] ?? "";
$result['be_good_at_reason'] = $iden_auth_fail_reson['be_good_at_reason'] ?? "";
if ($source == 1){
$result['license_cert_reason'] = $iden_auth_fail_reson['license_cert_reason'] ?? "";
$result['qualification_cert_reason'] = $iden_auth_fail_reson['qualification_cert_reason'] ?? "";
$result['work_cert_reason'] = $iden_auth_fail_reson['work_cert_reason'] ?? "";
}
$result['department_custom_name_reason'] = $iden_auth_fail_reson['department_custom_name_reason'] ?? "";
return success($result);
}
@ -761,63 +747,97 @@ class DoctorAuthService extends BaseService
/**
* 获取医生身份认证失败原因
* @param int|string $iden_auth_status
* @param string|int $doctor_id
* @return array
*/
public function getIdenAuthFailReason(int|string $iden_auth_status, string|int $doctor_id): array
public function getIdenAuthFailReason(): array
{
$result = array();
$user_info = $this->request->getAttribute("userInfo") ?? [];
$params = array();
$params['doctor_id'] = $user_info['client_user_id'];
$doctor = UserDoctor::getOne($params);
if (empty($doctor)) {
return fail(HttpEnumCode::HTTP_ERROR, "未知医生");
}
// 实名认证状态0:未认证 1:认证通过 2:认证失败)
if ($doctor['idcard_status'] != 1) {
return fail(HttpEnumCode::HTTP_ERROR, "请先实名认证");
}
// 身份认证状态0:未认证 1:认证通过 2:审核中 3:认证失败)
if ($iden_auth_status == 3) {
// 获取认证失败字段
$params = array();
$params['doctor_id'] = $doctor_id;
$doctor_iden_fails = DoctorIdenFail::getList($params);
if ($doctor['iden_auth_status'] != 3){
return success(null);
}
if (!empty($doctor_iden_fails)) {
foreach ($doctor_iden_fails as $doctor_iden_fail) {
// 头像
if ($doctor_iden_fail['field_name'] == "avatar") {
$result['avatar_reason'] = $doctor_iden_fail['fail_reason'];
}
// 获取认证失败字段
$params = array();
$params['doctor_id'] = $doctor['doctor_id'];
$doctor_iden_fails = DoctorIdenFail::getList($params);
if (empty($doctor_iden_fails)){
return success(null);
}
// 科室电话
if ($doctor_iden_fail['field_name'] == "department_custom_mobile") {
$result['department_custom_mobile_reason'] = $doctor_iden_fail['fail_reason'];
}
$result = array();
foreach ($doctor_iden_fails as $doctor_iden_fail) {
$result[$doctor_iden_fail['field_name']] = $doctor_iden_fail['fail_reason'];
}
// 科室名称
if ($doctor_iden_fail['field_name'] == "department_custom_name") {
$result['department_custom_name_reason'] = $doctor_iden_fail['fail_reason'];
}
return success($result);
}
// 医生简介
if ($doctor_iden_fail['field_name'] == "brief_introduction") {
$result['brief_introduction_reason'] = $doctor_iden_fail['fail_reason'];
}
/**
* 获取医生个人简介审核失败原因
* @return array
*/
public function getDoctorIntroductionFailReason(): array
{
$user_info = $this->request->getAttribute("userInfo") ?? [];
// 擅长
if ($doctor_iden_fail['field_name'] == "be_good_at") {
$result['be_good_at_reason'] = $doctor_iden_fail['fail_reason'];
}
$params = array();
$params['doctor_id'] = $user_info['client_user_id'];
$doctor = UserDoctor::getOne($params);
if (empty($doctor)) {
return fail(HttpEnumCode::HTTP_ERROR, "未知医生");
}
// 医师执业证
if ($doctor_iden_fail['field_name'] == "license_cert") {
$result['license_cert_reason'] = $doctor_iden_fail['fail_reason'];
}
// 实名认证状态0:未认证 1:认证通过 2:认证失败)
if ($doctor['idcard_status'] != 1) {
return fail(HttpEnumCode::HTTP_ERROR, "请先实名认证");
}
// 医师资格证
if ($doctor_iden_fail['field_name'] == "qualification_cert") {
$result['qualification_cert_reason'] = $doctor_iden_fail['fail_reason'];
}
// 身份认证状态0:未认证 1:认证通过 2:审核中 3:认证失败)
if ($doctor['iden_auth_status'] != 3){
return success(null);
}
// 医师工作证
if ($doctor_iden_fail['field_name'] == "work_cert") {
$result['work_cert_reason'] = $doctor_iden_fail['fail_reason'];
}
}
// 个人简介审核状态0:未审核 1:审核通过 2:审核中 3:审核失败)
if ($doctor['introduction_status'] != 3){
return success(null);
}
// 获取认证失败字段
$params = array();
$params['doctor_id'] = $doctor['doctor_id'];
$doctor_iden_fails = DoctorIdenFail::getList($params);
if (empty($doctor_iden_fails)){
return success(null);
}
foreach ($doctor_iden_fails as $doctor_iden_fail) {
// 头像
if ($doctor_iden_fail['field_name'] == "avatar") {
$result['avatar_reason'] = $doctor_iden_fail['fail_reason'];
}
// 医生简介
if ($doctor_iden_fail['field_name'] == "brief_introduction") {
$result['brief_introduction_reason'] = $doctor_iden_fail['fail_reason'];
}
// 擅长
if ($doctor_iden_fail['field_name'] == "be_good_at") {
$result['be_good_at_reason'] = $doctor_iden_fail['fail_reason'];
}
}

View File

@ -48,27 +48,48 @@ Router::addGroup('/doctor', function () {
// 身份认证
Router::addGroup('/auth', function () {
// 获取实名认证信息
Router::get('/real', [DoctorAuthController::class, 'getAuthReal']);
// 实名认证
Router::addGroup('/real', function () {
// 获取实名认证信息
Router::get('', [DoctorAuthController::class, 'getAuthReal']);
// 新增实名认证
Router::post('/real', [DoctorAuthController::class, 'addAuthReal']);
// 新增实名认证
Router::post('', [DoctorAuthController::class, 'addAuthReal']);
});
// 获取身份认证信息
Router::get('/iden', [DoctorAuthController::class, 'getAuthIden']);
// 身份认证
Router::addGroup('/iden', function () {
// 获取身份认证信息
Router::get('', [DoctorAuthController::class, 'getAuthIden']);
// 新增身份认证信息
Router::post('/iden', [DoctorAuthController::class, 'addAuthIden'],
[
'middleware' => [LockRequestMiddleware::class] // 锁定重复请求
]
);
// 新增身份认证信息
Router::post('', [DoctorAuthController::class, 'addAuthIden'],
[
'middleware' => [LockRequestMiddleware::class] // 锁定重复请求
]
);
// 获取多点执业认证信息
Router::get('/multi', [DoctorAuthController::class, 'getAuthMulti']);
// 获取身份认证审核失败原因
Router::get('/reason', [DoctorAuthController::class, 'getIdenAuthFailReason']);
});
// 新增多点执业认证信息
Router::post('/multi', [DoctorAuthController::class, 'addAuthMulti']);
// 身份认证
Router::addGroup('/multi', function () {
// 获取多点执业认证信息
Router::get('', [DoctorAuthController::class, 'getAuthMulti']);
// 新增多点执业认证信息
Router::post('', [DoctorAuthController::class, 'addAuthMulti']);
});
// 个人简介
Router::addGroup('/introduction', function () {
// 修改个人简介
Router::put('', [DoctorAuthController::class, 'addDoctorIntroduction']);
// 获取个人简介审核失败原因
Router::get('/reason', [DoctorAuthController::class, 'getDoctorIntroductionFailReason']);
});
});
// 问诊