riku
2022-06-09 9867f6d5c5bccfe52b878c344c536905dd6b309e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package cn.flightfeather.supervision.lightshare.web
 
import cn.flightfeather.supervision.lightshare.service.NotificationService
import cn.flightfeather.supervision.lightshare.vo.NoticeReadStateVo
import cn.flightfeather.supervision.lightshare.vo.NotificationVo
import io.swagger.annotations.Api
import io.swagger.annotations.ApiOperation
import io.swagger.annotations.ApiParam
import org.springframework.web.bind.annotation.*
import javax.servlet.http.HttpServletResponse
 
@Api(tags = ["通知API接口"])
@RestController
@RequestMapping("/notifications")
class NotificationController(val notificationService: NotificationService) {
 
    @ApiOperation(value = "获取用户未读通知")
    @GetMapping
    fun getNotificationUnRead(
        @ApiParam("用户id") @RequestParam(value = "userId") userId: String,
        @ApiParam("页码") @RequestParam(value = "page") page: Int,
        @ApiParam("单页数据量") @RequestParam(value = "per_page") perPage: Int,
        response: HttpServletResponse
    ) = notificationService.getNotificationUnRead(userId, page, perPage, response)
 
    @ApiOperation(value = "更新通知读取状态")
    @PostMapping("/{userId}/readState")
    fun updateReadState(
        @ApiParam("用户id") @PathVariable("userId") userId: String,
        @ApiParam("通知读取状态") @RequestBody readStates: List<NoticeReadStateVo>
    ) = notificationService.updateReadState(userId, readStates)
 
    @ApiOperation(value = "获取通知长文本内容")
    @GetMapping("/text")
    fun getNotificationText(
        @ApiParam("通知id") @RequestParam(value = "id") notificationId: String
    ) = notificationService.getNotificationText(notificationId)
 
    @ApiOperation(value = "获取总未读通知数量")
    @GetMapping("/{userId}/unread")
    fun getUnReadNoticeNum(
        @ApiParam("用户id") @PathVariable("userId") userId: String
    ) = notificationService.getUnReadNoticeNum(userId)
 
    @ApiOperation(value = "发布通知")
    @PostMapping("{userId}/release")
    fun releaseNotice(
        @ApiParam("用户id") @PathVariable("userId") userId: String,
        @ApiParam("通知") @RequestBody notice: NotificationVo
    ) = notificationService.releaseNotice(userId, notice)
}