From 5d41d66427f84b705f205205cafb59236170b6a3 Mon Sep 17 00:00:00 2001 From: ligang Date: Thu, 11 Apr 2019 20:06:39 +0800 Subject: [PATCH] update QueueController and QueueService --- .../api/controller/QueueController.java | 25 +++++ .../escheduler/api/service/QueueService.java | 93 ++++++++++++++++--- .../api/controller/QueueControllerTest.java | 24 ++++- 3 files changed, 127 insertions(+), 15 deletions(-) diff --git a/escheduler-api/src/main/java/cn/escheduler/api/controller/QueueController.java b/escheduler-api/src/main/java/cn/escheduler/api/controller/QueueController.java index debf29a524..29c01a1483 100644 --- a/escheduler-api/src/main/java/cn/escheduler/api/controller/QueueController.java +++ b/escheduler-api/src/main/java/cn/escheduler/api/controller/QueueController.java @@ -141,5 +141,30 @@ public class QueueController extends BaseController{ } } + /** + * verify queue and queue name + * + * @param loginUser + * @param queue + * @param queueName + * @return + */ + @PostMapping(value = "/verify-queue") + @ResponseStatus(HttpStatus.OK) + public Result verifyQueue(@RequestAttribute(value = Constants.SESSION_USER) User loginUser, + @RequestParam(value ="queue") String queue, + @RequestParam(value ="queueName") String queueName + ) { + + try{ + logger.info("login user {}, verfiy queue: {} queue name: {}", + loginUser.getUserName(),queue,queueName); + return queueService.verifyQueue(queue,queueName); + }catch (Exception e){ + logger.error(VERIFY_QUEUE_ERROR.getMsg(),e); + return error(Status.VERIFY_QUEUE_ERROR.getCode(), Status.VERIFY_QUEUE_ERROR.getMsg()); + } + } + } diff --git a/escheduler-api/src/main/java/cn/escheduler/api/service/QueueService.java b/escheduler-api/src/main/java/cn/escheduler/api/service/QueueService.java index 109719eb03..a1cba1f13f 100644 --- a/escheduler-api/src/main/java/cn/escheduler/api/service/QueueService.java +++ b/escheduler-api/src/main/java/cn/escheduler/api/service/QueueService.java @@ -19,10 +19,13 @@ package cn.escheduler.api.service; import cn.escheduler.api.enums.Status; import cn.escheduler.api.utils.Constants; import cn.escheduler.api.utils.PageInfo; +import cn.escheduler.api.utils.Result; import cn.escheduler.dao.mapper.QueueMapper; import cn.escheduler.dao.model.Queue; import cn.escheduler.dao.model.User; import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -37,6 +40,7 @@ import java.util.Map; @Service public class QueueService extends BaseService { + private static final Logger logger = LoggerFactory.getLogger(TenantService.class); @Autowired private QueueMapper queueMapper; @@ -103,12 +107,22 @@ public class QueueService extends BaseService { return result; } - if (checkQueueExists(queue)) { + if(StringUtils.isEmpty(queue)){ + putMsg(result, Status.REQUEST_PARAMS_NOT_VALID_ERROR, queue); + return result; + } + + if(StringUtils.isEmpty(queueName)){ + putMsg(result, Status.REQUEST_PARAMS_NOT_VALID_ERROR, queueName); + return result; + } + + if (checkQueueExist(queue)) { putMsg(result, Status.QUEUE_EXIST, queue); return result; } - if (checkQueueExists(queueName)) { + if (checkQueueNameExist(queueName)) { putMsg(result, Status.QUEUE_NAME_EXIST, queueName); return result; } @@ -142,27 +156,38 @@ public class QueueService extends BaseService { return result; } - Queue queueObj = queueMapper.queryById(id); if (queueObj == null) { putMsg(result, Status.QUEUE_NOT_EXIST, id); return result; } - //update queue + // whether queue and queueName is changed + if (queue.equals(queueObj.getQueue()) && queueName.equals(queueObj.getQueueName())) { + putMsg(result, Status.NEED_NOT_UPDATE_QUEUE); + return result; + } - if (StringUtils.isNotEmpty(queue)) { - if (!queue.equals(queueObj.getQueue()) && checkQueueExists(queue)) { + // check queue is exist + if (!queue.equals(queueObj.getQueue())) { + if(checkQueueExist(queue)){ putMsg(result, Status.QUEUE_EXIST, queue); return result; } - queueObj.setQueue(queue); } - if (StringUtils.isNotEmpty(queueName)) { - queueObj.setQueueName(queueName); + + // check queueName is exist + if (!queueName.equals(queueObj.getQueueName())) { + if(checkQueueNameExist(queueName)){ + putMsg(result, Status.QUEUE_NAME_EXIST, queueName); + return result; + } } - Date now = new Date(); + // update queue + Date now = new Date(); + queueObj.setQueue(queue); + queueObj.setQueueName(queueName); queueObj.setUpdateTime(now); queueMapper.update(queueObj); @@ -171,15 +196,59 @@ public class QueueService extends BaseService { return result; } + /** + * verify queue and queueName + * + * @param queue + * @param queueName + * @return + */ + public Result verifyQueue(String queue, String queueName) { + Result result=new Result(); + + if (StringUtils.isEmpty(queue)) { + putMsg(result, Status.REQUEST_PARAMS_NOT_VALID_ERROR, queue); + return result; + } + + if (StringUtils.isEmpty(queueName)) { + putMsg(result, Status.REQUEST_PARAMS_NOT_VALID_ERROR, queueName); + return result; + } + if(checkQueueExist(queue)){ + logger.error("queue {} has exist, can't create again.", queue); + putMsg(result, Status.QUEUE_EXIST, queue); + return result; + } + + if(checkQueueNameExist(queueName)){ + logger.error("queueName {} has exist, can't create again.", queueName); + putMsg(result, Status.QUEUE_NAME_EXIST, queueName); + return result; + } + + putMsg(result, Status.SUCCESS); + return result; + } /** - * check queue exists + * check queue exist * * @param queue * @return */ - private boolean checkQueueExists(String queue) { + private boolean checkQueueExist(String queue) { return queueMapper.queryByQueue(queue) == null ? false : true; } + /** + * check queue name exist + * + * @param queueName + * @return + */ + private boolean checkQueueNameExist(String queueName) { + return queueMapper.queryByQueueName(queueName) == null ? false : true; + } + } diff --git a/escheduler-api/src/test/java/cn/escheduler/api/controller/QueueControllerTest.java b/escheduler-api/src/test/java/cn/escheduler/api/controller/QueueControllerTest.java index f1ced425fe..3ea445be66 100644 --- a/escheduler-api/src/test/java/cn/escheduler/api/controller/QueueControllerTest.java +++ b/escheduler-api/src/test/java/cn/escheduler/api/controller/QueueControllerTest.java @@ -93,8 +93,8 @@ public class QueueControllerTest { public void createQueue() throws Exception { MultiValueMap paramsMap = new LinkedMultiValueMap<>(); - paramsMap.add("queue","ait1111"); - paramsMap.add("queueName","aitName"); + paramsMap.add("queue","ait111134"); + paramsMap.add("queueName","aitName1"); MvcResult mvcResult = mockMvc.perform(post("/queue/create") .header("sessionId", "d4541e0d-0349-4f05-9c68-300176cd3c91") @@ -112,7 +112,7 @@ public class QueueControllerTest { MultiValueMap paramsMap = new LinkedMultiValueMap<>(); paramsMap.add("id","2"); - paramsMap.add("queue","ait1"); + paramsMap.add("queue","ait12"); paramsMap.add("queueName","aitName"); MvcResult mvcResult = mockMvc.perform(post("/queue/update") @@ -125,4 +125,22 @@ public class QueueControllerTest { //Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue()); logger.info(mvcResult.getResponse().getContentAsString()); } + + @Test + public void verifyQueue() throws Exception { + + MultiValueMap paramsMap = new LinkedMultiValueMap<>(); + paramsMap.add("queue","ait123"); + paramsMap.add("queueName","aitName"); + + MvcResult mvcResult = mockMvc.perform(post("/queue/verify-queue") + .header("sessionId", "d4541e0d-0349-4f05-9c68-300176cd3c91") + .params(paramsMap)) + .andExpect(status().isOk()) + .andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8)) + .andReturn(); + Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); + //Assert.assertEquals(Status.SUCCESS.getCode(),result.getCode().intValue()); + logger.info(mvcResult.getResponse().getContentAsString()); + } } \ No newline at end of file