From 8b0589af513973488c3a2e5d9e7e4c84b27f4d51 Mon Sep 17 00:00:00 2001 From: wucongxing <815046773@qq.com> Date: Wed, 12 Jul 2023 15:52:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AE=A1=E6=A0=B8-=E5=8C=BB?= =?UTF-8?q?=E7=94=9F=E5=88=97=E8=A1=A8-=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/controller/admin.go | 21 +++++ api/controller/userDoctor.go | 34 ++++++- api/dao/userDoctor.go | 61 +++++++++++- api/model/userDoctor.go | 1 + api/requests/userDoctor.go | 69 ++++++-------- .../userDoctorResponse/userDoctor.go | 94 +++++++++++++++++++ api/router/router.go | 28 ++++-- api/service/user.go | 12 +++ api/service/userDoctor.go | 75 +++++++++++++++ 9 files changed, 343 insertions(+), 52 deletions(-) diff --git a/api/controller/admin.go b/api/controller/admin.go index 92d3084..3ea2d05 100644 --- a/api/controller/admin.go +++ b/api/controller/admin.go @@ -116,3 +116,24 @@ func (b *Admin) GetDecryptCardNum(c *gin.Context) { userCardNum, _ := userService.GetUserCardNum(userId, familyId) responses.OkWithData(userCardNum, c) } + +// GetDecryptBank 获取解密银行卡号 +func (b *Admin) GetDecryptBank(c *gin.Context) { + id := c.Param("doctor_id") + if id == "" { + responses.FailWithMessage("缺少参数", c) + return + } + + // 将 id 转换为 int64 类型 + doctorId, err := strconv.ParseInt(id, 10, 64) + if err != nil { + responses.Fail(c) + return + } + + // 获取解密银行卡号 + userService := service.UserService{} + userCardNum, _ := userService.GetUserBankNumByDoctorId(doctorId) + responses.OkWithData(userCardNum, c) +} diff --git a/api/controller/userDoctor.go b/api/controller/userDoctor.go index fd6628e..b392f0a 100644 --- a/api/controller/userDoctor.go +++ b/api/controller/userDoctor.go @@ -37,7 +37,7 @@ func (r *UserDoctor) GetUserDoctorPage(c *gin.Context) { } userDoctorDao := dao.UserDoctorDao{} - userDoctor, total, err := userDoctorDao.GetUserDoctorDaoPageSearch(userDoctorRequest.GetUserDoctorPage, userDoctorRequest.GetUserDoctorPage.Page, userDoctorRequest.GetUserDoctorPage.PageSize) + userDoctor, total, err := userDoctorDao.GetUserDoctorPageSearch(userDoctorRequest.GetUserDoctorPage, userDoctorRequest.GetUserDoctorPage.Page, userDoctorRequest.GetUserDoctorPage.PageSize) if err != nil { responses.FailWithMessage(err.Error(), c) @@ -153,7 +153,7 @@ func (r *UserDoctor) AddUserDoctor(c *gin.Context) { responses.Ok(c) } -// GetUserDoctorPendingPage 获取医生待审核列表-分页 +// GetUserDoctorPendingPage 审核-获取医生列表-分页 func (r *UserDoctor) GetUserDoctorPendingPage(c *gin.Context) { userDoctorRequest := requests.UserDoctorRequest{} if err := c.ShouldBind(&userDoctorRequest.GetUserDoctorPendingPage); err != nil { @@ -176,7 +176,7 @@ func (r *UserDoctor) GetUserDoctorPendingPage(c *gin.Context) { } userDoctorDao := dao.UserDoctorDao{} - userDoctor, total, err := userDoctorDao.GetUserDoctorDaoPageSearch(userDoctorRequest.GetUserDoctorPage, userDoctorRequest.GetUserDoctorPage.Page, userDoctorRequest.GetUserDoctorPage.PageSize) + userDoctor, total, err := userDoctorDao.GetUserDoctorPendingPageSearch(userDoctorRequest.GetUserDoctorPendingPage, userDoctorRequest.GetUserDoctorPage.Page, userDoctorRequest.GetUserDoctorPage.PageSize) if err != nil { responses.FailWithMessage(err.Error(), c) @@ -184,7 +184,7 @@ func (r *UserDoctor) GetUserDoctorPendingPage(c *gin.Context) { } // 处理返回值 - getUserDoctorPageResponses := userDoctorResponse.GetUserDoctorPageResponse(userDoctor) + getUserDoctorPageResponses := userDoctorResponse.GetUserDoctorPendingPageResponse(userDoctor) result := make(map[string]interface{}) result["page"] = userDoctorRequest.GetUserDoctorPage.Page @@ -193,3 +193,29 @@ func (r *UserDoctor) GetUserDoctorPendingPage(c *gin.Context) { result["data"] = getUserDoctorPageResponses responses.OkWithData(result, c) } + +// GetUserDoctorPending 审核-医生详情 +func (r *UserDoctor) GetUserDoctorPending(c *gin.Context) { + id := c.Param("doctor_id") + if id == "" { + responses.FailWithMessage("缺少参数", c) + return + } + + // 将 id 转换为 int64 类型 + doctorId, err := strconv.ParseInt(id, 10, 64) + if err != nil { + responses.Fail(c) + return + } + + // 业务处理 + userDoctorService := service.UserDoctorService{} + g, err := userDoctorService.GetUserDoctorPending(doctorId) + if err != nil { + responses.FailWithMessage(err.Error(), c) + return + } + + responses.OkWithData(g, c) +} diff --git a/api/dao/userDoctor.go b/api/dao/userDoctor.go index 9b72fe5..c2987f1 100644 --- a/api/dao/userDoctor.go +++ b/api/dao/userDoctor.go @@ -74,8 +74,8 @@ func (r *UserDoctorDao) GetUserDoctorList(maps interface{}) (m []*model.UserDoct return m, nil } -// GetUserDoctorDaoPageSearch 获取医生列表-分页 -func (r *UserDoctorDao) GetUserDoctorDaoPageSearch(getUserDoctorPage requests.GetUserDoctorPage, page, pageSize int) (m []*model.UserDoctor, total int64, err error) { +// GetUserDoctorPageSearch 获取医生列表-分页 +func (r *UserDoctorDao) GetUserDoctorPageSearch(getUserDoctorPage requests.GetUserDoctorPage, page, pageSize int) (m []*model.UserDoctor, total int64, err error) { var totalRecords int64 // 构建查询条件 @@ -211,3 +211,60 @@ func (r *UserDoctorDao) AddUserDoctor(tx *gorm.DB, model *model.UserDoctor) (*mo } return model, nil } + +// GetUserDoctorPendingPageSearch 审核-获取医生列表-分页 +func (r *UserDoctorDao) GetUserDoctorPendingPageSearch(p requests.GetUserDoctorPendingPage, page, pageSize int) (m []*model.UserDoctor, total int64, err error) { + var totalRecords int64 + + // 构建查询条件 + query := global.Db.Model(&model.UserDoctor{}).Omit("open_id", "union_id", "wx_session_key") + + // 用户 + query = query.Preload("User", func(db *gorm.DB) *gorm.DB { + return db.Omit("user_password", "salt") + }) + + // 医院 + query = query.Preload("Hospital", func(db *gorm.DB) *gorm.DB { + return db.Select("hospital_id,hospital_name,hospital_level_name") + }) + + // 手机号 + if p.Mobile != "" { + subQuery := global.Db.Model(&model.User{}). + Select("user_id"). + Where("mobile LIKE ?", "%"+p.Mobile+"%") + + query = query.Where(gorm.Expr("user_id IN (?)", subQuery)) + } + + // 用户名称 + if p.UserName != "" { + query = query.Where("user_name LIKE ?", "%"+p.UserName+"%") + } + + // 身份认证状态 + if p.IdenAuthStatus != 0 { + query = query.Where("iden_auth_status = ?", p.IdenAuthStatus) + } + + // 医院名称 + if p.HospitalName != "" { + subQuery := global.Db.Model(&model.Hospital{}). + Select("hospital_id"). + Where("hospital_name LIKE ?", "%"+p.HospitalName+"%") + + query = query.Where(gorm.Expr("hospital_id IN (?)", subQuery)) + } + + // 查询总数量 + if err := query.Count(&totalRecords).Error; err != nil { + return nil, 0, err + } + + err = query.Scopes(model.Paginate(page, pageSize)).Find(&m).Error + if err != nil { + return nil, 0, err + } + return m, totalRecords, nil +} diff --git a/api/model/userDoctor.go b/api/model/userDoctor.go index f676cc5..d27202f 100644 --- a/api/model/userDoctor.go +++ b/api/model/userDoctor.go @@ -34,6 +34,7 @@ type UserDoctor struct { IsImgQuickReception int `gorm:"column:is_img_quick_reception;type:tinyint(1);default:0;comment:是否参加快速图文接诊(0:否 1:是)" json:"is_img_quick_reception"` IsPlatformDeepCooperation int `gorm:"column:is_platform_deep_cooperation;type:tinyint(1);default:0;comment:是否平台深度合作医生(0:否 1:是)" json:"is_platform_deep_cooperation"` IsEnterpriseDeepCooperation int `gorm:"column:is_enterprise_deep_cooperation;type:tinyint(1);default:0;comment:是否企业深度合作医生(0:否 1:是)" json:"is_enterprise_deep_cooperation"` + IsSysDiagnoCooperation int `gorm:"column:is_sys_diagno_cooperation;type:tinyint(1);default:0;comment:是否先思达合作医生(0:否 1:是)" json:"is_sys_diagno_cooperation"` QrCode string `gorm:"column:qr_code;type:varchar(255);comment:分享二维码" json:"qr_code"` BeGoodAt string `gorm:"column:be_good_at;type:text;comment:擅长" json:"be_good_at"` BriefIntroduction string `gorm:"column:brief_introduction;type:text;comment:医生简介" json:"brief_introduction"` diff --git a/api/requests/userDoctor.go b/api/requests/userDoctor.go index 2ab3a0c..2896b6e 100644 --- a/api/requests/userDoctor.go +++ b/api/requests/userDoctor.go @@ -4,7 +4,7 @@ type UserDoctorRequest struct { GetUserDoctorPage // 获取医生列表-分页 PutUserDoctor // 修改医生 AddUserDoctor // 新增医生 - GetUserDoctorPendingPage // 获取医生待审核列表-分页 + GetUserDoctorPendingPage // 审核-获取医生列表-分页 } // GetUserDoctorPage 获取医生列表-分页 @@ -23,28 +23,30 @@ type GetUserDoctorPage struct { DoctorTitle int `json:"doctor_title" form:"doctor_title" label:"医生职称"` // (1:主任医师 2:主任中医师 3:副主任医师 4:副主任中医师 5:主治医师 6:住院医师) InquiryService string `json:"inquiry_service" form:"inquiry_service" label:"问诊服务"` // (1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药) IsEnterpriseDeepCooperation int `json:"is_enterprise_deep_cooperation" form:"is_enterprise_deep_cooperation" label:"是否企业深度合作"` // (0:否 1:是) + IsSysDiagnoCooperation int `json:"is_sys_diagno_cooperation" form:"is_sys_diagno_cooperation" label:"是否先思达合作医生"` // (0:否 1:是) } // PutUserDoctor 修改医生 type PutUserDoctor struct { - IsRecommend int `json:"is_recommend" form:"is_recommend" label:"是否首页推荐"` // (0:否 1:是) - Avatar string `json:"avatar" form:"avatar" validate:"required" label:"头像"` - DoctorTitle int `json:"doctor_title" form:"doctor_title" validate:"required,oneof=1 2 3 4 5 6" label:"医生职称"` // (1:主任医师 2:主任中医师 3:副主任医师 4:副主任中医师 5:主治医师 6:住院医师) - DepartmentCustomId string `json:"department_custom_id" form:"department_custom_id" validate:"required" label:"科室"` - DepartmentCustomName string `json:"department_custom_name" form:"department_custom_name" validate:"required" label:"科室名称"` // (如未自己输入,填入标准科室名称) - DepartmentCustomMobile string `json:"department_custom_mobile" form:"department_custom_mobile" label:"科室电话"` - HospitalId string `json:"hospital_id" form:"hospital_id" validate:"required" label:"所属医院id"` - BeGoodAt string `json:"be_good_at" form:"be_good_at" validate:"required" label:"擅长"` - BriefIntroduction string `json:"brief_introduction" form:"brief_introduction" validate:"required" label:"医生简介"` - LicenseCert []string `json:"license_cert" form:"license_cert" label:"医师执业证"` - QualificationCert []string `json:"qualification_cert" form:"qualification_cert" label:"医师资格证"` - QualificationCertNum string `json:"qualification_cert_num" form:"qualification_cert_num" label:"医师资格证号"` - WorkCert []string `json:"work_cert" form:"work_cert" label:"医师工作证"` - IdCardFront string `json:"id_card_front" form:"id_card_front" label:"身份证正面图片"` - IdCardBack string `json:"id_card_back" form:"id_card_back" label:"身份证背面图片"` - SignImage string `json:"sign_image" form:"sign_image" label:"签名图片"` - DoctorExpertise []string `json:"doctor_expertise" form:"doctor_expertise" label:"专长"` - // DoctorBankCard doctorBankCard `json:"doctor_bank_card" form:"doctor_bank_card" label:"银行卡"` + IsRecommend int `json:"is_recommend" form:"is_recommend" label:"是否首页推荐"` // (0:否 1:是) + Avatar string `json:"avatar" form:"avatar" validate:"required" label:"头像"` + DoctorTitle int `json:"doctor_title" form:"doctor_title" validate:"required,oneof=1 2 3 4 5 6" label:"医生职称"` // (1:主任医师 2:主任中医师 3:副主任医师 4:副主任中医师 5:主治医师 6:住院医师) + DepartmentCustomId string `json:"department_custom_id" form:"department_custom_id" validate:"required" label:"科室"` + DepartmentCustomName string `json:"department_custom_name" form:"department_custom_name" validate:"required" label:"科室名称"` // (如未自己输入,填入标准科室名称) + DepartmentCustomMobile string `json:"department_custom_mobile" form:"department_custom_mobile" label:"科室电话"` + HospitalId string `json:"hospital_id" form:"hospital_id" validate:"required" label:"所属医院id"` + IsPlatformDeepCooperation int `json:"is_platform_deep_cooperation" form:"is_platform_deep_cooperation" label:"平台深度合作医生"` // 是否平台深度合作医生(0:否 1:是) + IsSysDiagnoCooperation int `json:"is_sys_diagno_cooperation" form:"is_sys_diagno_cooperation" label:"是否先思达合作医生)"` // 是否先思达合作医生(0:否 1:是) + BeGoodAt string `json:"be_good_at" form:"be_good_at" validate:"required" label:"擅长"` + BriefIntroduction string `json:"brief_introduction" form:"brief_introduction" validate:"required" label:"医生简介"` + LicenseCert []string `json:"license_cert" form:"license_cert" label:"医师执业证"` + QualificationCert []string `json:"qualification_cert" form:"qualification_cert" label:"医师资格证"` + QualificationCertNum string `json:"qualification_cert_num" form:"qualification_cert_num" label:"医师资格证号"` + WorkCert []string `json:"work_cert" form:"work_cert" label:"医师工作证"` + IdCardFront string `json:"id_card_front" form:"id_card_front" label:"身份证正面图片"` + IdCardBack string `json:"id_card_back" form:"id_card_back" label:"身份证背面图片"` + SignImage string `json:"sign_image" form:"sign_image" label:"签名图片"` + DoctorExpertise []string `json:"doctor_expertise" form:"doctor_expertise" label:"专长"` } // AddUserDoctor 新增医生 @@ -58,7 +60,8 @@ type AddUserDoctor struct { DepartmentCustomName string `json:"department_custom_name" form:"department_custom_name" validate:"required" label:"科室名称"` // (如未自己输入,填入标准科室名称) DepartmentCustomMobile string `json:"department_custom_mobile" form:"department_custom_mobile" label:"科室电话"` HospitalId string `json:"hospital_id" form:"hospital_id" validate:"required" label:"所属医院id"` - IsPlatformDeepCooperation int `json:"is_platform_deep_cooperation" form:"is_platform_deep_cooperation" validate:"required" label:"平台深度合作医生"` // 是否平台深度合作医生(0:否 1:是) + IsPlatformDeepCooperation int `json:"is_platform_deep_cooperation" form:"is_platform_deep_cooperation" label:"平台深度合作医生"` // 是否平台深度合作医生(0:否 1:是) + IsSysDiagnoCooperation int `json:"is_sys_diagno_cooperation" form:"is_sys_diagno_cooperation" label:"是否先思达合作医生)"` // 是否先思达合作医生(0:否 1:是) BeGoodAt string `json:"be_good_at" form:"be_good_at" validate:"required" label:"擅长"` BriefIntroduction string `json:"brief_introduction" form:"brief_introduction" validate:"required" label:"医生简介"` LicenseCert []string `json:"license_cert" form:"license_cert" validate:"required" label:"医师执业证"` @@ -70,26 +73,14 @@ type AddUserDoctor struct { SignImage string `json:"sign_image" form:"sign_image" label:"签名图片"` CardNum string `json:"card_num" form:"card_num" validate:"required" label:"证件号码"` DoctorExpertise []string `json:"doctor_expertise" form:"doctor_expertise" label:"专长"` - // DoctorBankCard []string `json:"doctor_bank_card" form:"doctor_bank_card" label:"银行卡"` } -// GetUserDoctorPendingPage 获取医生待审核列表-分页 +// GetUserDoctorPendingPage 审核-获取医生列表-分页 type GetUserDoctorPendingPage struct { - Page int `json:"page" form:"page" label:"页码"` - PageSize int `json:"page_size" form:"page_size" label:"每页个数"` - Mobile string `json:"mobile" form:"mobile" label:"手机号"` - UserName string `json:"user_name" form:"user_name" label:"用户名"` - HospitalName string `json:"hospital_name" form:"hospital_name" label:"医院名称"` - IdenAuthStatus int `json:"iden_auth_status" form:"iden_auth_status" label:"认证状态"` // (0:未认证 1:认证通过 2:审核中 3:认证失败) - MultiPointStatus int `json:"multi_point_status" form:"multi_point_status" label:"多点执业状态"` // 医生多点执业认证状态(0:未认证 1:认证通过 2:审核中 3:认证失败) + Page int `json:"page" form:"page" label:"页码"` + PageSize int `json:"page_size" form:"page_size" label:"每页个数"` + Mobile string `json:"mobile" form:"mobile" label:"手机号"` + UserName string `json:"user_name" form:"user_name" label:"用户名"` + HospitalName string `json:"hospital_name" form:"hospital_name" label:"医院名称"` + IdenAuthStatus int `json:"iden_auth_status" form:"iden_auth_status" label:"认证状态"` // (0:未认证 1:认证通过 2:审核中 3:认证失败) } - -// 医生银行卡 -// type doctorBankCard struct { -// BankId string `json:"bank_id" form:"bank_id" validate:"required" label:"银行id"` -// BankCardCode string `json:"bank_card_code" form:"bank_card_code" validate:"required" label:"银行卡号"` -// BankCardCodeMask string `json:"bank_card_code_mask" form:"bank_card_code_mask" validate:"required" label:"银行卡号"` -// ProvinceId int `json:"province_id" form:"province_id" validate:"required" label:"省份id"` -// CityId int `json:"city_id" form:"city_id" validate:"required" label:"城市id"` -// CountyId int `json:"county_id" form:"county_id" validate:"required" label:"区县id"` -// } diff --git a/api/responses/userDoctorResponse/userDoctor.go b/api/responses/userDoctorResponse/userDoctor.go index f91c5a4..c35ed62 100644 --- a/api/responses/userDoctorResponse/userDoctor.go +++ b/api/responses/userDoctorResponse/userDoctor.go @@ -79,6 +79,7 @@ type GetUserDoctor struct { IsImgQuickReception int `json:"is_img_quick_reception"` // 是否参加快速图文接诊(0:否 1:是) IsPlatformDeepCooperation int `json:"is_platform_deep_cooperation"` // 是否平台深度合作医生(0:否 1:是) IsEnterpriseDeepCooperation int `json:"is_enterprise_deep_cooperation"` // 是否企业深度合作医生(0:否 1:是) + IsSysDiagnoCooperation int `json:"is_sys_diagno_cooperation"` // 是否先思达合作医生(0:否 1:是) QrCode string `json:"qr_code"` // 分享二维码 BeGoodAt string `json:"be_good_at"` // 擅长 BriefIntroduction string `json:"brief_introduction"` // 医生简介 @@ -91,6 +92,55 @@ type GetUserDoctor struct { DoctorBankCard *doctorBankCardResponse.DoctorBankCard `json:"doctor_bank_card"` // 医生银行卡 } +// getUserDoctorPendingPage 审核-获取医生列表-分页 +type getUserDoctorPendingPage struct { + DoctorID string `json:"doctor_id"` // 主键id + UserID string `json:"user_id"` // 用户id + UserName string `json:"user_name"` // 用户名称 + Status int `json:"status"` // 状态(0:禁用 1:正常 2:删除) + IDCardStatus int `json:"idcard_status"` // 实名认证状态(0:未认证 1:认证通过 2:认证失败) + IdenAuthStatus int `json:"iden_auth_status"` // 身份认证状态(0:未认证 1:认证通过 2:审核中 3:认证失败) + IdenAuthTime model.LocalTime `json:"iden_auth_time"` // 审核时间 + IdenAuthFailReason string `json:"iden_auth_fail_reason"` // 身份认证失败原因 + Avatar string `json:"avatar"` // 头像 + DoctorTitle int `json:"doctor_title"` // 医生职称(1:主任医师 2:主任中医师 3:副主任医师 4:副主任中医师 5:主治医师 6:住院医师) + DepartmentCustomName string `json:"department_custom_name"` // 科室名称(如未自己输入,填入标准科室名称) + DepartmentCustomMobile string `json:"department_custom_mobile"` // 科室电话 + HospitalID string `json:"hospital_id"` // 所属医院id + HospitalName string `json:"hospital_name"` // 医院名称 + Mobile string `json:"mobile"` // 手机号 + Age uint `json:"age"` // 年龄 + Sex int `json:"sex"` // 性别(0:未知 1:男 2:女) + CreatedAt model.LocalTime `json:"created_at"` // 创建时间 + UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间 +} + +// GetUserDoctorPending 审核-医生详情 +type GetUserDoctorPending struct { + DoctorID string `json:"doctor_id"` // 主键id + UserID string `json:"user_id"` // 用户id + UserName string `json:"user_name"` // 用户名称 + Status int `json:"status"` // 状态(0:禁用 1:正常 2:删除) + IDCardStatus int `json:"idcard_status"` // 实名认证状态(0:未认证 1:认证通过 2:认证失败) + IdenAuthStatus int `json:"iden_auth_status"` // 身份认证状态(0:未认证 1:认证通过 2:审核中 3:认证失败) + IdenAuthTime model.LocalTime `json:"iden_auth_time"` // 审核时间 + IdenAuthFailReason string `json:"iden_auth_fail_reason"` // 身份认证失败原因 + Avatar string `json:"avatar"` // 头像 + DoctorTitle int `json:"doctor_title"` // 医生职称(1:主任医师 2:主任中医师 3:副主任医师 4:副主任中医师 5:主治医师 6:住院医师) + DepartmentCustomID string `json:"department_custom_id"` // 科室id-自定义 + DepartmentCustomName string `json:"department_custom_name"` // 科室名称(如未自己输入,填入标准科室名称) + DepartmentCustomMobile string `json:"department_custom_mobile"` // 科室电话 + HospitalID string `json:"hospital_id"` // 所属医院id + BeGoodAt string `json:"be_good_at"` // 擅长 + BriefIntroduction string `json:"brief_introduction"` // 医生简介 + CreatedAt model.LocalTime `json:"created_at"` // 创建时间 + UpdatedAt model.LocalTime `json:"updated_at"` // 更新时间 + User *userResponse.User `json:"user"` // 用户 + Hospital *hospitalResponse.Hospital `json:"hospital"` // 医院 + UserDoctorInfo *userDoctorInfoResponse.UserDoctorInfo `json:"user_doctor_info"` // 医生详情 + DoctorExpertise []*doctorExpertiseResponse.DoctorExpertise `json:"doctor_expertise"` // 医生专长 +} + // GetUserDoctorPageResponse 获取用户列表-分页 func GetUserDoctorPageResponse(userDoctor []*model.UserDoctor) []getUserDoctorPage { // 处理返回值 @@ -148,3 +198,47 @@ func GetUserDoctorPageResponse(userDoctor []*model.UserDoctor) []getUserDoctorPa return getUserPageResponses } + +// GetUserDoctorPendingPageResponse 审核-获取医生列表-分页 +func GetUserDoctorPendingPageResponse(userDoctor []*model.UserDoctor) []getUserDoctorPendingPage { + // 处理返回值 + getUserDoctorPendingPageResponses := make([]getUserDoctorPendingPage, len(userDoctor)) + + if len(userDoctor) > 0 { + for i, v := range userDoctor { + // 将原始结构体转换为新结构体 + getUserDoctorPageResponse := getUserDoctorPendingPage{ + DoctorID: strconv.Itoa(int(v.DoctorId)), + UserID: strconv.Itoa(int(v.UserId)), + UserName: v.UserName, + Status: v.Status, + IDCardStatus: v.Status, + IdenAuthStatus: v.IdenAuthStatus, + IdenAuthTime: v.IdenAuthTime, + IdenAuthFailReason: v.IdenAuthFailReason, + Avatar: config.C.Oss.OssCustomDomainName + "/" + v.Avatar, + DoctorTitle: v.DoctorTitle, + DepartmentCustomName: v.DepartmentCustomName, + DepartmentCustomMobile: v.DepartmentCustomMobile, + HospitalID: strconv.Itoa(int(v.HospitalID)), + CreatedAt: v.CreatedAt, + UpdatedAt: v.UpdatedAt, + } + + if v.User != nil { + getUserDoctorPageResponse.Mobile = v.User.Mobile + getUserDoctorPageResponse.Age = v.User.Age + getUserDoctorPageResponse.Sex = v.User.Sex + } + + if v.Hospital != nil { + getUserDoctorPageResponse.HospitalName = v.Hospital.HospitalName + } + + // 将转换后的结构体添加到新切片中 + getUserDoctorPendingPageResponses[i] = getUserDoctorPageResponse + } + } + + return getUserDoctorPendingPageResponses +} diff --git a/api/router/router.go b/api/router/router.go index 33ae0a7..6f91594 100644 --- a/api/router/router.go +++ b/api/router/router.go @@ -84,11 +84,10 @@ func adminRouter(r *gin.Engine, api controller.Api) { { // 获取解密身份证号 cardGroup.GET("/num", api.Admin.GetDecryptCardNum) - } - // 获取银行卡号 - decryptGroup.GET("/bank", api.Admin.GetOssSign) + // 获取解密银行卡号 + decryptGroup.GET("/bank/:doctor_id", api.Admin.GetDecryptBank) } } @@ -143,6 +142,21 @@ func basicRouter(r *gin.Engine, api controller.Api) { // 新增银行 } + + // 省市区管理-基础数据 + areaGroup := basicGroup.Group("/area") + { + // 获取省市区列表 + areaGroup.GET("/list", api.Bank.GetBankList) + + // 获取银行列表-分页 + + // 银行详情 + + // 修改银行 + + // 新增银行 + } } // privateRouter 私有路由-验证权限 @@ -303,13 +317,13 @@ func privateRouter(r *gin.Engine, api controller.Api) { doctorGroup.POST("", api.UserDoctor.AddUserDoctor) // 待审核列表 - doctorPendingGroup := adminGroup.Group("/pending") + doctorPendingGroup := doctorGroup.Group("/pending") { - // 获取医生列表-分页 + // 审核-获取医生列表-分页 doctorPendingGroup.GET("", api.UserDoctor.GetUserDoctorPendingPage) - // 医生详情 - doctorPendingGroup.GET("/:doctor_id", api.UserDoctor.GetUserDoctor) + // 审核-医生详情 + doctorPendingGroup.GET("/:doctor_id", api.UserDoctor.GetUserDoctorPending) // 修改医生 doctorPendingGroup.PUT("/:doctor_id", api.UserDoctor.PutUserDoctor) diff --git a/api/service/user.go b/api/service/user.go index 876d23f..00420b2 100644 --- a/api/service/user.go +++ b/api/service/user.go @@ -436,3 +436,15 @@ func (r *UserService) GetUserCardNum(userId, familyId int64) (string, error) { return cardNum, nil } + +// GetUserBankNumByDoctorId 获取银行卡号 +func (r *UserService) GetUserBankNumByDoctorId(doctorId int64) (string, error) { + // 获取用户数据 + doctorBankCardDao := dao.DoctorBankCardDao{} + doctorBankCard, err := doctorBankCardDao.GetDoctorBankCardByDoctorId(doctorId) + if err != nil || doctorBankCard == nil { + return "", errors.New("错误数据") + } + + return doctorBankCard.BankCardCode, nil +} diff --git a/api/service/userDoctor.go b/api/service/userDoctor.go index 4ae4a53..0a470ab 100644 --- a/api/service/userDoctor.go +++ b/api/service/userDoctor.go @@ -92,6 +92,7 @@ func (r *UserDoctorService) GetUserDoctor(doctorId int64) (getUserDoctorResponse IsImgWelfareReception: userDoctor.IsImgWelfareReception, IsImgQuickReception: userDoctor.IsImgQuickReception, IsPlatformDeepCooperation: userDoctor.IsPlatformDeepCooperation, + IsSysDiagnoCooperation: userDoctor.IsSysDiagnoCooperation, QrCode: config.C.Oss.OssCustomDomainName + userDoctor.QrCode, BeGoodAt: userDoctor.BeGoodAt, BriefIntroduction: userDoctor.BriefIntroduction, @@ -192,6 +193,16 @@ func (r *UserDoctorService) PutUserDoctor(doctorId int64, putUserDoctorRequest r userDoctorData["department_custom_id"] = putUserDoctorRequest.HospitalId } + // 处理深度合作医生 + if userDoctor.IsPlatformDeepCooperation != putUserDoctorRequest.IsPlatformDeepCooperation { + userDoctorData["is_platform_deep_cooperation"] = putUserDoctorRequest.IsPlatformDeepCooperation + } + + // 处理是否先思达合作医生 + if userDoctor.IsSysDiagnoCooperation != putUserDoctorRequest.IsSysDiagnoCooperation { + userDoctorData["is_sys_diagno_cooperation"] = putUserDoctorRequest.IsSysDiagnoCooperation + } + // 处理擅长 if userDoctor.BeGoodAt != putUserDoctorRequest.BeGoodAt { userDoctorData["be_good_at"] = putUserDoctorRequest.BeGoodAt @@ -721,6 +732,7 @@ func (r *UserDoctorService) AddUserDoctor(userId string, a requests.AddUserDocto DepartmentCustomMobile: a.DepartmentCustomMobile, HospitalID: hospitalId, IsPlatformDeepCooperation: a.IsPlatformDeepCooperation, + IsSysDiagnoCooperation: a.IsSysDiagnoCooperation, BeGoodAt: a.BeGoodAt, BriefIntroduction: a.BriefIntroduction, } @@ -843,3 +855,66 @@ func (r *UserDoctorService) GetUserDoctorBankByDoctorId(doctorId int64) (*doctor return doctorExpertisesResponse, nil } + +// GetUserDoctorPending 医生详情-审核 +func (r *UserDoctorService) GetUserDoctorPending(doctorId int64) (g *userDoctorResponse.GetUserDoctorPending, err error) { + // 获取医生数据 + userDoctorDao := dao.UserDoctorDao{} + userDoctor, err := userDoctorDao.GetUserDoctorPreloadById(doctorId) + if err != nil || userDoctor == nil { + return nil, errors.New("用户数据错误") + } + + userDoctorService := UserDoctorService{} + + // 获取医生专长 + doctorExpertise, err := userDoctorService.GetUserDoctorExpertiseByDoctorId(doctorId) + if err != nil { + return nil, errors.New(err.Error()) + } + + // 处理返回值 + var userDoctorInfo *userDoctorInfoResponse.UserDoctorInfo + if userDoctor.UserDoctorInfo != nil { + userDoctorInfo = userDoctorInfoResponse.UserDoctorInfoResponse(userDoctor.UserDoctorInfo) + } + + // 医院 + var hospital *hospitalResponse.Hospital + if userDoctor.Hospital != nil { + hospital = hospitalResponse.HospitalResponse(userDoctor.Hospital) + } + + // 用户 + var user *userResponse.User + if userDoctor.User != nil { + user = userResponse.UserResponse(userDoctor.User) + } + + g = &userDoctorResponse.GetUserDoctorPending{ + DoctorID: strconv.Itoa(int(userDoctor.DoctorId)), + UserID: strconv.Itoa(int(userDoctor.UserId)), + UserName: userDoctor.UserName, + Status: userDoctor.Status, + IDCardStatus: userDoctor.Status, + IdenAuthStatus: userDoctor.IdenAuthStatus, + IdenAuthTime: userDoctor.IdenAuthTime, + IdenAuthFailReason: userDoctor.IdenAuthFailReason, + Avatar: config.C.Oss.OssCustomDomainName + userDoctor.Avatar, + DoctorTitle: userDoctor.DoctorTitle, + DepartmentCustomID: strconv.Itoa(int(userDoctor.DepartmentCustomId)), + DepartmentCustomName: userDoctor.DepartmentCustomName, + DepartmentCustomMobile: userDoctor.DepartmentCustomMobile, + HospitalID: strconv.Itoa(int(userDoctor.HospitalID)), + BeGoodAt: userDoctor.BeGoodAt, + BriefIntroduction: userDoctor.BriefIntroduction, + CreatedAt: userDoctor.CreatedAt, + UpdatedAt: userDoctor.UpdatedAt, + User: user, + Hospital: hospital, + UserDoctorInfo: userDoctorInfo, + DoctorExpertise: doctorExpertise, // 专长 + } + + return g, nil +}