/************************************************************ ** @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 { 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 if v.Status == 0 { row["output_size"] = libs.SizeFormat(float64(len(v.Output))) } else { row["output_size"] = libs.SizeFormat(float64(len(v.Error))) } index := v.Status + 2 if index > 2 { index = 2 } 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 if tasklog.Status == 0 { row["output_size"] = libs.SizeFormat(float64(len(tasklog.Output))) } else { row["output_size"] = libs.SizeFormat(float64(len(tasklog.Error))) } row["output"] = tasklog.Output row["error"] = tasklog.Error index := tasklog.Status + 2 if index > 2 { index = 2 } 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 //任务分组 groupName := "默认分组" if task.GroupId > 0 { group, err := models.TaskGroupGetById(task.GroupId) if err == nil { groupName = group.GroupName } } self.Data["GroupName"] = groupName //创建人和修改人 createName := "未知" updateName := "未知" if task.CreateId > 0 { admin, err := models.AdminGetById(task.CreateId) if err == nil { createName = admin.RealName } } if task.UpdateId > 0 { admin, err := models.AdminGetById(task.UpdateId) if err == nil { updateName = admin.RealName } } //是否出错通知 self.Data["adminInfo"] = []int{0} if task.NotifyUserIds != "0" && task.NotifyUserIds != "" { self.Data["adminInfo"] = AllAdminInfo(task.NotifyUserIds) } self.Data["CreateName"] = createName self.Data["UpdateName"] = updateName self.Data["pageTitle"] = "日志详细" + "(#" + strconv.Itoa(id) + ")" self.Data["NotifyTplName"] = "未知" if task.IsNotify == 1 { notifyTpl, err := models.NotifyTplGetById(task.NotifyTplId) if err == nil { self.Data["NotifyTplName"] = notifyTpl.TplName } } 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) }