Authored by zhengyouwei

工单系统关联发布系统

... ... @@ -178,6 +178,10 @@ public class HttpUriContants {
public static final String GET_PENDING_JOBS = "/pendingWork/getPendingJobs";
public static final String GET_PENDING_JOB_BYUSER = "/pendingWork/getPendingJobByUser";
public static final String GET_WORKJOBS = "/works/getWorkJobs";
public static final String CHECK_JOB_BY_OPERATOR = "/releaseWork/checkWorkJobByOperator";
public static final String UPDATE_JOB_BY_OPERATOR = "/releaseWork/updateOperator";
public static final String GET_SMSLOG = "/sms/getSmsLogsByMobile";
//java服务重启
... ... @@ -193,6 +197,7 @@ public class HttpUriContants {
//双中心切换
public static final String CENTERSWITCH_GET = "/centerSwitch/getSwitchList";
public static final String CENTERSWITCH_SWITCH = "/centerSwitch/doExe";
public static final String CENTERSWITCH_SWITCH_CHECK = "/centerSwitch/doExeAndCheck";
//java监控信息
public static final String JAVA_MONITOR_GET = "/newJavaApiInfo/queryByServiceType";
... ...
... ... @@ -25,6 +25,8 @@ public class BuildRequest implements Serializable {
private String isForce;
private String workid;
public String getTag() {
return tag;
}
... ... @@ -104,4 +106,12 @@ public class BuildRequest implements Serializable {
public void setIsForce(String isForce) {
this.isForce = isForce;
}
public String getWorkid() {
return workid;
}
public void setWorkid(String workid) {
this.workid = workid;
}
}
... ...
package com.ui.ctrl;
import com.ui.contants.HttpUriContants;
import com.ui.http.HttpRestClient;
import com.ui.model.BaseResponse;
import com.ui.model.domain.BuildMessage;
import com.ui.model.req.BuildRequest;
import com.ui.model.req.User;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -66,6 +69,29 @@ public class NodeBuildCtrl {
}
}
/**
* 发布前校验
*
* @return
*/
@RequestMapping(value = "check")
@ResponseBody
public String check(String workid,HttpSession httpSession) {
User user = (User) httpSession.getAttribute("user");
Map<String,String> map = new HashMap<>();
if (!StringUtils.equals("release0", workid)){//查询用户是否有工单处理权限
map.put("id",workid);
map.put("user",user.getName());
BaseResponse baseResponse = httpRestClient.defaultGet(HttpUriContants.CHECK_JOB_BY_OPERATOR,BaseResponse.class,map);
if (baseResponse.getCode() != 200){
return baseResponse.getMessage();
}
}
return "1";
}
/**
* 执行任务
... ... @@ -73,9 +99,19 @@ public class NodeBuildCtrl {
* @return
*/
@RequestMapping(value = "build", method = RequestMethod.POST)
public ModelAndView build(String project_name, String environment_name, String operate_name, String branch_name, String rollbackfile_name, String hosts_name, boolean force_name, Model model, HttpSession session) {
public ModelAndView build(String workid_name,String project_name, String environment_name, String operate_name, String branch_name, String rollbackfile_name, String hosts_name, boolean force_name, Model model, HttpSession session) {
try {
User user = (User) session.getAttribute("user");
Map<String,String> map = new HashMap<>();
if (StringUtils.equals("Deploy",operate_name) && !StringUtils.equals("release0",workid_name)){//查询用户是否有工单处理权限
map.put("id",workid_name);
map.put("user",user.getName());
BaseResponse baseResponse = httpRestClient.defaultGet(HttpUriContants.UPDATE_JOB_BY_OPERATOR,BaseResponse.class,map);
if (baseResponse.getCode() != 200){
model.addAttribute("environment_name", baseResponse.getMessage());
return new ModelAndView("project/project_build");
}
}
List<BuildMessage> list = new ArrayList<>();
BuildRequest buildRequest = new BuildRequest();
buildRequest.setBranch(branch_name);
... ...
package com.ui.ctrl;
import com.ui.contants.HttpUriContants;
import com.ui.http.HttpRestClient;
import com.ui.model.BaseResponse;
import com.ui.model.domain.BuildMessage;
import com.ui.model.req.*;
import com.ui.project.ProjectEnvironment;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -63,6 +67,30 @@ public class PhpBuildCtrl {
}
}
/**
* 发布前校验
*
* @return
*/
@RequestMapping(value = "check")
@ResponseBody
public String check(String workid,HttpSession httpSession) {
User user = (User) httpSession.getAttribute("user");
Map<String,String> map = new HashMap<>();
if (!StringUtils.equals("release0", workid)){//查询用户是否有工单处理权限
map.put("id",workid);
map.put("user",user.getName());
BaseResponse baseResponse = httpRestClient.defaultGet(HttpUriContants.CHECK_JOB_BY_OPERATOR,BaseResponse.class,map);
if (baseResponse.getCode() != 200){
return baseResponse.getMessage();
}
}
return "1";
}
/**
* 执行任务
... ... @@ -70,9 +98,20 @@ public class PhpBuildCtrl {
* @return
*/
@RequestMapping(value = "build", method = RequestMethod.POST)
public ModelAndView build(String project_name, String environment_name, String operate_name, String branch_name, String rollbackfile_name,String hosts_name, Model model, HttpSession session) {
public ModelAndView build(String project_name, String environment_name, String operate_name, String branch_name, String rollbackfile_name,String hosts_name,String workid_name, Model model, HttpSession session) {
try {
User user = (User) session.getAttribute("user");
Map<String,String> map = new HashMap<>();
if (StringUtils.equals("Deploy",operate_name) && !StringUtils.equals("release0",workid_name)){//查询用户是否有工单处理权限
map.put("id",workid_name);
map.put("user",user.getName());
BaseResponse baseResponse = httpRestClient.defaultGet(HttpUriContants.UPDATE_JOB_BY_OPERATOR,BaseResponse.class,map);
if (baseResponse.getCode() != 200){
model.addAttribute("environment_name", baseResponse.getMessage());
return new ModelAndView("project/project_build");
}
}
List<BuildMessage> list = new ArrayList<>();
BuildRequest buildRequest = new BuildRequest();
buildRequest.setBranch(branch_name);
... ...
... ... @@ -23,9 +23,6 @@ import javax.servlet.http.HttpSession;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* Created by fruwei on 2016/6/16.
*/
@RestController
@RequestMapping("project")
public class ProjectBuildCtrl {
... ... @@ -95,15 +92,27 @@ public class ProjectBuildCtrl {
}
/**
* 校验branch
* 发布前校验
*
* @return
*/
@RequestMapping(value = "checkBranch")
@RequestMapping(value = "check")
@ResponseBody
public String checkBranch(String projects, String branch, String environment) {
public String check(String projects, String branch, String environment,String workid,HttpSession httpSession) {
User user = (User) httpSession.getAttribute("user");
Map<String,String> map = new HashMap<>();
if (!StringUtils.equals("release0",workid)){//查询用户是否有工单处理权限
map.put("id",workid);
map.put("user",user.getName());
BaseResponse baseResponse = httpRestClient.defaultGet(HttpUriContants.CHECK_JOB_BY_OPERATOR,BaseResponse.class,map);
if (baseResponse.getCode() != 200){
return baseResponse.getMessage();
}
}
if (!("master".equals(branch) || "test".equals(branch) || "dev".equals(branch))) {
Map<String, String> map = new HashMap<>();
map.clear();
map.put("projects", projects);
map.put("branch", branch);
return httpRestClient.get(ProjectEnvironment.getUrl(environment) + "checkBranch", String.class, map);
... ... @@ -131,9 +140,20 @@ public class ProjectBuildCtrl {
* @return
*/
@RequestMapping(value = "build", method = RequestMethod.POST)
public ModelAndView build(String project_name, String environment_name, String operate_name, String branch_name, String rollbackfile_name, Model model, HttpSession session) {
public ModelAndView build(String project_name, String environment_name, String operate_name, String branch_name, String rollbackfile_name,String workid_name, Model model, HttpSession session) {
try {
User user = (User) session.getAttribute("user");
Map<String,String> map = new HashMap<>();
if (StringUtils.equals("Deploy",operate_name) && !StringUtils.equals("release0",workid_name)){//查询用户是否有工单处理权限
map.put("id",workid_name);
map.put("user",user.getName());
BaseResponse baseResponse = httpRestClient.defaultGet(HttpUriContants.UPDATE_JOB_BY_OPERATOR,BaseResponse.class,map);
if (baseResponse.getCode() != 200){
model.addAttribute("environment_name", baseResponse.getMessage());
return new ModelAndView("project/project_build");
}
}
List<BuildMessage> list = new ArrayList<>();
BuildRequest buildRequest = new BuildRequest();
buildRequest.setBranch(branch_name);
... ... @@ -141,6 +161,7 @@ public class ProjectBuildCtrl {
buildRequest.setEnvironment(environment_name);
buildRequest.setRollbackfile(rollbackfile_name);
buildRequest.setOperate(operate_name);
buildRequest.setWorkid(workid_name);
String messageids = "";
if ("Deploy".equals(operate_name)) {
... ...
... ... @@ -186,11 +186,15 @@
},{
title: "执行顺序",
field: "projectOrder",
width: "25%"
width: "20%"
},{
title: "关联工单",
field: "workid",
width: "7%"
},{
title: "时间",
field: "createTime",
width: "15%"
width: "12%"
}]
});
... ...
... ... @@ -80,6 +80,14 @@
</div>
</div>
<div class="form-group" id="workid-div">
<label class="col-sm-1 control-label">关联工单</label>
<div class="col-sm-8">
<input name="workid" type="text" class="form-control"
style="width: 300px"/>
</div>
</div>
<div class="form-group" id="rollback-div" style="display: none">
<label class="col-sm-1 control-label">回滚版本选择</label>
... ... @@ -143,6 +151,12 @@
<br>
<div class="input-group">
<span class="input-group-addon">关联工单</span>
<input type="text" name="workid_name" class="form-control" readonly="readonly"  placeholder="填写 release0 可以不关联工单号">
</div>
<br>
<div class="input-group">
<span class="input-group-addon">回滚文件</span>
<input type="text" name="rollbackfile_name" class="form-control" readonly="readonly">
</div>
... ...
... ... @@ -80,6 +80,14 @@
</div>
</div>
<div class="form-group" id="workid-div">
<label class="col-sm-1 control-label">关联工单</label>
<div class="col-sm-8">
<input name="workid" type="text" class="form-control"
style="width: 300px"/>
</div>
</div>
<div class="form-group" id="rollback-div" style="display: none">
<label class="col-sm-1 control-label">回滚版本选择</label>
... ... @@ -143,6 +151,12 @@
<br>
<div class="input-group">
<span class="input-group-addon">关联工单</span>
<input type="text" name="workid_name" class="form-control" readonly="readonly" placeholder="填写 release0 可以不关联工单号">
</div>
<br>
<div class="input-group">
<span class="input-group-addon">回滚文件</span>
<input type="text" name="rollbackfile_name" class="form-control" readonly="readonly">
</div>
... ...
... ... @@ -85,6 +85,14 @@
</div>
</div>
<div class="form-group" id="workid-div">
<label class="col-sm-1 control-label">关联工单</label>
<div class="col-sm-8">
<input name="workid" type="text" class="form-control"
style="width: 300px" placeholder="填写 release0 可以不关联工单号"/>
</div>
</div>
<div class="form-group" id="rollback-div" style="display: none">
<label class="col-sm-1 control-label">回滚版本选择</label>
... ... @@ -143,6 +151,12 @@
<br>
<div class="input-group">
<span class="input-group-addon">关联工单</span>
<input type="text" name="workid_name" class="form-control" readonly="readonly">
</div>
<br>
<div class="input-group">
<span class="input-group-addon">回滚文件</span>
<input type="text" name="rollbackfile_name" class="form-control" readonly="readonly">
</div>
... ...
... ... @@ -104,14 +104,41 @@ function comfirmSubmit() {
alert("请填写分支名称");
return;
}
$("input[name='branch_name']").val(branch);
$('#confirmSubmitDivId').modal('show');
var workid = $("input[name='workid']").val();
if (workid == "") {
alert("请填写关联工单号");
return;
}
$.ajax({
url: 'check?workid=' + workid,
type: 'POST',
success: function (data) {
if (data != "1") {
alert(data);
return;
} else {
$("input[name='branch_name']").val(branch);
$("input[name='workid_name']").val(workid);
$('#confirmSubmitDivId').modal('show');
}
},
error: function (e) {
alert("从后台获取数据出错");
}
});
} else {//回滚
var rollbackfile = $("#rollbackList option:selected").val();
if (typeof(rollbackfile) == "undefined" || rollbackfile == "") {
alert("请选择回滚版本");
return;
}
var workid = $("input[name='workid']").val();
if (workid == "") {
alert("请填写关联工单号");
return;
}
$("input[name='workid_name']").val(workid);
$("input[name='rollbackfile_name']").val(rollbackfile);
$('#confirmSubmitDivId').modal('show');
}
... ...
... ... @@ -104,14 +104,43 @@ function comfirmSubmit() {
alert("请填写分支名称");
return;
}
$("input[name='branch_name']").val(branch);
$('#confirmSubmitDivId').modal('show');
var workid = $("input[name='workid']").val();
if (workid == "") {
alert("请填写关联工单号");
return;
}
$.ajax({
url: 'check?workid=' + workid,
type: 'POST',
success: function (data) {
if (data != "1") {
alert(data);
return;
} else {
$("input[name='branch_name']").val(branch);
$("input[name='workid_name']").val(workid);
$('#confirmSubmitDivId').modal('show');
}
},
error: function (e) {
alert("从后台获取数据出错");
}
});
} else {//回滚
var rollbackfile = $("#rollbackList option:selected").val();
if (typeof(rollbackfile) == "undefined" || rollbackfile == "") {
alert("请选择回滚版本");
return;
}
var workid = $("input[name='workid']").val();
if (workid == "") {
alert("请填写关联工单号");
return;
}
$("input[name='workid_name']").val(workid);
$("input[name='rollbackfile_name']").val(rollbackfile);
$('#confirmSubmitDivId').modal('show');
}
... ...
jQuery(document).ready(function () {
getProjects();
});
/**
... ... @@ -186,8 +187,14 @@ function comfirmSubmit() {
alert("请填写分支名称");
return;
}
var workid = $("input[name='workid']").val();
if (workid == "") {
alert("请填写关联工单号");
return;
}
$.ajax({
url: 'checkBranch?projects=' + projects + '&branch=' + branch+ '&environment=' + environment,
url: 'check?projects=' + projects + '&branch=' + branch+ '&environment=' + environment+ '&workid=' + workid,
type: 'POST',
success: function (data) {
if (data != "1") {
... ... @@ -198,6 +205,7 @@ function comfirmSubmit() {
$("input[name='project_name']").val(projects);
$("input[name='environment_name']").val(environment);
$("input[name='branch_name']").val(branch);
$("input[name='workid_name']").val(workid);
$('#confirmSubmitDivId').modal('show');
}
},
... ... @@ -212,6 +220,11 @@ function comfirmSubmit() {
alert("请选择回滚项目");
return;
}
var workid = $("input[name='workid']").val();
if (workid == "") {
alert("请填写关联工单号");
return;
}
if (typeof(rollbackfile) == "undefined" || rollbackfile == "") {
alert("请选择回滚版本");
return;
... ... @@ -220,6 +233,7 @@ function comfirmSubmit() {
$("input[name='project_name']").val(project);
$("input[name='environment_name']").val(environment);
$("input[name='rollbackfile_name']").val(rollbackfile);
$("input[name='workid_name']").val(workid);
$('#confirmSubmitDivId').modal('show');
}
... ... @@ -331,7 +345,10 @@ function autotest(){
}
function getWorkids(){
}
... ...