Authored by zhengyouwei

add

... ... @@ -203,4 +203,12 @@ public class HttpUriContants {
public static final String JAVA_TIME_OUT_INFO_GET = "/newJavaApiInfo/queryTimeoutInfoListByApiName";
public static final String JAVA_ERROR_GET = "/newJavaApiInfo/queryErrorInfoListByIp";
public static final String JAVA_ERROR_INFO_GET = "/newJavaApiInfo/queryErrorInfoListByApiName";
//ABtest
public static final String ABTEST_GET = "/abtest/get";
public static final String ABTEST_INSERT = "/abtest/insert";
public static final String ABTEST_UPDATE = "/abtest/update";
public static final String ABTEST_DELETE = "/abtest/delete";
}
... ...
package com.ui.model.req;
import lombok.Data;
/**
* Created by zhengyouwei on 2016/12/16.
*/
@Data
public class ABTest {
private int id;
private String name;
private String abType;
private String configType;
private String value;
private String comment;
private String createTime;
private String updateTime;
}
... ...
package com.ui.model.req;
import lombok.Data;
/**
* Created by zhengyouwei on 2016/12/16.
*/
@Data
public class AbTestReq extends PageRequest{
private String configType;
private String abType;
}
... ...
package com.ui.model.req;
import lombok.Data;
/**
* Created by zhengyouwei on 2016/12/16.
*/
@Data
public class SmsUp {
private String SmsType;
private String SrcMobile;
private String AppendID;
private String Content;
private String RecvTime;
private String SendTime;
private String Status;
}
... ...
package com.ui.ctrl;
import com.ui.contants.HttpUriContants;
import com.ui.http.HttpRestClient;
import com.ui.model.BaseResponse;
import com.ui.model.req.ABTest;
import com.ui.model.req.AbTestReq;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
/**
* Created by zhengyouwei on 2016/12/16.
*/
@Controller
@RequestMapping("/abtest")
public class ABTestCtrl {
Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private HttpRestClient httpRestClient;
@RequestMapping("/toABTets")
@ResponseBody
public ModelAndView toABTets() {
return new ModelAndView("abtest/abtest");
}
/**
* 新增
* @return
*/
@RequestMapping("/insert")
@ResponseBody
public BaseResponse insert(ABTest abTest) {
BaseResponse response=httpRestClient.defaultPost(HttpUriContants.ABTEST_INSERT, abTest, BaseResponse.class);
return response;
}
/**
* 更新
* @return
*/
@RequestMapping("/update")
@ResponseBody
public BaseResponse update( ABTest abTest) {
BaseResponse response=httpRestClient.defaultPost(HttpUriContants.ABTEST_UPDATE, abTest, BaseResponse.class);
return response;
}
/**
* 删除
* @return
*/
@RequestMapping("/delete")
@ResponseBody
public BaseResponse<Integer> delete(int id) {
BaseResponse response=httpRestClient.defaultPost(HttpUriContants.ABTEST_DELETE+"?id="+id, null, BaseResponse.class);
return response;
}
/**
* 获取
* @return
*/
@RequestMapping("/get")
@ResponseBody
public BaseResponse get(AbTestReq abTestReq) {
BaseResponse response=httpRestClient.defaultPost(HttpUriContants.ABTEST_GET, abTestReq, BaseResponse.class);
return response;
}
}
... ...
package com.ui.ctrl;
import com.ui.http.HttpRestClient;
import com.ui.model.BaseResponse;
import com.ui.model.req.SmsUp;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* Created by zhengyouwei on 2016/12/16.
*/
@Controller
public class SmsUpctrl {
public final Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private HttpRestClient httpRestClient;
@RequestMapping("/deliverMessage")
@ResponseBody
public boolean smsup(String SmsType, String SrcMobile, String AppendID, String Content, String RecvTime, String SendTime, String Status) {
SmsUp smsUp = new SmsUp();
smsUp.setAppendID(AppendID);
smsUp.setSmsType(SmsType);
smsUp.setContent(Content);
smsUp.setRecvTime(RecvTime);
smsUp.setSendTime(SendTime);
smsUp.setStatus(Status);
smsUp.setSrcMobile(SrcMobile);
httpRestClient.defaultPost("/smsup/smsup", smsUp, BaseResponse.class);
return true;
}
}
... ...
... ... @@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import java.lang.reflect.Method;
import java.util.Set;
@Aspect
... ...
... ... @@ -74,6 +74,7 @@
<mvc:exclude-mapping path="/sql_format/**"/>
<mvc:exclude-mapping path="/dashboard/**"/>
<mvc:exclude-mapping path="/app_**/**"/>
<mvc:exclude-mapping path="/deliverMessage/**"/>
<bean class="com.ui.interceptor.AuthInterceptor"/>
</mvc:interceptor>
... ...
<%@page language="java" contentType="text/html;charset=utf-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="<%=basePath %>css/bootstrap.min.css"/>
<link rel="stylesheet" href="<%=basePath %>css/bootstrap-datetimepicker.css"/>
<link href="<%=basePath %>js/bootstrap-plugin/css/bootstrap.table.css" rel="stylesheet" media="screen"/>
<link rel="stylesheet" href="<%=basePath %>css/bootstrap-responsive.min.css"/>
<link rel="stylesheet" href="<%=basePath %>css/fullcalendar.css"/>
<link rel="stylesheet" href="<%=basePath %>css/unicorn.main.css"/>
<link rel="stylesheet" href="<%=basePath %>css/unicorn.grey.css"/>
<link rel="stylesheet" href="<%=basePath %>css/jquery-ui.css"/>
<link rel="stylesheet" href="<%=basePath %>css/uniform.css"/>
<link rel="stylesheet" href="<%=basePath %>css/select2.css"/>
<link rel="stylesheet" href="<%=basePath %>js/jstree/themes/proton/style.css"/>
<link rel="stylesheet" href="<%=basePath %>css/select2.css"/>
<link rel="stylesheet" href="<%=basePath %>css/yoho.css"/>
<script src="<%=basePath %>js/excanvas.min.js" charset="UTF-8" type="text/javascript"></script>
<script src="<%=basePath %>js/jquery-1.12.0.min.js" charset="UTF-8" type="text/javascript"></script>
<script src="<%=basePath %>js/jquery-ui.custom.js" charset="UTF-8" type="text/javascript"></script>
<script src="<%=basePath %>/js/bootstrap.min.js"></script>
<script src="<%=basePath %>/js/unicorn.js"></script>
<script src="<%=basePath %>js/bootstrap-plugin/datetimepicker/moment-with-locales.js" charset="UTF-8"
type="text/javascript"></script>
<script src="<%=basePath %>js/bootstrap-plugin/datetimepicker/bootstrap-datetimepicker.js" charset="UTF-8"
type="text/javascript"></script>
<script src="<%=basePath %>js/global.js" charset="UTF-8" type="text/javascript"></script>
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.pagination.js" charset="UTF-8"
type="text/javascript"></script>
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.table.js" charset="UTF-8" type="text/javascript"></script>
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.dialog.js" charset="UTF-8" type="text/javascript"></script>
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.form.js" charset="UTF-8" type="text/javascript"></script>
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.panel.js" charset="UTF-8" type="text/javascript"></script>
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.alerts.js" charset="UTF-8" type="text/javascript"></script>
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.accordion.js" charset="UTF-8"
type="text/javascript"></script>
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.breadcrumb.js" charset="UTF-8"
type="text/javascript"></script>
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.validate.js" charset="UTF-8"
type="text/javascript"></script>
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.form.js" charset="UTF-8" type="text/javascript"></script>
<script src="<%=basePath %>js/layer/layer.js" charset="UTF-8" type="text/javascript"></script>
<script src="<%=basePath %>js/bootstrap-plugin/bootstrap.select.js" charset="UTF-8" type="text/javascript"></script>
<script src="<%=basePath %>js/jstree/jstree.min.js"></script>
<script src="<%=basePath %>js/jquery.toaster.js"></script>
<title>YOHO!运维</title>
</head>
<body>
<!-- 头部 -->
<div id="head">
</div>
<!-- 右侧具体内容 -->
<div id="content">
<div id="breadcrumb">
<a href="#" title="Go to Home" class="tip-bottom"><i
class="icon-home"></i> Home</a> <a href="#" class="current">标签</a>
</div>
<div class="container-fluid">
<div class="widget-box">
<div class="widget-title">
<h5>标签操作</h5>
</div>
<div class="widget-content nopadding">
<div class="widget-title" style="height: 53px;">
<div>
<div class="form-inline" role="form" id="inBoxQueryDiv"
style=" margin-top: 12px;margin-left: 25px;float: left;">
<div class="input-group" style="float: left;">
<span class="input-group-addon">ABType:</span>
<select id="environment" name="environment" class="form-control">
<option value="all" selected="selected"></option>
<c:forEach items="${environments }" var="envi">
<option value="${envi }">${envi }</option>
</c:forEach>
</select>
</div>
<div class="input-group" style="float: left;">
<span class="input-group-addon">项目:</span>
<select id="currentProject" name="currentProject" class="form-control">
<option value="all"></option>
<c:forEach items="${projects }" var="project">
<option value="${project.name }">${project.name }</option>
</c:forEach>
</select>
</div>
<div class="input-group" style="float: left;">
<span class="input-group-addon">状态:</span>
<select id="currentStatus" name="currentStatus" class="form-control">
<option value="0"></option>
<option value="1">正在进行</option>
<option value="2">成功</option>
<option value="3">强制退出</option>
<option value="4">出错退出</option>
</select>
</div>
<button id="searchBtn" class="btn btn-primary" style="margin-left: 18px;">搜索</button>
</div>
<a href="#" id="addHostGroup" class="btn btn-success" style="margin-top: 12px;margin-left: 0px;"
onclick="editHostGroup(0,0)">新增标签</a></div>
</div>
</div>
<div id="hostGroupTable">
</div>
</div>
</div>
</div>
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"
aria-hidden="true">&times;</button>
<h4 class="modal-title" id="myModalLabel"></h4>
</div>
<div class="modal-body">
<form id="hostGroupForm" class="form-horizontal">
<div class="form-group">
<label class="col-sm-2 control-label"> <span style="color:red">*</span>标签名称:</label>
<div class="col-sm-8">
<input type="text" class="form-control" id="editGroupName" name="editGroupName"
placeholder="输入标签名称" maxlength="30" size="40"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label"> </label>
<div class="col-sm-8" id="messageAlert"></div>
</div>
<input type="hidden" name="editGroupId"/>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-success" value="Validate" onclick="saveHostGroup()">提交</button>
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal -->
</div>
<script src="<%=basePath %>script/common/genarate_left_panel.js"></script>
<script type="text/javascript">
$("#li_host").addClass("active open");
$("#li_hostGroupList").addClass("active");
function localAlert(title, message) {
var dialog = $("<div>").appendTo($("body"));
dialog.dialog({
title: title,
backdrop: "static",
content: message,
buttons: [{
text: "确定",
className: "btn-danger",
onclick: function () {
$(dialog).dialog("hide");
}
}]
});
}
</script>
</body>
</html>
<script>
$(function () {
//加载表格
$("#hostGroupTable").table({
columnAutoWidth: false,
url: "getHostGroups",
striped: true,
title: "标签信息列表",
pagination: true,
pageSize: 10,
loadFilter: function (data) {
return defaultLoadFilter(data);
},
columns: [{
title: "标签名",
field: "groupName",
width: "30%"
}, {
title: "操作",
formatter: function (value, rowData, rowIndex) {
var div = $("<div>");
$("<button onclick=\"editHostGroup(\'" + rowData.id + "\',\'" + rowData.groupName + "\')\">").addClass("btn btn-xs btn-success").html("修改").appendTo(div);
div.append("&nbsp;");
$("<button onclick=\"deleteHostGroup(\'" + rowData.id + "\')\">").addClass("btn btn-xs btn-danger").html("删除").appendTo(div);
return div;
}
}]
});
});
//打开新增或修改页面
function editHostGroup(id, groupName) {
$("#hostGroupForm #messageAlert").hide();
if (id == 0) {//新增页面
$("input[name='editGroupId']").val(0);
$("input[name='editGroupName']").val("");
$("#myModalLabel").text("新增标签信息");
} else {
$("#myModalLabel").text("修改标签信息");
$("input[name='editGroupId']").val(id);
$("input[name='editGroupName']").val(groupName);
}
$("#myModal").modal('show');
}
//打开新增或修改页面
function saveHostGroup() {
var id = $("input[name='editGroupId']").val();
var groupName = $("input[name='editGroupName']").val();
if (groupName == null || groupName == "") {
$("#hostGroupForm #messageAlert").alerts({
content: "请输入标签名称!",
type: "danger"
});
return;
}
var param = {
id: id,
groupName: groupName
}
$.ajax({
type: 'post',
url: "saveHostGroup.do",
data: param,
dataType: 'json',
success: function (data) {
if (!data || data.code != 200) {
localAlert('删除失败', data.message);
} else {
$("#myModal").modal('hide');
$("#hostGroupTable").table("load");
}
},
error: function (data) {
localAlert('系统异常', data.message);
}
});
}
//打开新增或修改页面
function deleteHostGroup(id) {
var dialog = $("<div>").appendTo($("body"));
dialog.dialog({
title: "你确定删除吗",
backdrop: "static",
content: "你确定要删除该标签信息吗?",
buttons: [{
text: "否",
className: "btn-danger",
onclick: function () {
$(dialog).dialog("hide");
}
}, {
text: "是",
className: "btn-success",
onclick: function () {
$(dialog).dialog("hide");
$.ajax({
url: "deleteHostGroup",
type: 'post',
async: false,
data: {
id: id
},
dataType: "json",
success: function (data) {
if (!data || data.code != 200) {
localAlert('删除失败', data.message);
}
$("#hostGroupTable").table("load");
}
});
}
}]
});
}
</script>
\ No newline at end of file
... ...