From 5c77f6da99f2498e9fafd848005372e1b68cd36c Mon Sep 17 00:00:00 2001 From: wucongxing <815046773@qq.com> Date: Thu, 19 Oct 2023 09:01:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96=E5=8C=BB?= =?UTF-8?q?=E7=94=9F=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 +++- api/controller/userDoctor.go | 26 ++++++++++++++++++++++++++ api/dao/userDoctor.go | 31 +++++++++++++++++++++++++++++++ api/requests/userDoctor.go | 6 ++++++ api/router/router.go | 3 +++ 5 files changed, 69 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 0d992f9..db3733c 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,6 @@ *.log # Dependency directories (remove the comment below to include it) -# vendor/ \ No newline at end of file +# vendor/ +.idea/ +.git/ \ No newline at end of file diff --git a/api/controller/userDoctor.go b/api/controller/userDoctor.go index 6747da5..ba6a020 100644 --- a/api/controller/userDoctor.go +++ b/api/controller/userDoctor.go @@ -372,3 +372,29 @@ func (r *UserDoctor) PutMulti(c *gin.Context) { responses.Ok(c) } + +// GetUserDoctorList 获取医生列表 +func (r *UserDoctor) GetUserDoctorList(c *gin.Context) { + req := requests.UserDoctorRequest{} + if err := c.ShouldBind(&req.GetUserDoctorList); err != nil { + responses.FailWithMessage(err.Error(), c) + return + } + + // 参数验证 + if err := global.Validate.Struct(req.GetUserDoctorList); err != nil { + responses.FailWithMessage(utils.Translate(err), c) + return + } + + userDoctorDao := dao.UserDoctorDao{} + userDoctor, err := userDoctorDao.GetUserDoctorListSearch(req.GetUserDoctorList) + if err != nil { + responses.FailWithMessage(err.Error(), c) + return + } + + // 处理返回值 + res := dto.GetUserDoctorListDto(userDoctor) + responses.OkWithData(res, c) +} diff --git a/api/dao/userDoctor.go b/api/dao/userDoctor.go index 20b1019..9e32d2b 100644 --- a/api/dao/userDoctor.go +++ b/api/dao/userDoctor.go @@ -362,3 +362,34 @@ func (r *UserDoctorDao) GetUserDoctorMultiPageSearch(p requests.GetMultiPage, pa } return m, totalRecords, nil } + +// GetUserDoctorListSearch 获取医生列表 +func (r *UserDoctorDao) GetUserDoctorListSearch(req requests.GetUserDoctorList) (m []*model.UserDoctor, err error) { + + // 构建查询条件 + 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 req.UserName != "" { + query = query.Where("user_name LIKE ?", "%"+req.UserName+"%") + } + + // 排序 + query = query.Order("created_at desc") + + err = query.Scopes(model.Paginate(1, 10)).Find(&m).Error + if err != nil { + return nil, err + } + return m, nil +} diff --git a/api/requests/userDoctor.go b/api/requests/userDoctor.go index a7a10b8..973e91d 100644 --- a/api/requests/userDoctor.go +++ b/api/requests/userDoctor.go @@ -8,6 +8,7 @@ type UserDoctorRequest struct { PutUserDoctorPending // 身份审核-审核医生 GetMultiPage // 多点-获取医生列表-分页 PutMulti // 多点-审核医生 + GetUserDoctorList // 获取医生列表 } // GetUserDoctorPage 获取医生列表-分页 @@ -126,3 +127,8 @@ type PutMulti struct { MultiPointStatus int `json:"multi_point_status" form:"multi_point_status" validate:"required,oneof=1 3" label:"医生多点执业认证状态"` // (0:未认证 1:认证通过 2:审核中 3:认证失败) MultiPointFailReason string `json:"multi_point_fail_reason" form:"multi_point_fail_reason" label:"多点执业认证失败原因"` } + +// GetUserDoctorList 获取医生列表 +type GetUserDoctorList struct { + UserName string `json:"user_name" form:"user_name" label:"医生姓名"` +} diff --git a/api/router/router.go b/api/router/router.go index 42122f4..b2c6323 100644 --- a/api/router/router.go +++ b/api/router/router.go @@ -325,6 +325,9 @@ func privateRouter(r *gin.Engine, api controller.Api) { // 获取医生列表-分页 doctorGroup.GET("", api.UserDoctor.GetUserDoctorPage) + // 获取医生列表 + doctorGroup.GET("/list", api.UserDoctor.GetUserDoctorList) + // 医生详情 doctorGroup.GET("/:doctor_id", api.UserDoctor.GetUserDoctor)