hospital-admin-api/api/dto/SystemInquiryConfig.go

91 lines
3.7 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}