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
|
||
}
|