From 649ace79cfd8074a817dbf08b669a57128376165 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=85=89=E6=98=A5?= Date: Mon, 12 Sep 2022 17:51:26 +0800 Subject: [PATCH] - update mongo model --- client.go | 5 -- const.go | 2 +- jobs_mongo_model/task.go | 71 +++++++++++++++------- jobs_mongo_model/task_issue_record.go | 52 ---------------- jobs_mongo_model/task_log.go | 19 ------ jobs_mongo_model/task_log_run.go | 25 -------- model.go | 85 +-------------------------- 7 files changed, 52 insertions(+), 207 deletions(-) delete mode 100644 jobs_mongo_model/task_issue_record.go delete mode 100644 jobs_mongo_model/task_log.go delete mode 100644 jobs_mongo_model/task_log_run.go diff --git a/client.go b/client.go index ea7f698..cbd9e9e 100644 --- a/client.go +++ b/client.go @@ -119,11 +119,6 @@ func NewClient(config *ClientConfig) (*Client, error) { c.mongoCreateCollectionTask(ctx) c.mongoCreateIndexesTask(ctx) - c.mongoCreateCollectionTaskLog(ctx) - c.mongoCreateIndexesTaskLog(ctx) - c.mongoCreateCollectionTaskLogRun(ctx) - c.mongoCreateIndexesTaskLogRun(ctx) - c.mongoCreateCollectionTaskIssueRecord(ctx) } return c, nil diff --git a/const.go b/const.go index d384d1a..270de17 100644 --- a/const.go +++ b/const.go @@ -1,6 +1,6 @@ package gojobs const ( - Version = "1.0.79" + Version = "1.0.80" SpecifyIpNull = "0.0.0.0" ) diff --git a/jobs_mongo_model/task.go b/jobs_mongo_model/task.go index 26fae8a..40e032d 100644 --- a/jobs_mongo_model/task.go +++ b/jobs_mongo_model/task.go @@ -6,27 +6,56 @@ import ( // Task 任务 type Task struct { - Id primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"` // 记录编号 - Status string `json:"status,omitempty" bson:"status,omitempty"` // 状态码 - Params string `json:"params,omitempty" bson:"params,omitempty"` // 参数 - ParamsType string `json:"params_type,omitempty" bson:"params_type,omitempty"` // 参数类型 - StatusDesc string `json:"status_desc,omitempty" bson:"status_desc,omitempty"` // 状态描述 - Frequency int64 `json:"frequency,omitempty" bson:"frequency,omitempty"` // 频率(秒单位) - Number int64 `json:"number,omitempty" bson:"number,omitempty"` // 当前次数 - MaxNumber int64 `json:"max_number,omitempty" bson:"max_number,omitempty"` // 最大次数 - RunId string `json:"run_id,omitempty" bson:"run_id,omitempty"` // 执行编号 - CustomId string `json:"custom_id,omitempty" bson:"custom_id,omitempty"` // 自定义编号 - CustomSequence int64 `json:"custom_sequence,omitempty" bson:"custom_sequence,omitempty"` // 自定义顺序 - Type string `json:"type,omitempty" bson:"type,omitempty"` // 类型 - TypeName string `json:"type_name,omitempty" bson:"type_name,omitempty"` // 类型名称 - CreatedIp string `json:"created_ip,omitempty" bson:"created_ip,omitempty"` // 创建外网IP - SpecifyIp string `json:"specify_ip,omitempty" bson:"specify_ip,omitempty"` // 指定外网IP - UpdatedIp string `json:"updated_ip,omitempty" bson:"updated_ip,omitempty"` // 更新外网IP - Result string `json:"result,omitempty" bson:"result,omitempty"` // 结果 - NextRunTime primitive.DateTime `json:"next_run_time,omitempty" bson:"next_run_time,omitempty"` // 下次运行时间 - CreatedAt primitive.DateTime `json:"created_at,omitempty" bson:"created_at,omitempty"` // 创建时间 - UpdatedAt primitive.DateTime `json:"updated_at,omitempty" bson:"updated_at,omitempty"` // 更新时间 - DeletedAt primitive.DateTime `json:"deleted_at,omitempty" bson:"deleted_at,omitempty"` // 删除时间 + Id primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"` //【系统】记录编号 + Status string `json:"status,omitempty" bson:"status,omitempty"` //【系统】状态码 + Params string `json:"params,omitempty" bson:"params,omitempty"` //【系统】参数 + StatusDesc string `json:"status_desc,omitempty" bson:"status_desc,omitempty"` //【系统】状态描述 + Frequency int64 `json:"frequency,omitempty" bson:"frequency,omitempty"` //【系统】频率(秒单位) + Number int64 `json:"number,omitempty" bson:"number,omitempty"` //【系统】当前次数 + MaxNumber int64 `json:"max_number,omitempty" bson:"max_number,omitempty"` //【系统】最大次数 + RunId string `json:"run_id,omitempty" bson:"run_id,omitempty"` //【系统】执行编号 + CustomId string `json:"custom_id,omitempty" bson:"custom_id,omitempty"` //【系统】自定义编号 + CustomSequence int64 `json:"custom_sequence,omitempty" bson:"custom_sequence,omitempty"` //【系统】自定义顺序 + Type string `json:"type,omitempty" bson:"type,omitempty"` //【系统】类型 + TypeName string `json:"type_name,omitempty" bson:"type_name,omitempty"` //【系统】类型名称 + SpecifyIp string `json:"specify_ip,omitempty" bson:"specify_ip,omitempty"` //【系统】指定外网IP + CreateRunInfo struct { + SystemHostName string `json:"system_host_name,omitempty" bson:"system_host_name,omitempty"` //【系统】主机名 + SystemInsideIp string `json:"system_inside_ip,omitempty" bson:"system_inside_ip,omitempty"` //【系统】内网ip + SystemOs string `json:"system_os,omitempty" bson:"system_os,omitempty"` //【系统】系统类型 + SystemArch string `json:"system_arch,omitempty" bson:"system_arch,omitempty"` //【系统】系统架构 + SystemCpuQuantity int `json:"system_cpu_quantity,omitempty" bson:"system_cpu_quantity,omitempty"` //【系统】CPU核数 + GoVersion string `json:"go_version,omitempty" bson:"go_version,omitempty"` //【程序】Go版本 + SdkVersion string `json:"sdk_version,omitempty" bson:"sdk_version,omitempty"` //【程序】Sdk版本 + RunTime string `json:"run_time,omitempty" bson:"run_time,omitempty"` //【系统】运行时间 + RunIp string `json:"run_ip,omitempty" bson:"run_ip,omitempty"` //【系统】外网ip + RunResult string `json:"run_result,omitempty" bson:"run_result,omitempty"` //【系统】结果 + } `json:"create_run_info,omitempty" bson:"create_run_info,omitempty"` //【系统】创建运行信息 + CurrentRunInfo struct { + SystemHostName string `json:"system_host_name,omitempty" bson:"system_host_name,omitempty"` //【系统】主机名 + SystemInsideIp string `json:"system_inside_ip,omitempty" bson:"system_inside_ip,omitempty"` //【系统】内网ip + SystemOs string `json:"system_os,omitempty" bson:"system_os,omitempty"` //【系统】系统类型 + SystemArch string `json:"system_arch,omitempty" bson:"system_arch,omitempty"` //【系统】系统架构 + SystemCpuQuantity int `json:"system_cpu_quantity,omitempty" bson:"system_cpu_quantity,omitempty"` //【系统】CPU核数 + GoVersion string `json:"go_version,omitempty" bson:"go_version,omitempty"` //【程序】Go版本 + SdkVersion string `json:"sdk_version,omitempty" bson:"sdk_version,omitempty"` //【程序】Sdk版本 + RunTime string `json:"run_time,omitempty" bson:"run_time,omitempty"` //【系统】运行时间 + RunIp string `json:"run_ip,omitempty" bson:"run_ip,omitempty"` //【系统】外网ip + RunResult string `json:"run_result,omitempty" bson:"run_result,omitempty"` //【系统】结果 + } `json:"current_run_info,omitempty" bson:"current_run_info,omitempty"` //【系统】当前运行信息 + NextRunInfo struct { + SystemHostName string `json:"system_host_name,omitempty" bson:"system_host_name,omitempty"` //【系统】主机名 + SystemInsideIp string `json:"system_inside_ip,omitempty" bson:"system_inside_ip,omitempty"` //【系统】内网ip + SystemOs string `json:"system_os,omitempty" bson:"system_os,omitempty"` //【系统】系统类型 + SystemArch string `json:"system_arch,omitempty" bson:"system_arch,omitempty"` //【系统】系统架构 + SystemCpuQuantity int `json:"system_cpu_quantity,omitempty" bson:"system_cpu_quantity,omitempty"` //【系统】CPU核数 + GoVersion string `json:"go_version,omitempty" bson:"go_version,omitempty"` //【程序】Go版本 + SdkVersion string `json:"sdk_version,omitempty" bson:"sdk_version,omitempty"` //【程序】Sdk版本 + RunTime string `json:"run_time,omitempty" bson:"run_time,omitempty"` //【系统】运行时间 + RunIp string `json:"run_ip,omitempty" bson:"run_ip,omitempty"` //【系统】外网ip + RunResult string `json:"run_result,omitempty" bson:"run_result,omitempty"` //【系统】结果 + } `json:"next_run_info,omitempty" bson:"next_run_info,omitempty"` //【系统】下一次运行信息 + CurrentTime primitive.DateTime `json:"current_time,omitempty" bson:"current_time,omitempty"` //【系统】创建时间 } func (Task) TableName() string { diff --git a/jobs_mongo_model/task_issue_record.go b/jobs_mongo_model/task_issue_record.go deleted file mode 100644 index 1049f70..0000000 --- a/jobs_mongo_model/task_issue_record.go +++ /dev/null @@ -1,52 +0,0 @@ -package jobs_mongo_model - -import ( - "go.dtapp.net/dorm" - "go.mongodb.org/mongo-driver/bson/primitive" -) - -type TaskIssueRecordTaskInfo struct { - Id uint `json:"id,omitempty" bson:"id,omitempty"` // 记录编号 - Status string `json:"status,omitempty" bson:"status,omitempty"` // 状态码 - Params string `json:"params,omitempty" bson:"params,omitempty"` // 参数 - ParamsType string `json:"params_type,omitempty" bson:"params_type,omitempty"` // 参数类型 - StatusDesc string `json:"status_desc,omitempty" bson:"status_desc,omitempty"` // 状态描述 - Frequency int64 `json:"frequency,omitempty" bson:"frequency,omitempty"` // 频率(秒单位) - Number int64 `json:"number,omitempty" bson:"number,omitempty"` // 当前次数 - MaxNumber int64 `json:"max_number,omitempty" bson:"max_number,omitempty"` // 最大次数 - RunId string `json:"run_id,omitempty" bson:"run_id,omitempty"` // 执行编号 - CustomId string `json:"custom_id,omitempty" bson:"custom_id,omitempty"` // 自定义编号 - CustomSequence int64 `json:"custom_sequence,omitempty" bson:"custom_sequence,omitempty"` // 自定义顺序 - Type string `json:"type,omitempty" bson:"type,omitempty"` // 类型 - TypeName string `json:"type_name,omitempty" bson:"type_name,omitempty"` // 类型名称 - CreatedIp string `json:"created_ip,omitempty" bson:"created_ip,omitempty"` // 创建外网IP - SpecifyIp string `json:"specify_ip,omitempty" bson:"specify_ip,omitempty"` // 指定外网IP - UpdatedIp string `json:"updated_ip,omitempty" bson:"updated_ip,omitempty"` // 更新外网IP - Result string `json:"result,omitempty" bson:"result,omitempty"` // 结果 - NextRunTime dorm.BsonTime `json:"next_run_time,omitempty" bson:"next_run_time,omitempty"` // 下次运行时间 - CreatedAt dorm.BsonTime `json:"created_at,omitempty" bson:"created_at,omitempty"` // 创建时间 - UpdatedAt dorm.BsonTime `json:"updated_at,omitempty" bson:"updated_at,omitempty"` // 更新时间 -} - -type TaskIssueRecordSystemInfo struct { - OutsideIp string `json:"outside_ip,omitempty" bson:"outside_ip,omitempty"` // 外网ip - InsideIp string `json:"inside_ip,omitempty" bson:"inside_ip,omitempty"` // 内网ip - Os string `json:"os,omitempty" bson:"os,omitempty"` // 系统类型 - Arch string `json:"arch,omitempty" bson:"arch,omitempty"` // 系统架构 - Gomaxprocs int `json:"gomaxprocs,omitempty" bson:"gomaxprocs,omitempty"` // CPU核数 - GoVersion string `json:"go_version,omitempty" bson:"go_version,omitempty"` // GO版本 - SdkVersion string `json:"sdk_version,omitempty" bson:"sdk_version,omitempty"` // SDK版本 -} - -// TaskIssueRecord 任务发布记录 -type TaskIssueRecord struct { - Id primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"` // 记录编号 - TaskInfo TaskIssueRecordTaskInfo `json:"task_info,omitempty" bson:"task_info,omitempty"` // 任务信息 - SystemInfo TaskIssueRecordSystemInfo `json:"system_info,omitempty" bson:"system_info,omitempty"` // 系统信息 - RecordAddress string `json:"record_address,omitempty" bson:"record_address,omitempty"` // 接收地址 - RecordTime primitive.DateTime `json:"record_time,omitempty" bson:"record_time,omitempty"` // 记录时间 -} - -func (TaskIssueRecord) TableName() string { - return "task_issue_record" -} diff --git a/jobs_mongo_model/task_log.go b/jobs_mongo_model/task_log.go deleted file mode 100644 index c1357f1..0000000 --- a/jobs_mongo_model/task_log.go +++ /dev/null @@ -1,19 +0,0 @@ -package jobs_mongo_model - -import ( - "go.mongodb.org/mongo-driver/bson/primitive" -) - -// TaskLog 任务日志模型 -type TaskLog struct { - Id primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"` // 记录编号 - TaskId uint `json:"task_id,omitempty" bson:"task_id,omitempty"` // 任务编号 - StatusCode int `json:"status_code,omitempty" bson:"status_code,omitempty"` // 状态码 - Desc string `json:"desc,omitempty" bson:"desc,omitempty"` // 结果 - Version string `json:"version,omitempty" bson:"version,omitempty"` // 版本 - CreatedAt primitive.DateTime `json:"created_at,omitempty" bson:"created_at,omitempty"` // 创建时间 -} - -func (TaskLog) TableName() string { - return "task_log" -} diff --git a/jobs_mongo_model/task_log_run.go b/jobs_mongo_model/task_log_run.go deleted file mode 100644 index 4924693..0000000 --- a/jobs_mongo_model/task_log_run.go +++ /dev/null @@ -1,25 +0,0 @@ -package jobs_mongo_model - -import ( - "go.mongodb.org/mongo-driver/bson/primitive" -) - -// TaskLogRun 任务执行日志模型 -type TaskLogRun struct { - Id primitive.ObjectID `json:"id,omitempty" bson:"_id,omitempty"` // 记录编号 - TaskId uint `json:"task_id,omitempty" bson:"task_id,omitempty"` // 任务编号 - RunId string `json:"run_id,omitempty" bson:"run_id,omitempty"` // 执行编号 - OutsideIp string `json:"outside_ip,omitempty" bson:"outside_ip,omitempty"` // 外网ip - InsideIp string `json:"inside_ip,omitempty" bson:"inside_ip,omitempty"` // 内网ip - Os string `json:"os,omitempty" bson:"os,omitempty"` // 系统类型 - Arch string `json:"arch,omitempty" bson:"arch,omitempty"` // 系统架构 - Gomaxprocs int `json:"gomaxprocs,omitempty" bson:"gomaxprocs,omitempty"` // CPU核数 - GoVersion string `json:"go_version,omitempty" bson:"go_version,omitempty"` // GO版本 - SdkVersion string `json:"sdk_version,omitempty" bson:"sdk_version,omitempty"` // SDK版本 - MacAddrs string `json:"mac_addrs,omitempty" bson:"mac_addrs,omitempty"` // Mac地址 - CreatedAt primitive.DateTime `json:"created_at,omitempty" bson:"created_at,omitempty"` // 创建时间 -} - -func (TaskLogRun) TableName() string { - return "task_log_run" -} diff --git a/model.go b/model.go index 0a066b9..945106b 100644 --- a/model.go +++ b/model.go @@ -38,7 +38,7 @@ func (c *Client) mongoCreateCollectionTask(ctx context.Context) { if commandErr != nil { c.zapLog.WithTraceId(ctx).Sugar().Errorf("检查时间序列集合:%s", commandErr) } else { - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).CreateCollection(ctx, jobs_mongo_model.Task{}.TableName(), options.CreateCollection().SetTimeSeriesOptions(options.TimeSeries().SetTimeField("created_at")))) + c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).CreateCollection(ctx, jobs_mongo_model.Task{}.TableName(), options.CreateCollection().SetTimeSeriesOptions(options.TimeSeries().SetTimeField("current_time")))) } } @@ -56,90 +56,7 @@ func (c *Client) mongoCreateIndexesTask(ctx context.Context) { c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.Task{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{ {"type", 1}, }})) - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.Task{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{ - {"created_ip", 1}, - }})) c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.Task{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{ {"specify_ip", 1}, }})) - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.Task{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{ - {"updated_ip", 1}, - }})) -} - -// 创建时间序列集合 -func (c *Client) mongoCreateCollectionTaskLog(ctx context.Context) { - var commandResult bson.M - commandErr := c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).RunCommand(ctx, bson.D{{ - "listCollections", 1, - }}).Decode(&commandResult) - if commandErr != nil { - c.zapLog.WithTraceId(ctx).Sugar().Errorf("检查时间序列集合:%s", commandErr) - } else { - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).CreateCollection(ctx, jobs_mongo_model.TaskLog{}.TableName(), options.CreateCollection().SetTimeSeriesOptions(options.TimeSeries().SetTimeField("created_at")))) - } -} - -// 创建索引 -func (c *Client) mongoCreateIndexesTaskLog(ctx context.Context) { - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLog{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{ - {"task_id", -1}, - }})) - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLog{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{ - {"status_code", -1}, - }})) - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLog{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{ - {"version", -1}, - }})) -} - -// 创建时间序列集合 -func (c *Client) mongoCreateCollectionTaskLogRun(ctx context.Context) { - var commandResult bson.M - commandErr := c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).RunCommand(ctx, bson.D{{ - "listCollections", 1, - }}).Decode(&commandResult) - if commandErr != nil { - c.zapLog.WithTraceId(ctx).Sugar().Errorf("检查时间序列集合:%s", commandErr) - } else { - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).CreateCollection(ctx, jobs_mongo_model.TaskLogRun{}.TableName(), options.CreateCollection().SetTimeSeriesOptions(options.TimeSeries().SetTimeField("created_at")))) - } -} - -// 创建索引 -func (c *Client) mongoCreateIndexesTaskLogRun(ctx context.Context) { - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLogRun{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{ - {"task_id", -1}, - }})) - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLogRun{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{ - {"run_id", -1}, - }})) - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLogRun{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{ - {"outside_ip", -1}, - }})) - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLogRun{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{ - {"inside_ip", -1}, - }})) - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLogRun{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{ - {"os", -1}, - }})) - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLogRun{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{ - {"arch", -1}, - }})) - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).Collection(jobs_mongo_model.TaskLogRun{}.TableName()).Indexes().CreateOne(ctx, mongo.IndexModel{Keys: bson.D{ - {"go_version", -1}, - }})) -} - -// 创建时间序列集合 -func (c *Client) mongoCreateCollectionTaskIssueRecord(ctx context.Context) { - var commandResult bson.M - commandErr := c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).RunCommand(ctx, bson.D{{ - "listCollections", 1, - }}).Decode(&commandResult) - if commandErr != nil { - c.zapLog.WithTraceId(ctx).Sugar().Errorf("检查时间序列集合:%s", commandErr) - } else { - c.zapLog.WithTraceId(ctx).Sugar().Info(c.db.mongoClient.Db.Database(c.db.mongoDatabaseName).CreateCollection(ctx, jobs_mongo_model.TaskIssueRecord{}.TableName(), options.CreateCollection().SetTimeSeriesOptions(options.TimeSeries().SetTimeField("record_time")))) - } }