2025-02-07 22:58:01 +08:00

63 lines
1.4 KiB
Go

package dto
import (
"encoding/json"
"time"
)
// 自定义时间格式
const customTimeFormat = "2006-01-02 15:04:05"
func (t *Task) UnmarshalJSON(data []byte) error {
type Alias Task
aux := &struct {
StartTime string `json:"startTime"`
EndTime string `json:"endTime"`
*Alias
}{
Alias: (*Alias)(t),
}
if err := json.Unmarshal(data, &aux); err != nil {
return err
}
var err error
t.StartTime, err = time.ParseInLocation(customTimeFormat, aux.StartTime, time.Local)
if err != nil {
return err
}
t.EndTime, err = time.ParseInLocation(customTimeFormat, aux.EndTime, time.Local)
if err != nil {
return err
}
return nil
}
type Task struct {
TaskID string `json:"taskId"`
ScenicID string `json:"scenicId"`
DeviceID string `json:"deviceId"`
DeviceNo string `json:"deviceNo"`
StartTime time.Time `json:"startTime"`
EndTime time.Time `json:"endTime"`
}
type FileObject struct {
URL string `json:"url"`
NeedDownload bool `json:"needDownload"`
CreateTime time.Time `json:"createTime"`
EndTime time.Time `json:"endTime"`
}
func (f *FileObject) MarshalJSON() ([]byte, error) {
type Alias FileObject
return json.Marshal(&struct {
CreateTime string `json:"createTime"`
EndTime string `json:"endTime"`
*Alias
}{
CreateTime: f.CreateTime.Format(customTimeFormat),
EndTime: f.EndTime.Format(customTimeFormat),
Alias: (*Alias)(f),
})
}