package controllers import ( "fmt" "rtzh_elec_temperature/rtelec_app_public_lib/service" "time" "github.com/wxnacy/wgo/arrays" "git.rtzhtech.cn/iss/public-lib/model" "github.com/spf13/cast" ) //计划任务相关服务 type TaskController struct { BaseController } //编辑任务(添加或修改) // @router /edit [post] func (c *TaskController) EditTask() { var parameter model.DevTask parameter.Taskid, _ = c.GetInt64("taskid") parameter.Appid = cast.ToInt32(service.RtelecManageApp().RegAppID) parameter.Taskdesc = c.GetString("taskdesc") parameter.Tasktype, _ = c.GetInt32("tasktype") startTime := c.GetString("starttime") if startTime != "" { startDate, parseErr := time.ParseInLocation("2006-01-02 15:04:05", startTime, time.Local) if parseErr == nil { parameter.Starttime = startDate } else { c.Data["json"] = c.ApiError("请输入正确的计划任务开始时间!") c.ServeJSON() return } } else { c.Data["json"] = c.ApiError("计划任务开始时间不允许为空!") c.ServeJSON() return } if parameter.Taskdesc == "" { c.Data["json"] = c.ApiError("计划任务描述不允许为空!") c.ServeJSON() return } parameter.Runtime, _ = c.GetInt32("runtime") parameter.Period, _ = c.GetInt32("period") parameter.Actid, _ = c.GetInt64("actid") parameter.Status = 3 //默认计时中。只有计时中的任务才会进入等待执行队列 parameter.Pause = 1 taskObj := new(service.TaskService) taskObj.UserInfo = c.GetCurrentUserInfo_rt() err := taskObj.EditTask(parameter) if err == nil { c.Data["json"] = c.ApiOK("编辑计划任务成功!") } else { c.Data["json"] = c.ApiError(err.Error()) } c.ServeJSON() } //编辑任务(添加或修改) // @router /delete [post] func (c *TaskController) DeleteTask() { taskObj := new(service.TaskService) taskObj.UserInfo = c.GetCurrentUserInfo_rt() taskId, _ := c.GetInt64("taskid") if taskId == 0 { c.Data["json"] = c.ApiError("计划任务id不允许为空(0)!") } else { err := taskObj.DeleteTask(taskId) if err != nil { c.Data["json"] = c.ApiError(err.Error()) } else { c.Data["json"] = c.ApiOK("") } } c.ServeJSON() } //编辑任务(添加或修改) // @router /list [get] func (c *TaskController) TaskList() { tasktype, _ := c.GetInt("tasktype") pageIndex, _ := c.GetInt("pageindex", 1) pageSize, _ := c.GetInt("pagesize", 20) taskObj := new(service.TaskService) taskObj.UserInfo = c.GetCurrentUserInfo_rt() list, err := taskObj.TaskList(tasktype, pageIndex, pageSize) if err != nil { c.Data["json"] = c.ApiError(err.Error()) } else { c.Data["json"] = c.ApiOK(list) } c.ServeJSON() } //任务暂停或恢复 // @router /pause [post] func (c *TaskController) TaskPause() { taskId, _ := c.GetInt64("taskid") pause, _ := c.GetInt("pause") if taskId == 0 { c.Data["json"] = c.ApiError("任务id不允许为空") c.ServeJSON() return } if pause == 0 { c.Data["json"] = c.ApiError("暂停或恢复不不允许为空") c.ServeJSON() return } else if pause > 0 { var pausestatus = []int64{1, 2} if arrays.ContainsInt(pausestatus, int64(pause)) == -1 { c.Data["json"] = c.ApiError("任务暂停或恢复状态只允许为1或2") c.ServeJSON() return } } var status = 0 if pause == 2 { status = 4 } else { status = 3 } taskObj := new(service.TaskService) taskObj.UserInfo = c.GetCurrentUserInfo_rt() err := taskObj.TaskPause(taskId, pause, status) if err != nil { c.Data["json"] = c.ApiError(err.Error()) } else { taskObj.GetTaskInfo() c.Data["json"] = c.ApiOK("") if pause == 2 { new(service.LogService).SaveLog(fmt.Sprintf("任务%d暂停成功", taskId)) } else { new(service.LogService).SaveLog(fmt.Sprintf("任务%d恢复成功", taskId)) } } c.ServeJSON() }