157 lines
8.2 KiB
Go
157 lines
8.2 KiB
Go
package models
|
||
|
||
import (
|
||
"fmt"
|
||
"time"
|
||
)
|
||
|
||
type BackObservation struct {
|
||
ID int `gorm:"primaryKey;column:id" json:"id"` // ID
|
||
Name string `gorm:"column:name" json:"name"` // 姓名
|
||
Age int `gorm:"column:age" json:"age"` // 年龄
|
||
Sex int `gorm:"column:sex" json:"sex"` // 性别
|
||
Phone string `gorm:"column:phone" json:"phone"` // 手机号码
|
||
Identification string `gorm:"column:identification" json:"identification"` // 身份证号
|
||
ContactPerson int `gorm:"column:contact_person" json:"contactPerson"` // 接触者id
|
||
Region string `gorm:"column:region" json:"region"` // 受观察者所在区域
|
||
Address string `gorm:"column:address" json:"address"` // 受观察者所在具体地点
|
||
HealthSituation int `gorm:"column:health_situation" json:"healthSituation"` // 被观察者的疫情状况:0- 其他,1-患者,2-密接,3-次密接
|
||
HealthChangeTime time.Time `gorm:"column:health_change_time" json:"healthChangeTime"` // 患者健康状况转化时间
|
||
MeasureSituation int `gorm:"column:measure_situation" json:"measureSituation"` // 受观察者被采取措施状况 :0-未采取措施,1-解除风险,2-正在治疗,3-集中隔离,4-居家隔离
|
||
Trajectory string `gorm:"column:trajectory" json:"trajectory"` // 行程轨迹
|
||
CreateUser int `gorm:"column:create_user" json:"createUser"` // 创建者
|
||
CreateTime time.Time `gorm:"column:create_time" json:"createTime"` // 创建时间
|
||
ModifyUser int `gorm:"column:modify_user" json:"modifyUser"` // 修改者
|
||
ModifyTime time.Time `gorm:"column:modify_time" json:"modifyTime"` // 修改时间
|
||
IsDelete int `gorm:"column:is_delete" json:"isDelete"` // 删除标志
|
||
}
|
||
|
||
type BackLocation struct {
|
||
ID int `gorm:"primaryKey;column:id" json:"id"` // ID
|
||
Name string `gorm:"column:name" json:"name"` // 地点名
|
||
Region string `gorm:"column:region" json:"region"` // 地点所在地区
|
||
Address string `gorm:"column:address" json:"address"` // 地点的精确地址
|
||
PrincipalName string `gorm:"column:principal_name" json:"principalName"` // 负责人姓名
|
||
PrincipalPhone string `gorm:"column:principal_phone" json:"principalPhone"` // 负责人电话
|
||
CreateUser int `gorm:"column:create_user" json:"createUser"` // 创建者
|
||
CreateTime time.Time `gorm:"column:create_time" json:"createTime"` // 创建时间
|
||
ModifyUser int `gorm:"column:modify_user" json:"modifyUser"` // 修改者
|
||
ModifyTime time.Time `gorm:"column:modify_time" json:"modifyTime"` // 修改时间
|
||
IsDelete int `gorm:"column:is_delete" json:"isDelete"` // 删除标志
|
||
}
|
||
|
||
type BackPcr struct {
|
||
ID int `gorm:"primaryKey;column:id" json:"id"` // ID
|
||
Observation int `gorm:"column:observation" json:"observation"` // 观察对象ID
|
||
DetectTime time.Time `gorm:"column:detect_time" json:"detectTime"` // 核酸检测时间
|
||
DetectResult int `gorm:"column:detect_result" json:"detectResult"` // 核酸检测结果:0-未检测,1-阴性,2-阳性
|
||
CreateUser int `gorm:"column:create_user" json:"createUser"` // 创建者
|
||
CreateTime time.Time `gorm:"column:create_time" json:"createTime"` // 创建时间
|
||
ModifyUser int `gorm:"column:modify_user" json:"modifyUser"` // 修改者
|
||
ModifyTime time.Time `gorm:"column:modify_time" json:"modifyTime"` // 修改时间
|
||
IsDelete int `gorm:"column:is_delete" json:"isDelete"` // 删除标志
|
||
}
|
||
|
||
type BackSituationRecord struct {
|
||
ID int `gorm:"primaryKey;column:id" json:"id"` // ID
|
||
Observation int `gorm:"column:observation" json:"observation"` // 观察对象
|
||
Record string `gorm:"column:record" json:"record"` // 状态转化记录
|
||
CreateUser int `gorm:"column:create_user" json:"createUser"` // 创建者
|
||
CreateTime time.Time `gorm:"column:create_time" json:"createTime"` // 创建时间
|
||
ModifyUser int `gorm:"column:modify_user" json:"modifyUser"` // 修改者
|
||
ModifyTime time.Time `gorm:"column:modify_time" json:"modifyTime"` // 修改时间
|
||
IsDelete int `gorm:"column:is_delete" json:"isDelete"` // 删除标志
|
||
}
|
||
|
||
type ListObeservation struct {
|
||
ID int `json:"id"`
|
||
Name string `json:"name"` // 姓名
|
||
Age int `json:"age"` // 年龄
|
||
Sex int `json:"sex"` // 性别
|
||
Phone string `json:"phone"` // 手机号码
|
||
Identification string `json:"identification"` // 身份证号
|
||
ContactPerson int `json:"contactPerson"` // 接触者id
|
||
Region string `json:"region"` // 受观察者所在区域
|
||
Address string `json:"address"` // 受观察者所在具体地点
|
||
HealthSituation int `json:"healthSituation"` // 被观察者的疫情状况:0- 其他,1-患者,2-密接,3-次密接
|
||
HealthChangeTime time.Time `json:"healthChangeTime"` // 患者健康状况转化时间
|
||
MeasureSituation int `json:"measureSituation"` // 受观察者被采取措施状况 :0-未采取措施,1-解除风险,2-正在治疗,3-集中隔离,4-居家隔离
|
||
Trajectory string `json:"trajectory"` // 行程轨迹
|
||
CreateUser int `json:"createUser"` // 创建者
|
||
CreateTime time.Time `json:"createTime"` // 创建时间
|
||
ModifyUser int `json:"modifyUser"` // 修改者
|
||
ModifyTime time.Time `json:"modifyTime"` // 修改时间
|
||
PcrTime time.Time `json:"pcrTime"` //核酸时间
|
||
PcrResult int `json:"pcrResult"` //核酸结果
|
||
RecordTime time.Time `json:"recordTime"` //状态转换时间
|
||
Record string `json:"record"` //状态转换内容
|
||
}
|
||
|
||
type QueryObservation struct {
|
||
BackObservation
|
||
PcrRecord []BackPcr `json:"pcrRecord"`
|
||
SituationRecord []BackSituationRecord `json:"situationRecord"`
|
||
}
|
||
|
||
func init() {
|
||
initJcMap[BackObservation]()
|
||
initJcMap[BackLocation]()
|
||
initJcMap[BackPcr]()
|
||
initJcMap[BackSituationRecord]()
|
||
}
|
||
|
||
type FakerDate time.Time
|
||
|
||
const (
|
||
timeFormat = "2006-01-02"
|
||
)
|
||
|
||
func (t *FakerDate) UnmarshalJSON(data []byte) (err error) {
|
||
newTime, err := time.ParseInLocation(`"`+timeFormat+`"`, string(data), time.Local)
|
||
*t = FakerDate(newTime)
|
||
return
|
||
}
|
||
|
||
func (t FakerDate) MarshalJSON() ([]byte, error) {
|
||
timeStr := fmt.Sprintf("\"%s\"", time.Time(t).Format(timeFormat))
|
||
return []byte(timeStr), nil
|
||
}
|
||
|
||
func (t FakerDate) String() string {
|
||
return time.Time(t).Format(timeFormat)
|
||
}
|
||
|
||
type HotelContactRequest struct {
|
||
Name string `json:"name"`
|
||
Age int `json:"age,string"`
|
||
Sex int `json:"sex,string"`
|
||
Phone string `json:"phone"`
|
||
Address string `json:"address"`
|
||
HotelCode string `json:"hotel_code"`
|
||
HotelName string `json:"hotel_name"`
|
||
LocateCityId string `json:"locate_city_id"`
|
||
Identification string `json:"identification"`
|
||
InData FakerDate `json:"in_data"`
|
||
OutData FakerDate `json:"out_data"`
|
||
}
|
||
|
||
type RailwayContactRequest struct {
|
||
Name string `json:"name"`
|
||
Age int `json:"age,string"`
|
||
Sex int `json:"sex,string"`
|
||
Phone string `json:"phone"`
|
||
Address string `json:"address"`
|
||
Train string `json:"train"`
|
||
Launch FakerDate `json:"launch"`
|
||
Identification string `json:"identification"`
|
||
}
|
||
|
||
type PatientRequest struct {
|
||
Name string `json:"name"`
|
||
Age int `json:"age,string"`
|
||
Sex int `json:"sex,string"`
|
||
Phone string `json:"phone"`
|
||
Address string `json:"address"`
|
||
Identification string `json:"identification"`
|
||
}
|