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 new file mode 100644 index 0000000..cd3d312 --- /dev/null +++ b/reader/src/main/java/cn/org/gitlink/notification/reader/controller/NotificationController.java @@ -0,0 +1,77 @@ +package cn.org.gitlink.notification.reader.controller; + +import cn.org.gitlink.notification.common.response.DataPacketUtil; +import cn.org.gitlink.notification.common.response.ResponseData; +import cn.org.gitlink.notification.common.utils.RedisUtil; +import cn.org.gitlink.notification.model.dao.entity.SysNotification; +import cn.org.gitlink.notification.model.service.notification.SysNotificationService; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping(value = "/gns/notification") +public class NotificationController { + + private static final String PLATFORM_CODE_GITLINK = "gitlink"; + + @Autowired + private RedisUtil redisUtil; + + @Autowired + @Qualifier(value = "sysNotificationServiceImpl") + private SysNotificationService notificationService; + + 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 = "/{type}") + public ResponseData index(@PathVariable(name = "type", required = true) String type, + @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) { + + if (receiver <= 0 || receiver >= Integer.MAX_VALUE) { + logger.debug("------>输入参数 {receiver} 的值 {" + receiver + "} 超出约定范围"); + DataPacketUtil.jsonFailResult("参数 {receiver} 非法"); + } + + if (type.trim().toLowerCase().equals("list")) { + //用户请求的是 list + logger.debug("------>{type} 参数是 list"); + + //TODO: 获取约定的必要参数 + + //调用业务逻辑获取数据结果 + List foundList = notificationService.getUnreadSysNotificationsList(PLATFORM_CODE_GITLINK, receiver, pageSize); + + //拼装约定的 json 格式并返回 + return DataPacketUtil.jsonSuccessResult(foundList); + } else if (type.trim().toLowerCase().equals("count")) { + //用户请求的是数字 + logger.debug("------>{type} 参数是 count"); + + //TODO: 获取必要的参数 + + //调用业务逻辑获取数据结果 + Integer foundCount = notificationService.getSysNotificationNumberByType(PLATFORM_CODE_GITLINK, receiver, 1); + + //拼装约定的 json 格式并返回 + return DataPacketUtil.jsonSuccessResult(foundCount); + } else { + logger.debug("------>输入参数 {type} 的值 {" + type + "} 无效"); + return DataPacketUtil.jsonFailResult("参数 {type} 非法"); + }//end of if-else + }//end of method +}//end of class diff --git a/reader/src/main/java/cn/org/gitlink/notification/reader/controller/SysNotificationController.java b/reader/src/main/java/cn/org/gitlink/notification/reader/controller/SysNotificationController.java deleted file mode 100644 index b3408a9..0000000 --- a/reader/src/main/java/cn/org/gitlink/notification/reader/controller/SysNotificationController.java +++ /dev/null @@ -1,40 +0,0 @@ -package cn.org.gitlink.notification.reader.controller; - -import cn.org.gitlink.notification.common.response.DataPacketUtil; -import cn.org.gitlink.notification.common.response.ResponseData; -import cn.org.gitlink.notification.common.utils.RedisUtil; -import cn.org.gitlink.notification.model.dao.entity.SysNotification; -import cn.org.gitlink.notification.model.service.notification.SysNotificationService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.List; - -@RestController -@RequestMapping(value = "/gns/sys_notification") -public class SysNotificationController { - - public static final String GITLINK_PLATFORM_CODE = "gitlink"; - - @Autowired - private RedisUtil redisUtil; - - @Autowired - @Qualifier(value = "sysNotificationServiceImpl") - private SysNotificationService notificationService; - - - @GetMapping(value = "/unread_message_count/{receiver}") - public ResponseData unreadMessageCount(@PathVariable(name = "receiver", required = true) Integer receiver) { - if (receiver > 0) { - List foundList = notificationService.getUnreadSysNotificationsList(SysNotificationController.GITLINK_PLATFORM_CODE, receiver, 20); - return DataPacketUtil.jsonSuccessResult(foundList); - } else { - return DataPacketUtil.jsonFailResult("参数 {receiver} 非法"); - } - } -}