新增表达式说明和更新相关页面

This commit is contained in:
george
2018-07-16 15:45:52 +08:00
parent fd1c12297a
commit 632d216cec
13 changed files with 206 additions and 20 deletions

View File

@@ -26,6 +26,12 @@ func (self *HomeController) Index() {
self.TplName = "public/main.html"
}
func (self *HomeController) Help() {
self.Data["pageTitle"] = "Cron表达式说明"
//self.display()
self.TplName = "public/help.html"
}
func (self *HomeController) Start() {
groups_map := serverGroupLists(self.serverGroups, self.userId)
//计算总任务数量

View File

@@ -23,6 +23,7 @@ type TaskController struct {
func (self *TaskController) List() {
self.Data["pageTitle"] = "任务管理"
self.Data["taskGroup"] = taskGroupLists(self.taskGroups, self.userId)
self.display()
}
@@ -106,6 +107,36 @@ func (self *TaskController) Detail() {
serverName = server.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["CreateName"] = createName
self.Data["UpdateName"] = updateName
self.Data["serverName"] = serverName
self.display()
}
@@ -412,6 +443,8 @@ func (self *TaskController) Table() {
limit = 30
}
groupId, _ := self.GetInt("group_id")
status, _ := self.GetInt("status")
taskName := strings.TrimSpace(self.GetString("taskName"))
@@ -450,6 +483,12 @@ func (self *TaskController) Table() {
if taskName != "" {
filters = append(filters, "task_name__icontains", taskName)
}
if groupId > 0 {
self.Ctx.SetCookie("group_id", strconv.Itoa(groupId)+"|job")
filters = append(filters, "group_id", groupId)
}
result, count := models.TaskGetList(page, self.pageSize, filters...)
list := make([]map[string]interface{}, len(result))

View File

@@ -143,6 +143,35 @@ func (self *TaskLogController) Detail() {
}
}
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["CreateName"] = createName
self.Data["UpdateName"] = updateName
self.Data["pageTitle"] = "日志详细" + "(#" + strconv.Itoa(id) + ")"
self.display()
}

View File

@@ -103,7 +103,11 @@ func TaskGetById(id int) (*Task, error) {
return task, nil
}
func TaskDel(id int) error {
_, err := orm.NewOrm().QueryTable(TableName("task")).Filter("id", id).Delete()
return err
//修改为逻辑删除
func TaskDel(id int) (int64, error) {
return orm.NewOrm().QueryTable(TableName("task")).Filter("id", id).Update(orm.Params{
"status": -1,
})
//_, err := orm.NewOrm().QueryTable(TableName("task")).Filter("id", id).Delete()
//return err
}

View File

@@ -103,7 +103,7 @@ CREATE TABLE `pp_task_group` (
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
`update_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '修改者Id',
`update_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',
`status` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '状态1-正常0-删除',
`status` tinyint(1) unsigned NOT NULL DEFAULT '1' COMMENT '状态1-正常0-删除',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`create_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

View File

@@ -10,7 +10,7 @@ func init() {
beego.Router("/", &controllers.LoginController{}, "*:Login")
beego.Router("/login_in", &controllers.LoginController{}, "*:LoginIn")
beego.Router("/login_out", &controllers.LoginController{}, "*:LoginOut")
//beego.Router("/no_auth", &controllers.LoginController{}, "*:NoAuth")
beego.Router("/help", &controllers.HomeController{}, "*:Help")
beego.Router("/home", &controllers.HomeController{}, "*:Index")
beego.Router("/home/start", &controllers.HomeController{}, "*:Start")

View File

@@ -12,7 +12,7 @@
.layui-layout-admin .layui-logo{
line-height:50px;
height:50px;
font-size:20px;
font-size:18px;
}
.layui-nav layui-layout-right{
line-height:50px;

View File

@@ -138,7 +138,7 @@
<div class="layui-col-md6">
<div class="layui-card" style="background: #fff">
<div class="layui-card-header">即将执行的任务</div>
<div class="layui-card-body">
<div class="layui-card-body" style="height: 300px; padding-bottom: 10px; overflow: auto">
<table class="layui-table" lay-size="sm">
<colgroup>
<col>

80
views/public/help.html Normal file
View File

@@ -0,0 +1,80 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>{{.siteName}}</title>
{{if .zTree}}
<link rel="stylesheet" href="/static/zTree3/css/demo.css?t=5" type="text/css">
<link rel="stylesheet" href="/static/zTree3/css/zTreeStyle/zTreeStyle.css" type="text/css">
{{end}}
<link rel="stylesheet" href="/static/layui/css/layui.css">
<link rel="stylesheet" href="/static/admin/css/app.css?t=2">
<link rel="stylesheet" href="/static/font-awesome/css/font-awesome.min.css" media="all">
</head>
<body>
<!-- 公共头部 start-->
<div class="nav-title">
<div class="tl fl" style="font-size: 20px;">
{{.pageTitle}}
</div>
<div class="tr fr">
</div>
</div>
<!-- 公共头部 end-->
<script src="/static/layui/layui.js"></script>
<div style="margin: 10px 20px;">
Cron表达式是一个字符串字符串以空格隔开分为5或6个域每一个域代表一个含义系统支持的表达式格式如下<br>
<pre class="layui-code">
Seconds Minutes Hours DayofMonth Month [DayofWeek]
</pre>
其中 DayofWeek 为可选域<br>
每一个域可出现的字符如下<br>
<pre class="layui-code">
Seconds: 可出现"* / , -"四个字符有效范围为0-59的整数
Minutes: 可出现"* / , -"四个字符有效范围为0-59的整数
Hours: 可出现"* / , -"四个字符有效范围为0-23的整数
DayofMonth: 可出现"* / , - ?"五个字符有效范围为0-31的整数
Month: 可出现", - * /"四个字符有效范围为1-12的整数或JAN-DEC
DayofWeek: 可出现"* / , - ?"五个字符有效范围为0-6的整数或SUN-SAT两个范围0表示星期天1表示星期一 依次类推
</pre>
各个字符的含义如下<br>
<pre class="layui-code">
* 表示匹配该域的任意值假如在Minutes域使用*, 即表示每分钟都会触发事件
? 字符仅被用于天和天星期两个子表达式表示不指定值当2个子表达式其中之一被指定了值以后为了避免冲突需要将另一个子表达式的值设为?
- 表示范围例如在Minutes域使用5-20表示从5分到20分钟每分钟触发一次
/ 表示起始时间开始触发然后每隔固定时间触发一次例如在Minutes域使用5/20,则意味着5分钟触发一次而2545等分别触发一次
, 表示列出枚举值值例如在Minutes域使用5,20则意味着在5和20分每分钟触发一次
</pre>
一些例子<br>
<pre class="layui-code">
0 0 10,14,16 * * ? 每天上午10点下午2点4点触发
0 0/30 9-17 * * ? 朝九晚五工作时间内每半小时触发
0 0 12 ? * WED 表示每个星期三中午12点触发
0 0 12 * * ? 每天中午12点触发
0 15 10 ? * * 每天上午10:15触发
0 15 10 * * ? 每天上午10:15触发
0 15 10 * * ? * 每天上午10:15触发
0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发
0 0/5 14 * * ? 在每天下午2点到下午2:55期间的每5分钟触发
0 0/5 14,18 * * ? 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
0 0-5 14 * * ? 在每天下午2点到下午2:05期间的每1分钟触发
0 10,44 14 ? 3 WED 每年三月的星期三的下午2:10和2:44触发
0 15 10 ? * MON-FRI 周一至周五的上午10:15触发
0 15 10 15 * ? 每月15日上午10:15触发
0 15 10 L * ? 每月最后一日的上午10:15触发
</pre>
<br>
<br>
<br>
<br>
</div>
</body>
</html>

View File

@@ -11,13 +11,13 @@
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">
<div class="layui-header">
<div class="layui-logo">{{.siteName}}{{.version}}</div>
<div class="layui-logo">{{.siteName}}<font style="font-size: 12px"> {{.version}}</font></div>
<!-- 头部区域可配合layui已有的水平导航 -->
<ul class="layui-nav layui-layout-left">
</ul>
<ul class="layui-nav layui-layout-right pp-nav-item" >
<li class="layui-nav-item"><a href="http://ppgojob.haodaquan.com/index.html">使用手册</a></li>
{{/*<li class="layui-nav-item"><a href="http://ppgojob.haodaquan.com/index.html">使用手册</a></li>*/}}
<li class="layui-nav-item pp-nav-item" >
<a href="javascript:;">
<img src="/static/admin/images/header.jpg" class="layui-nav-img"> {{.loginUserName}}
@@ -83,7 +83,7 @@
<div class="layui-footer" style="border-top: 2px solid #e4e4e4">
<!-- 底部固定区域 -->
© Power by <a href="http://www.haodaquan.com" target="_blank">PPGo_Job V2</a>
© Power by PPGo_Job V2.0
</div>
</div>
<script src="/static/layui/layui.js"></script>

View File

@@ -56,6 +56,12 @@
<td>{{.task.ExecuteTimes}}</td>
<td></td>
</tr>
<tr>
<td>任务分组</td>
<td> {{.GroupName}}</td>
<td></td>
</tr>
<tr>
<td>服务资源</td>
<td> {{.serverName}}</td>
@@ -92,7 +98,7 @@
<tr>
<td>创建人</td>
<td>{{.task.CreateId}}</td>
<td>{{.CreateName}}</td>
<td></td>
</tr>
@@ -104,7 +110,7 @@
<tr>
<td>最后修改人</td>
<td>{{.task.UpdateId}}</td>
<td>{{.UpdateName}}</td>
<td></td>
</tr>

View File

@@ -4,7 +4,7 @@
<div class="layui-btn-group">
<a class="layui-btn" data-type="tabAdd" href="/task/add">新增</a>
<button class="layui-btn batch" data-type="batchstart" >启动</button>
<button class="layui-btn layui-btn-danger batch" data-type="batchpause" >暂停</button>
<button class="layui-btn layui-btn-danger batch" data-type="batchpause" >暂停</button>cron
</div>
</div>
<div class="layui-col-xs6 search_text">
@@ -13,9 +13,19 @@
<div class="layui-inline" style="width: 40%">
<input class="layui-input" name="taskName" id="taskName" autocomplete="off" placeholder="任务名称" >
{{/*<label class="layui-form-label">搜索选择框</label>*/}}
<div class="layui-input-inline" style="text-align: left">
<select name="modules" lay-verify="required" lay-filter="select_group" id="group_id" lay-search="">
<option value="">直接选择或搜索选择</option>
{{range $k, $v := .taskGroup}}
<option value="{{$k}}">{{$v}}</option>
{{end}}
</select>
</div>
{{/*<input class="layui-input" name="taskName" id="taskName" autocomplete="off" placeholder="任务名称" >*/}}
</div>
<button class="layui-btn" data-type="reload" id="reload">查询</button>
<button class="layui-btn" data-type="reload" id="reload" style="display: none">查询</button>
</div>
</form>
@@ -52,12 +62,12 @@
,url: '/task/table'
,cols: [[
{checkbox: true, fixed: true},
{field:'id', title: 'ID', align:'center',sort: true, width:50}
{field:'id', title: 'ID', align:'center',sort: true, width:100}
,{field:'task_name',width:300, title: '任务名称'}
,{field:'description',title: '任务说明'}
,{field:'next_time', width:170,title: '下次执行时间'}
,{field:'pre_time', title: '上次执行时间'}
,{field:'pre_time',width:170, title: '上次执行时间'}
,{field:'execute_times', width:70,title: '次数'}
,{fixed: 'right', width:200, align:'center', title:'操作', toolbar: '#bar'}
]]
@@ -70,12 +80,19 @@
reload: function(){
table.reload('listReload', {
where: {
taskName: $('#taskName').val(),
group_id: $('#group_id').val(),
}
});
}
};
form.on('select(select_group)', function(data){
// console.log(data.elem); //得到select原始DOM对象
// console.log(data.value); //得到被选中的值
// console.log(data.othis); //得到美化后的DOM对象
$("#reload").click()
});
//监听工具条
table.on('tool(table_filter)', function(obj){
var data = obj.data;

View File

@@ -111,6 +111,11 @@
<td>{{.task.ExecuteTimes}}</td>
<td></td>
</tr>
<tr>
<td>任务分组</td>
<td> {{.GroupName}}</td>
<td></td>
</tr>
<tr>
<td>服务资源</td>
<td> {{.serverName}}</td>
@@ -147,7 +152,7 @@
<tr>
<td>创建人</td>
<td>{{.task.CreateId}}</td>
<td>{{.CreateName}}</td>
<td></td>
</tr>
@@ -159,7 +164,7 @@
<tr>
<td>最后修改人</td>
<td>{{.task.UpdateId}}</td>
<td>{{.UpdateName}}</td>
<td></td>
</tr>