/************************************************************ ** @Description: controllers ** @Author: george hao ** @Date: 2018-07-05 16:43 ** @Last Modified by: george hao ** @Last Modified time: 2018-07-05 16:43 *************************************************************/ package controllers import ( "github.com/astaxie/beego" "github.com/george518/PPGo_Job/libs" "github.com/george518/PPGo_Job/models" "strconv" "strings" "time" ) type TaskLogController struct { BaseController } func (self *TaskLogController) List() { taskId, err := self.GetInt("task_id") if err != nil { taskId = 1 } task, err := models.TaskGetById(taskId) if err != nil { self.ajaxMsg(err.Error(), MSG_ERR) } self.Data["pageTitle"] = "日志管理 - " + task.TaskName + "(#" + strconv.Itoa(task.Id) + ")" self.Data["task_id"] = task.Id self.display() } func (self *TaskLogController) Table() { //列表 page, err := self.GetInt("page") if err != nil { page = 1 } limit, err := self.GetInt("limit") if err != nil { limit = 30 } self.pageSize = limit //查询条件 filters := make([]interface{}, 0) taskId, err := self.GetInt("task_id") if err != nil { taskId = 1 } TextStatus := []string{ " 错误", " 正常", } Status, err := self.GetInt("status") if err == nil && Status != 9 { status := Status + 1 filters = append(filters, "status", status) } filters = append(filters, "task_id", taskId) result, count := models.TaskLogGetList(page, self.pageSize, filters...) list := make([]map[string]interface{}, len(result)) for k, v := range result { row := make(map[string]interface{}) row["id"] = v.Id row["task_id"] = v.TaskId row["start_time"] = beego.Date(time.Unix(v.CreateTime, 0), "Y-m-d H:i:s") row["process_time"] = float64(v.ProcessTime) / 1000 row["ouput_size"] = libs.SizeFormat(float64(len(v.Output))) index := v.Status + 1 row["status"] = TextStatus[index] list[k] = row } self.ajaxList("成功", MSG_OK, count, list) } func (self *TaskLogController) Detail() { //日志内容 id, _ := self.GetInt("id") tasklog, err := models.TaskLogGetById(id) if err != nil { self.Ctx.WriteString("日志不存在") return } LogTextStatus := []string{ " 错误", " 正常", } row := make(map[string]interface{}) row["id"] = tasklog.Id row["task_id"] = tasklog.TaskId row["start_time"] = beego.Date(time.Unix(tasklog.CreateTime, 0), "Y-m-d H:i:s") row["process_time"] = float64(tasklog.ProcessTime) / 1000 row["ouput_size"] = libs.SizeFormat(float64(len(tasklog.Output))) row["ouput"] = tasklog.Output row["error"] = tasklog.Error index := tasklog.Status + 1 row["status"] = LogTextStatus[index] self.Data["taskLog"] = row //任务详情 task, err := models.TaskGetById(tasklog.TaskId) if err != nil { self.ajaxMsg(err.Error(), MSG_ERR) } TextStatus := []string{ " 暂停", " 运行中", " 待审核", " 审核失败", } self.Data["TextStatus"] = TextStatus[task.Status] self.Data["CreateTime"] = beego.Date(time.Unix(task.CreateTime, 0), "Y-m-d H:i:s") self.Data["UpdateTime"] = beego.Date(time.Unix(task.UpdateTime, 0), "Y-m-d H:i:s") self.Data["task"] = task // 分组列表 self.Data["taskGroup"] = taskGroupLists(self.taskGroups, self.userId) serverName := "本地服务器" if task.ServerId == 0 { serverName = "本地服务器" } else { server, err := models.TaskServerGetById(task.ServerId) if err == nil { serverName = server.ServerName } } self.Data["serverName"] = serverName self.Data["pageTitle"] = "日志详细" + "(#" + strconv.Itoa(id) + ")" self.display() } // 批量操作日志 func (self *TaskLogController) AjaxDel() { ids := self.GetStrings("ids") idArr := strings.Split(ids[0], ",") if len(idArr) < 1 { self.ajaxMsg("请选择要操作的项目", MSG_ERR) } for _, v := range idArr { id, _ := strconv.Atoi(v) if id < 1 { continue } models.TaskLogDelById(id) } self.ajaxMsg("", MSG_OK) }