Commit 9fac5a95dd758ed4e4bad6cd4a10726ed631b518
1 parent
399721bd
app增加站内消息查询
Showing
2 changed files
with
124 additions
and
0 deletions
urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/controller/app/notify/AppNotifyMessageController.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.system.controller.app.notify; | |
| 2 | + | |
| 3 | +import com.zteits.urbanops.framework.apilog.core.annotation.ApiAccessLog; | |
| 4 | +import com.zteits.urbanops.framework.common.enums.UserTypeEnum; | |
| 5 | +import com.zteits.urbanops.framework.common.pojo.CommonResult; | |
| 6 | +import com.zteits.urbanops.framework.common.pojo.PageResult; | |
| 7 | +import com.zteits.urbanops.framework.common.util.object.BeanUtils; | |
| 8 | +import com.zteits.urbanops.module.system.controller.admin.notify.vo.message.NotifyMessageMyPageReqVO; | |
| 9 | +import com.zteits.urbanops.module.system.controller.app.notify.vo.message.NotifyMessageRespVO; | |
| 10 | +import com.zteits.urbanops.module.system.dal.dataobject.notify.NotifyMessageDO; | |
| 11 | +import com.zteits.urbanops.module.system.service.notify.NotifyMessageService; | |
| 12 | +import io.swagger.v3.oas.annotations.Operation; | |
| 13 | +import io.swagger.v3.oas.annotations.Parameter; | |
| 14 | +import io.swagger.v3.oas.annotations.tags.Tag; | |
| 15 | +import jakarta.annotation.Resource; | |
| 16 | +import jakarta.validation.Valid; | |
| 17 | +import org.springframework.validation.annotation.Validated; | |
| 18 | +import org.springframework.web.bind.annotation.*; | |
| 19 | + | |
| 20 | +import java.util.List; | |
| 21 | + | |
| 22 | +import static com.zteits.urbanops.framework.common.pojo.CommonResult.success; | |
| 23 | +import static com.zteits.urbanops.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; | |
| 24 | + | |
| 25 | +@Tag(name = "管理后台 - 我的站内信") | |
| 26 | +@RestController | |
| 27 | +@RequestMapping("/system/notify-message") | |
| 28 | +@Validated | |
| 29 | +public class AppNotifyMessageController { | |
| 30 | + | |
| 31 | + @Resource | |
| 32 | + private NotifyMessageService notifyMessageService; | |
| 33 | + | |
| 34 | + @GetMapping("/my-page") | |
| 35 | + @Operation(summary = "获得我的站内信分页") | |
| 36 | + public CommonResult<PageResult<NotifyMessageRespVO>> getMyMyNotifyMessagePage(@Valid NotifyMessageMyPageReqVO pageVO) { | |
| 37 | + PageResult<NotifyMessageDO> pageResult = notifyMessageService.getMyMyNotifyMessagePage(pageVO, | |
| 38 | + getLoginUserId(), UserTypeEnum.ADMIN.getValue()); | |
| 39 | + return success(BeanUtils.toBean(pageResult, NotifyMessageRespVO.class)); | |
| 40 | + } | |
| 41 | + | |
| 42 | + @PutMapping("/update-read") | |
| 43 | + @Operation(summary = "标记站内信为已读") | |
| 44 | + @Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048") | |
| 45 | + public CommonResult<Boolean> updateNotifyMessageRead(@RequestParam("ids") List<Long> ids) { | |
| 46 | + notifyMessageService.updateNotifyMessageRead(ids, getLoginUserId(), UserTypeEnum.ADMIN.getValue()); | |
| 47 | + return success(Boolean.TRUE); | |
| 48 | + } | |
| 49 | + | |
| 50 | + @PutMapping("/update-all-read") | |
| 51 | + @Operation(summary = "标记所有站内信为已读") | |
| 52 | + public CommonResult<Boolean> updateAllNotifyMessageRead() { | |
| 53 | + notifyMessageService.updateAllNotifyMessageRead(getLoginUserId(), UserTypeEnum.ADMIN.getValue()); | |
| 54 | + return success(Boolean.TRUE); | |
| 55 | + } | |
| 56 | + | |
| 57 | + @GetMapping("/get-unread-list") | |
| 58 | + @Operation(summary = "获取当前用户的最新站内信列表,默认 10 条") | |
| 59 | + @Parameter(name = "size", description = "10") | |
| 60 | + public CommonResult<List<NotifyMessageRespVO>> getUnreadNotifyMessageList( | |
| 61 | + @RequestParam(name = "size", defaultValue = "10") Integer size) { | |
| 62 | + List<NotifyMessageDO> list = notifyMessageService.getUnreadNotifyMessageList( | |
| 63 | + getLoginUserId(), UserTypeEnum.ADMIN.getValue(), size); | |
| 64 | + return success(BeanUtils.toBean(list, NotifyMessageRespVO.class)); | |
| 65 | + } | |
| 66 | + | |
| 67 | + @GetMapping("/get-unread-count") | |
| 68 | + @Operation(summary = "获得当前用户的未读站内信数量") | |
| 69 | + @ApiAccessLog(enable = false) // 由于前端会不断轮询该接口,记录日志没有意义 | |
| 70 | + public CommonResult<Long> getUnreadNotifyMessageCount() { | |
| 71 | + return success(notifyMessageService.getUnreadNotifyMessageCount( | |
| 72 | + getLoginUserId(), UserTypeEnum.ADMIN.getValue())); | |
| 73 | + } | |
| 74 | + | |
| 75 | +} | ... | ... |
urbanops-module-system/src/main/java/com/zteits/urbanops/module/system/controller/app/notify/vo/message/NotifyMessageRespVO.java
0 → 100644
| 1 | +package com.zteits.urbanops.module.system.controller.app.notify.vo.message; | |
| 2 | + | |
| 3 | +import io.swagger.v3.oas.annotations.media.Schema; | |
| 4 | +import lombok.Data; | |
| 5 | + | |
| 6 | +import java.time.LocalDateTime; | |
| 7 | +import java.util.Map; | |
| 8 | + | |
| 9 | +@Schema(description = "管理后台 - 站内信 Response VO") | |
| 10 | +@Data | |
| 11 | +public class NotifyMessageRespVO { | |
| 12 | + | |
| 13 | + @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | |
| 14 | + private Long id; | |
| 15 | + | |
| 16 | + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "25025") | |
| 17 | + private Long userId; | |
| 18 | + | |
| 19 | + @Schema(description = "用户类型,参见 UserTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | |
| 20 | + private Byte userType; | |
| 21 | + | |
| 22 | + @Schema(description = "模版编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "13013") | |
| 23 | + private Long templateId; | |
| 24 | + | |
| 25 | + @Schema(description = "模板编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "test_01") | |
| 26 | + private String templateCode; | |
| 27 | + | |
| 28 | + @Schema(description = "模版发送人名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿") | |
| 29 | + private String templateNickname; | |
| 30 | + | |
| 31 | + @Schema(description = "模版内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "测试内容") | |
| 32 | + private String templateContent; | |
| 33 | + | |
| 34 | + @Schema(description = "模版类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") | |
| 35 | + private Integer templateType; | |
| 36 | + | |
| 37 | + @Schema(description = "模版参数", requiredMode = Schema.RequiredMode.REQUIRED) | |
| 38 | + private Map<String, Object> templateParams; | |
| 39 | + | |
| 40 | + @Schema(description = "是否已读", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") | |
| 41 | + private Boolean readStatus; | |
| 42 | + | |
| 43 | + @Schema(description = "阅读时间") | |
| 44 | + private LocalDateTime readTime; | |
| 45 | + | |
| 46 | + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) | |
| 47 | + private LocalDateTime createTime; | |
| 48 | + | |
| 49 | +} | ... | ... |