peng
2026-03-18 e59a0201057ba67cad425fed804c82ff4ba0c6f1
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package com.tievd.cube.modules.system.controller;
 
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tievd.cube.commons.annotations.DictMethod;
import com.tievd.cube.commons.base.CubeController;
import com.tievd.cube.commons.base.Result;
import com.tievd.cube.commons.utils.SystemContextUtil;
import com.tievd.cube.modules.system.entity.SysAnnouncementSend;
import com.tievd.cube.modules.system.model.AnnouncementSendModel;
import com.tievd.cube.modules.system.model.LoginUser;
import com.tievd.cube.modules.system.model.api.request.GetMyNewsRequest;
import com.tievd.cube.modules.system.model.api.request.HaveReadRequest;
import com.tievd.cube.modules.system.service.ISysAnnouncementSendService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
 
/**
 * 用户通告发送与阅读标记
 *
 * @author 杨欣武
 * @version 2.5.3
 * @since 2022-08-12
 */
@Tag(name = "通告阅读标记相关接口")
@RestController
@RequestMapping("/sys/announcement/send")
public class SysAnnouncementSendController extends CubeController<SysAnnouncementSend, ISysAnnouncementSendService> {
 
    /**
     * 标记用户系统消息已读
     */
    @PutMapping("/haveRead")
    @Operation(summary = "系统消息已读")
    public Result<?> haveRead(@Validated @RequestBody HaveReadRequest request) {
        service.haveRead(request.getAnntId());
        return Result.ok();
    }
 
    /**
     * 获取我的消息
     */
    @DictMethod
    @GetMapping("/getMyAnnouncementSend")
    @Operation(summary = "获取我的消息")
    @Parameters({
            @Parameter(name = "title", description = "标题"),
            @Parameter(name = "sender", description = "发布人"),
            @Parameter(name = "readFlag", description = "阅读状态"),
            @Parameter(name = "msgCategory", description = "消息类型(1:通知公告、2:系统消息)"),
            @Parameter(name = "busType", description = "业务类型"),
            @Parameter(name = "pageNo", description = "页码"),
            @Parameter(name = "pageSize", description = "每页数量")
    })
    public Result<IPage<AnnouncementSendModel>> getMyAnnouncementSend(@Parameter(hidden = true) GetMyNewsRequest request) {
        LoginUser sysUser = SystemContextUtil.currentLoginUser();
        String userId = sysUser.getId();
        AnnouncementSendModel announcementSend = new AnnouncementSendModel();
        announcementSend.setUserId(userId);
        announcementSend.setMsgCategory(request.getMsgCategory());
        announcementSend.setTitle(request.getTitle());
        announcementSend.setSender(request.getSender());
        announcementSend.setReadFlag(request.getReadFlag());
        announcementSend.setBusType(request.getBusType());
        announcementSend.setPageNo((request.getPageNo() - 1) * request.getPageSize());
        announcementSend.setPageSize(request.getPageSize());
        Page<AnnouncementSendModel> pageList = new Page<>(request.getPageNo(), request.getPageSize());
        pageList = service.getMyAnnouncementSendPage(pageList, announcementSend);
        return Result.ok(pageList);
    }
 
    /**
     * 一键已读
     */
    @PutMapping("/readAll")
    @Operation(summary = "一键已读")
    public Result<?> readAll() {
        service.readAll();
        return Result.ok();
    }
}