新增医生服务设置-疑难会诊

This commit is contained in:
2024-02-19 15:29:14 +08:00
parent 6a4db0422e
commit 478ac7a5a3
6 changed files with 311 additions and 34 deletions
+91 -3
View File
@@ -115,14 +115,14 @@ func (r *DoctorInquiryConfigService) GetDoctorInquiryConfig(inquiryConfigId int6
// 获取医生问诊配置
doctorInquiryConfig, err := doctorInquiryConfigDao.GetDoctorInquiryConfigById(inquiryConfigId)
if err != nil || doctorInquiryConfig == nil {
return nil, errors.New(err.Error())
return nil, errors.New("获取失败")
}
// 获取医生数据
userDoctorDao := dao.UserDoctorDao{}
userDoctor, err := userDoctorDao.GetUserDoctorById(doctorInquiryConfig.DoctorId)
if err != nil || userDoctor == nil {
return nil, errors.New(err.Error())
return nil, errors.New("获取失败")
}
// 获取医生医院数据
@@ -137,7 +137,7 @@ func (r *DoctorInquiryConfigService) GetDoctorInquiryConfig(inquiryConfigId int6
maps["inquiry_mode"] = doctorInquiryConfig.InquiryMode
systemInquiryConfig, err := systemInquiryConfigDao.GetSystemInquiryConfig(maps)
if err != nil || systemInquiryConfig == nil {
return nil, errors.New(err.Error())
return nil, errors.New("获取失败")
}
// 获取医生问诊时间
@@ -165,6 +165,20 @@ func (r *DoctorInquiryConfigService) GetDoctorInquiryConfig(inquiryConfigId int6
res.LoadDoctorInquiryTime(doctorInquiryTimes)
}
// 获取医生问诊配置-疑难问诊-服务设置
if doctorInquiryConfig.InquiryType == 1 && doctorInquiryConfig.InquiryMode == 6 {
doctorInquiryConfigServiceDao := dao.DoctorInquiryConfigServiceDao{}
maps = make(map[string]interface{})
maps["doctor_id"] = doctorInquiryConfig.DoctorId
maps["inquiry_type"] = doctorInquiryConfig.InquiryType
maps["inquiry_mode"] = doctorInquiryConfig.InquiryMode
doctorInquiryConfigService, err := doctorInquiryConfigServiceDao.GetDoctorInquiryConfigServiceFirst(maps)
if doctorInquiryConfigService != nil && err == nil {
res.LoadDoctorInquiryConfigService(doctorInquiryConfigService)
}
}
return res, nil
}
@@ -244,6 +258,13 @@ func (r *DoctorInquiryConfigService) PutDoctorInquiryConfig(inquiryConfigId int6
}
}
// 验证医生服务设置-疑难会诊
if doctorInquiryConfig.InquiryType == 1 || doctorInquiryConfig.InquiryType == 6 {
if req.DoctorInquiryConfigService == nil {
return false, errors.New("请填写疑难会诊服务设置")
}
}
// 开始事务
tx := global.Db.Begin()
defer func() {
@@ -330,6 +351,44 @@ func (r *DoctorInquiryConfigService) PutDoctorInquiryConfig(inquiryConfigId int6
}
}
// 修改医生服务设置-疑难会诊
if doctorInquiryConfig.InquiryType == 1 || doctorInquiryConfig.InquiryType == 6 {
// 获取医生服务设置-疑难会诊
doctorInquiryConfigServiceDao := dao.DoctorInquiryConfigServiceDao{}
maps = make(map[string]interface{})
maps["doctor_id"] = doctorInquiryConfig.DoctorId
maps["inquiry_type"] = doctorInquiryConfig.InquiryType
maps["inquiry_mode"] = doctorInquiryConfig.InquiryMode
doctorInquiryConfigService, err := doctorInquiryConfigServiceDao.GetDoctorInquiryConfigServiceFirst(maps)
if doctorInquiryConfigService != nil && err != nil {
doctorInquiryConfigServiceData := make(map[string]interface{})
if req.DoctorInquiryConfigService.ServiceContent != doctorInquiryConfigService.ServiceContent {
doctorInquiryConfigServiceData["service_content"] = req.DoctorInquiryConfigService.ServiceContent
}
if req.DoctorInquiryConfigService.ServiceProcess != doctorInquiryConfigService.ServiceProcess {
doctorInquiryConfigServiceData["service_process"] = req.DoctorInquiryConfigService.ServiceProcess
}
if req.DoctorInquiryConfigService.ServicePeriod != doctorInquiryConfigService.ServicePeriod {
doctorInquiryConfigServiceData["service_period"] = req.DoctorInquiryConfigService.ServicePeriod
}
if req.DoctorInquiryConfigService.ServiceRounds != doctorInquiryConfigService.ServiceRounds {
doctorInquiryConfigServiceData["service_rounds"] = req.DoctorInquiryConfigService.ServiceRounds
}
err := doctorInquiryConfigServiceDao.EditDoctorInquiryConfigServiceById(tx, doctorInquiryConfigService.ConfigServiceId, doctorInquiryConfigServiceData)
if err != nil {
tx.Rollback()
return false, errors.New("修改失败")
}
}
}
tx.Commit()
return true, nil
}
@@ -503,6 +562,27 @@ func (r *DoctorInquiryConfigService) AddDoctorInquiryConfig(req requests.AddDoct
}
}
// 新增医生服务设置-疑难会诊
if req.InquiryType == 1 || req.InquiryMode == 6 {
doctorInquiryConfigServiceDao := dao.DoctorInquiryConfigServiceDao{}
doctorInquiryConfigService := &model.DoctorInquiryConfigService{
DoctorId: doctorId,
InquiryType: req.InquiryType,
InquiryMode: req.InquiryMode,
ServiceContent: req.DoctorInquiryConfigService.ServiceContent,
ServiceProcess: req.DoctorInquiryConfigService.ServiceProcess,
ServicePeriod: req.DoctorInquiryConfigService.ServicePeriod,
ServiceRounds: req.DoctorInquiryConfigService.ServiceRounds,
}
doctorInquiryConfigService, err = doctorInquiryConfigServiceDao.AddDoctorInquiryConfigService(tx, doctorInquiryConfigService)
if err != nil || doctorInquiryConfigService == nil {
tx.Rollback()
return false, errors.New(err.Error())
}
}
tx.Commit()
return true, nil
}
@@ -541,6 +621,14 @@ func (r *SystemInquiryConfigService) PutSystemInquiryConfig(systemInquiryConfigI
if req.InquiryPrice == "" {
return false, errors.New("请设置问诊价格")
}
} else if systemInquiryConfig.InquiryType == 1 && systemInquiryConfig.InquiryMode == 2 {
if req.MaxInquiryPrice == 0 {
return false, errors.New("最高接诊价格应大于0")
}
} else if systemInquiryConfig.InquiryType == 1 && systemInquiryConfig.InquiryMode == 6 {
if req.MaxInquiryPrice == 0 {
return false, errors.New("最高接诊价格应大于0")
}
}
// 开始事务