diff --git a/reader/src/main/java/cn/org/gitlink/notification/reader/controller/NotificationController.java b/reader/src/main/java/cn/org/gitlink/notification/reader/controller/NotificationController.java index 8f83192..be134c4 100644 --- a/reader/src/main/java/cn/org/gitlink/notification/reader/controller/NotificationController.java +++ b/reader/src/main/java/cn/org/gitlink/notification/reader/controller/NotificationController.java @@ -28,59 +28,72 @@ public class NotificationController { private Logger logger = LogManager.getLogger(NotificationController.class); - /** - * http://{domain}:{port}/gns/notification/list/ - * http://{domain}:{port}/gns/notification/count - * - * @param type - * @param receiver - * @return - */ - @GetMapping(value = "/{platform}/{type}") - public ResponseData index(@PathVariable(name = "platform", required = true) String platform, - @PathVariable(name = "type", required = true) String type, + @GetMapping(value = "/{platform}/list") + public ResponseData list(@PathVariable(name = "platform", required = true) String platform, + @RequestParam(name = "receiver", required = true) Integer receiver, + @RequestParam(name = "page", required = false, defaultValue = "1") Integer pageNum, + @RequestParam(name = "size", required = false, defaultValue = "20") Integer pageSize) { + + //参数合法性验证 + ResponseData jsonFailResult = validateParams(platform, receiver); + if (jsonFailResult != null) return jsonFailResult; + + //TODO: 获取约定的必要参数 + + //调用业务逻辑获取数据结果 + List foundList = notificationService.getUnreadNotificationByType(platform, receiver, pageSize); + + //拼装约定的 json 格式并返回 + return DataPacketUtil.jsonSuccessResult(foundList); + }//end of method + + + + @GetMapping(value = "/{platform}/count") + public ResponseData count(@PathVariable(name = "platform", required = true) String platform, @RequestParam(name = "receiver", required = true) Integer receiver, @RequestParam(name = "page", required = false, defaultValue = "1") Integer pageNum, @RequestParam(name = "size", required = false, defaultValue = "20") Integer pageSize) { + //参数合法性验证 + ResponseData jsonFailResult = validateParams(platform, receiver); + if (jsonFailResult != null) return jsonFailResult; + + //TODO: 获取必要的参数 + + //调用业务逻辑获取数据结果 + Integer foundCount = notificationService.getUnreadNotificationCount(platform, receiver); + + //拼装约定的 json 格式并返回 + return DataPacketUtil.jsonSuccessResult(foundCount); + } + + + + //////////////////////////////// 私有方法 //////////////////////////////// + + /** + * 验证 platform 和 receiver 的合法性 + * + * @param platform + * @param receiver + * @return + */ + private ResponseData validateParams(String platform, Integer receiver) { + //验证 {platform} 参数合法性,以判断请求来源 if (!platform.trim().toLowerCase().equals(PLATFORM_CODE_GITLINK)) { - logger.debug("------>输入参数 {platform} 的值 {" + platform + "} 无效"); - return DataPacketUtil.jsonFailResult("参数 {platform} 非法"); + logger.debug("\t 输入参数 {platform} 的值 {" + platform + "} 无效"); + return DataPacketUtil.jsonFailResult("{platform} 参数非法"); } //验证 {receiver} 参数合法性 if (receiver <= 0 || receiver >= Integer.MAX_VALUE) { - logger.debug("------>输入参数 {receiver} 的值 {" + receiver + "} 超出约定范围"); - return DataPacketUtil.jsonFailResult("参数 {receiver} 非法"); + logger.debug("\t 输入参数 {receiver} 的值 {" + receiver + "} 超出约定范围"); + return DataPacketUtil.jsonFailResult("{receiver} 参数非法"); } - //判断 {type} 参数合法性,正确的值只能是 list、count - if (type.trim().toLowerCase().equals("list")) { - //用户请求的是 list - logger.debug("------>{type} 参数是 list"); - - //TODO: 获取约定的必要参数 - - //调用业务逻辑获取数据结果 - List foundList = notificationService.getUnreadNotificationByType(platform, receiver, pageSize); - - //拼装约定的 json 格式并返回 - return DataPacketUtil.jsonSuccessResult(foundList); - } else if (type.trim().toLowerCase().equals("count")) { - //用户请求的是数字 - logger.debug("------>{type} 参数是 count"); - - //TODO: 获取必要的参数 - - //调用业务逻辑获取数据结果 - Integer foundCount = notificationService.getUnreadNotificationCount(platform,receiver); - - //拼装约定的 json 格式并返回 - return DataPacketUtil.jsonSuccessResult(foundCount); - } else { - logger.debug("------>输入参数 {type} 的值 {" + type + "} 无效"); - return DataPacketUtil.jsonFailResult("参数 {type} 非法"); - }//end of if-else + return null; }//end of method + }//end of class