新增处理医生问诊配置方法,后台多点审核医生时,增加医生问诊购药配置
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"hospital-admin-api/api/dao"
|
||||
"hospital-admin-api/api/model"
|
||||
"hospital-admin-api/global"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// InquiryConfigService 问诊配置
|
||||
type InquiryConfigService struct {
|
||||
DoctorInquiryConfigService // 医生问诊配置
|
||||
SystemInquiryConfigService // 系统问诊配置
|
||||
}
|
||||
|
||||
// DoctorInquiryConfigService 医生问诊配置
|
||||
type DoctorInquiryConfigService struct {
|
||||
}
|
||||
|
||||
// SystemInquiryConfigService 系统问诊配置
|
||||
type SystemInquiryConfigService struct {
|
||||
}
|
||||
|
||||
// HandleDoctorInquiryConfig 处理医生问诊配置
|
||||
func (r *DoctorInquiryConfigService) HandleDoctorInquiryConfig(doctorId int64, inquiryType, inquiryMode, isEnable, workNumDay int, inquiryPrice float64) (bool, error) {
|
||||
var err error
|
||||
|
||||
if inquiryType == 4 && inquiryMode == 1 {
|
||||
// 获取系统配置-问诊购药类型
|
||||
systemInquiryConfigDao := dao.SystemInquiryConfigDao{}
|
||||
|
||||
maps := make(map[string]interface{})
|
||||
maps["inquiry_type"] = inquiryType
|
||||
maps["inquiry_mode"] = inquiryMode
|
||||
systemInquiryConfig, _ := systemInquiryConfigDao.GetSystemInquiryConfig(maps)
|
||||
if systemInquiryConfig == nil {
|
||||
return false, errors.New("缺少系统配置")
|
||||
}
|
||||
|
||||
// 问诊人数
|
||||
workNumDay = systemInquiryConfig.MaxWorkNumDay
|
||||
|
||||
// 问诊价格
|
||||
inquiryPrice, err = strconv.ParseFloat(systemInquiryConfig.InquiryPrice, 64)
|
||||
if err != nil {
|
||||
return false, errors.New("系统价格错误")
|
||||
}
|
||||
}
|
||||
|
||||
// 开始事务
|
||||
tx := global.Db.Begin()
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
tx.Rollback()
|
||||
}
|
||||
}()
|
||||
|
||||
// 获取医生当前问诊配置
|
||||
doctorInquiryConfigDao := dao.DoctorInquiryConfigDao{}
|
||||
|
||||
maps := make(map[string]interface{})
|
||||
maps["doctor_id"] = doctorId
|
||||
maps["inquiry_type"] = inquiryType
|
||||
maps["inquiry_mode"] = inquiryMode
|
||||
d, _ := doctorInquiryConfigDao.GetDoctorInquiryConfig(maps)
|
||||
if d == nil {
|
||||
// 新增
|
||||
m := &model.DoctorInquiryConfig{
|
||||
DoctorId: doctorId,
|
||||
InquiryType: inquiryType,
|
||||
InquiryMode: inquiryMode,
|
||||
IsEnable: isEnable,
|
||||
LastEnableMethod: 2,
|
||||
WorkNumDay: workNumDay,
|
||||
InquiryPrice: inquiryPrice,
|
||||
}
|
||||
|
||||
adminUser, _ := doctorInquiryConfigDao.AddDoctorInquiryConfig(tx, m)
|
||||
if adminUser == nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("新增失败")
|
||||
}
|
||||
} else {
|
||||
// 修改
|
||||
data := make(map[string]interface{})
|
||||
|
||||
if d.IsEnable != isEnable {
|
||||
data["is_enable"] = isEnable
|
||||
}
|
||||
|
||||
if d.WorkNumDay != workNumDay {
|
||||
data["work_num_day"] = workNumDay
|
||||
}
|
||||
|
||||
if d.InquiryPrice != inquiryPrice {
|
||||
data["inquiry_price"] = inquiryPrice
|
||||
}
|
||||
|
||||
if len(data) > 0 {
|
||||
if d.LastEnableMethod != 2 {
|
||||
data["last_enable_method"] = 2
|
||||
}
|
||||
|
||||
err := doctorInquiryConfigDao.EditDoctorInquiryConfigById(tx, d.InquiryConfigId, data)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("修改失败")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true, nil
|
||||
}
|
||||
@@ -1556,6 +1556,17 @@ func (r *UserDoctorService) PutMulti(doctorId int64, req requests.PutMulti) (boo
|
||||
return false, errors.New("审核失败")
|
||||
}
|
||||
|
||||
// 处理问诊配置数据
|
||||
if req.MultiPointStatus == 1 {
|
||||
// 审核通过后,创建问诊购药问诊配置
|
||||
inquiryConfigService := InquiryConfigService{}
|
||||
_, err = inquiryConfigService.HandleDoctorInquiryConfig(doctorId, 4, 1, 1, 0, 0)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
return false, errors.New("审核失败")
|
||||
}
|
||||
|
||||
}
|
||||
tx.Commit()
|
||||
return true, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user