91 lines
3.7 KiB
Go
91 lines
3.7 KiB
Go
package dto
|
|
|
|
import (
|
|
"fmt"
|
|
"hospital-admin-api/api/model"
|
|
)
|
|
|
|
type SystemInquiryConfigDto struct {
|
|
SystemInquiryConfigId string `json:"system_inquiry_config_id"` // 主键id
|
|
InquiryType int `json:"inquiry_type"` // 接诊类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药 5:检测)
|
|
InquiryMode int `json:"inquiry_mode"` // 接诊方式(1:图文 2:视频 3:语音 4:电话 5:会员)
|
|
DefaultWorkNumDay int `json:"default_work_num_day"` // 默认每日接诊数量
|
|
MaxWorkNumDay int `json:"max_work_num_day"` // 每日最大接诊数量
|
|
InquiryPrice string `json:"inquiry_price"` // 接诊价格
|
|
MinInquiryPrice *float64 `json:"min_inquiry_price"` // 最低接诊价格(专家问诊)
|
|
MaxInquiryPrice *float64 `json:"max_inquiry_price"` // 最高接诊价格(专家问诊)
|
|
TimesNumber int `json:"times_number"` // 沟通次数(0为不限制次数)
|
|
Duration int `json:"duration"` // 沟通时长(分钟,0为不限制时长)
|
|
CreatedAt model.LocalTime `json:"created_at"` // 创建时间
|
|
UpdatedAt model.LocalTime `json:"updated_at"` // 修改时间
|
|
SystemInquiryTime []*SystemInquiryTimeDto `json:"system_inquiry_time"` // 系统问诊时间配置
|
|
}
|
|
|
|
func GetSystemInquiryConfigDto(m *model.SystemInquiryConfig) *SystemInquiryConfigDto {
|
|
MinInquiryPrice := &m.MinInquiryPrice
|
|
MaxInquiryPrice := &m.MaxInquiryPrice
|
|
if m.InquiryType == 2 || m.InquiryType == 3 || m.InquiryType == 4 {
|
|
MinInquiryPrice = nil
|
|
MaxInquiryPrice = nil
|
|
}
|
|
|
|
return &SystemInquiryConfigDto{
|
|
SystemInquiryConfigId: fmt.Sprintf("%d", m.SystemInquiryConfigId),
|
|
InquiryType: m.InquiryType,
|
|
InquiryMode: m.InquiryMode,
|
|
DefaultWorkNumDay: m.DefaultWorkNumDay,
|
|
MaxWorkNumDay: m.MaxWorkNumDay,
|
|
InquiryPrice: m.InquiryPrice,
|
|
MinInquiryPrice: MinInquiryPrice,
|
|
MaxInquiryPrice: MaxInquiryPrice,
|
|
TimesNumber: m.TimesNumber,
|
|
Duration: m.Duration,
|
|
CreatedAt: m.CreatedAt,
|
|
UpdatedAt: m.UpdatedAt,
|
|
}
|
|
}
|
|
|
|
func GetSystemInquiryConfigListDto(m []*model.SystemInquiryConfig) []*SystemInquiryConfigDto {
|
|
// 处理返回值
|
|
responses := make([]*SystemInquiryConfigDto, len(m))
|
|
|
|
if len(m) > 0 {
|
|
for i, v := range m {
|
|
MinInquiryPrice := &v.MinInquiryPrice
|
|
MaxInquiryPrice := &v.MaxInquiryPrice
|
|
if v.InquiryType == 2 || v.InquiryType == 3 || v.InquiryType == 4 {
|
|
MinInquiryPrice = nil
|
|
MaxInquiryPrice = nil
|
|
}
|
|
|
|
response := &SystemInquiryConfigDto{
|
|
SystemInquiryConfigId: fmt.Sprintf("%d", v.SystemInquiryConfigId),
|
|
InquiryType: v.InquiryType,
|
|
InquiryMode: v.InquiryMode,
|
|
DefaultWorkNumDay: v.DefaultWorkNumDay,
|
|
MaxWorkNumDay: v.MaxWorkNumDay,
|
|
InquiryPrice: v.InquiryPrice,
|
|
MinInquiryPrice: MinInquiryPrice,
|
|
MaxInquiryPrice: MaxInquiryPrice,
|
|
TimesNumber: v.TimesNumber,
|
|
Duration: v.Duration,
|
|
CreatedAt: v.CreatedAt,
|
|
UpdatedAt: v.UpdatedAt,
|
|
}
|
|
|
|
// 将转换后的结构体添加到新切片中
|
|
responses[i] = response
|
|
}
|
|
}
|
|
|
|
return responses
|
|
}
|
|
|
|
// LoadSystemInquiryTime 加载系统问诊时间
|
|
func (r *SystemInquiryConfigDto) LoadSystemInquiryTime(m []*model.SystemInquiryTime) *SystemInquiryConfigDto {
|
|
if len(m) > 0 {
|
|
r.SystemInquiryTime = GetSystemInquiryTimeListDto(m)
|
|
}
|
|
return r
|
|
}
|