63 lines
1.4 KiB
Go
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),
|
|
})
|
|
}
|