diff --git a/src/main/java/com/youlai/boot/system/controller/DictController.java b/src/main/java/com/youlai/boot/system/controller/DictController.java index 1d79d993..71d2e6c0 100644 --- a/src/main/java/com/youlai/boot/system/controller/DictController.java +++ b/src/main/java/com/youlai/boot/system/controller/DictController.java @@ -14,6 +14,7 @@ import com.youlai.boot.system.service.DictService; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; +import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -73,7 +74,7 @@ public class DictController { @PostMapping @PreAuthorize("@ss.hasPerm('sys:dict:add')") @RepeatSubmit - public Result saveDict(@RequestBody DictForm formData) { + public Result saveDict(@Valid @RequestBody DictForm formData) { boolean result = dictService.saveDict(formData); return Result.judge(result); } diff --git a/src/main/java/com/youlai/boot/system/controller/NoticeController.java b/src/main/java/com/youlai/boot/system/controller/NoticeController.java index 263ac43f..78bb8f53 100644 --- a/src/main/java/com/youlai/boot/system/controller/NoticeController.java +++ b/src/main/java/com/youlai/boot/system/controller/NoticeController.java @@ -120,4 +120,11 @@ public class NoticeController { noticeStatusService.readAll(); return Result.success(); } + + @Operation(summary = "获取我的通知公告") + @GetMapping("/my/page") + public PageResult getMyNoticePage(NoticeQuery queryParams) { + IPage result = noticeService.getMyNoticePage(queryParams); + return PageResult.success(result); + } } diff --git a/src/main/java/com/youlai/boot/system/mapper/NoticeStatusMapper.java b/src/main/java/com/youlai/boot/system/mapper/NoticeStatusMapper.java index 4858c8e9..779fa830 100644 --- a/src/main/java/com/youlai/boot/system/mapper/NoticeStatusMapper.java +++ b/src/main/java/com/youlai/boot/system/mapper/NoticeStatusMapper.java @@ -1,8 +1,12 @@ package com.youlai.boot.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.youlai.boot.system.model.entity.NoticeStatus; +import com.youlai.boot.system.model.query.NoticeQuery; import com.youlai.boot.system.model.vo.NoticeStatusVO; +import com.youlai.boot.system.model.vo.NoticeVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -23,4 +27,12 @@ public interface NoticeStatusMapper extends BaseMapper { * @return 公告列表 */ List listUnreadNotices(@Param("userId")Long userId); + + /** + * 分页获取我的通知公告 + * @param page 分页对象 + * @param queryParams 查询参数 + * @return 通知公告分页列表 + */ + IPage getMyNoticePage(Page page, @Param("queryParams") NoticeQuery queryParams); } diff --git a/src/main/java/com/youlai/boot/system/model/query/NoticeQuery.java b/src/main/java/com/youlai/boot/system/model/query/NoticeQuery.java index b2df83a2..f58a9f6e 100644 --- a/src/main/java/com/youlai/boot/system/model/query/NoticeQuery.java +++ b/src/main/java/com/youlai/boot/system/model/query/NoticeQuery.java @@ -28,4 +28,7 @@ public class NoticeQuery extends BasePageQuery { @Schema(description = "发布时间") private List releaseTime; + + @Schema(description = "查询人ID") + private Long userId; } diff --git a/src/main/java/com/youlai/boot/system/model/vo/NoticeStatusVO.java b/src/main/java/com/youlai/boot/system/model/vo/NoticeStatusVO.java index 320e99fc..7fc953e1 100644 --- a/src/main/java/com/youlai/boot/system/model/vo/NoticeStatusVO.java +++ b/src/main/java/com/youlai/boot/system/model/vo/NoticeStatusVO.java @@ -1,8 +1,11 @@ package com.youlai.boot.system.model.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.time.LocalDateTime; + /** * 用户公告状态VO * @@ -13,12 +16,25 @@ import lombok.Data; @Schema(description = "用户公告状态VO") public class NoticeStatusVO { - @Schema(description = "公告ID") + @Schema(description = "通知ID") private Long id; - @Schema(description = "公告标题") + @Schema(description = "通知标题") private String title; + @Schema(description = "通知类型") + private String noticeTypeLabel; + + @Schema(description = "发布人") + private String releaseBy; + + @Schema(description = "优先级(0-低 1-中 2-高)") + private Integer priority; + + @Schema(description = "发布时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime releaseTime; + @Schema(description = "是否已读") private Integer readStatus; diff --git a/src/main/java/com/youlai/boot/system/service/NoticeService.java b/src/main/java/com/youlai/boot/system/service/NoticeService.java index 1613796b..66e31f32 100644 --- a/src/main/java/com/youlai/boot/system/service/NoticeService.java +++ b/src/main/java/com/youlai/boot/system/service/NoticeService.java @@ -86,4 +86,11 @@ public interface NoticeService extends IService { * @return 通知公告详情 */ NoticeDetailVO getReadNoticeDetail(Long id); + + /** + * 获取我的通知公告分页列表 + * @param queryParams 查询参数 + * @return 通知公告分页列表 + */ + IPage getMyNoticePage(NoticeQuery queryParams); } diff --git a/src/main/java/com/youlai/boot/system/service/NoticeStatusService.java b/src/main/java/com/youlai/boot/system/service/NoticeStatusService.java index e767712b..5cd748c6 100644 --- a/src/main/java/com/youlai/boot/system/service/NoticeStatusService.java +++ b/src/main/java/com/youlai/boot/system/service/NoticeStatusService.java @@ -1,8 +1,12 @@ package com.youlai.boot.system.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.youlai.boot.system.model.entity.NoticeStatus; +import com.youlai.boot.system.model.query.NoticeQuery; import com.youlai.boot.system.model.vo.NoticeStatusVO; +import com.youlai.boot.system.model.vo.NoticeVO; import java.util.List; @@ -25,4 +29,12 @@ public interface NoticeStatusService extends IService { * @return 是否成功 */ boolean readAll(); + + /** + * 分页获取我的通知公告 + * @param page 分页对象 + * @param queryParams 查询参数 + * @return 通知公告分页列表 + */ + IPage getMyNoticePage(Page page, NoticeQuery queryParams); } diff --git a/src/main/java/com/youlai/boot/system/service/impl/NoticeServiceImpl.java b/src/main/java/com/youlai/boot/system/service/impl/NoticeServiceImpl.java index 7cd6ad48..cde91ba8 100644 --- a/src/main/java/com/youlai/boot/system/service/impl/NoticeServiceImpl.java +++ b/src/main/java/com/youlai/boot/system/service/impl/NoticeServiceImpl.java @@ -20,6 +20,7 @@ import com.youlai.boot.system.model.entity.NoticeStatus; import com.youlai.boot.system.model.entity.User; import com.youlai.boot.system.model.form.NoticeForm; import com.youlai.boot.system.model.query.NoticeQuery; +import com.youlai.boot.system.model.vo.NoticeStatusVO; import com.youlai.boot.system.model.vo.NoticeVO; import com.youlai.boot.system.model.vo.NoticeDetailVO; import com.youlai.boot.system.service.NoticeService; @@ -262,5 +263,16 @@ public class NoticeServiceImpl extends ServiceImpl impleme return noticeDetailVO; } + /** + * 获取当前登录用户的通知公告列表 + * @param queryParams 查询参数 + * @return 通知公告分页列表 + */ + @Override + public IPage getMyNoticePage(NoticeQuery queryParams) { + Long userId = SecurityUtils.getUserId(); + queryParams.setUserId(userId); + return noticeStatusService.getMyNoticePage(new Page<>(queryParams.getPageNum(), queryParams.getPageSize()),queryParams); + } } diff --git a/src/main/java/com/youlai/boot/system/service/impl/NoticeStatusServiceImpl.java b/src/main/java/com/youlai/boot/system/service/impl/NoticeStatusServiceImpl.java index 6e220c01..fd54e3e1 100644 --- a/src/main/java/com/youlai/boot/system/service/impl/NoticeStatusServiceImpl.java +++ b/src/main/java/com/youlai/boot/system/service/impl/NoticeStatusServiceImpl.java @@ -1,11 +1,15 @@ package com.youlai.boot.system.service.impl; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.youlai.boot.core.security.util.SecurityUtils; import com.youlai.boot.system.mapper.NoticeStatusMapper; import com.youlai.boot.system.model.entity.NoticeStatus; +import com.youlai.boot.system.model.query.NoticeQuery; import com.youlai.boot.system.model.vo.NoticeStatusVO; +import com.youlai.boot.system.model.vo.NoticeVO; import com.youlai.boot.system.service.NoticeStatusService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -48,5 +52,16 @@ public class NoticeStatusServiceImpl extends ServiceImpl getMyNoticePage(Page page, NoticeQuery queryParams) { + return this.getBaseMapper().getMyNoticePage(new Page<>(queryParams.getPageNum(), queryParams.getPageSize()),queryParams); + } + } diff --git a/src/main/java/com/youlai/boot/system/service/impl/UserServiceImpl.java b/src/main/java/com/youlai/boot/system/service/impl/UserServiceImpl.java index f0749cf9..a1f7b8f1 100644 --- a/src/main/java/com/youlai/boot/system/service/impl/UserServiceImpl.java +++ b/src/main/java/com/youlai/boot/system/service/impl/UserServiceImpl.java @@ -12,8 +12,6 @@ import com.youlai.boot.common.constant.RedisConstants; import com.youlai.boot.common.constant.SystemConstants; import com.youlai.boot.common.enums.ContactType; import com.youlai.boot.common.model.Option; -import com.youlai.boot.platform.mail.service.MailService; -import com.youlai.boot.platform.sms.service.SmsService; import com.youlai.boot.module.mail.service.MailService; import com.youlai.boot.module.sms.service.SmsService; import com.youlai.boot.system.model.entity.User; diff --git a/src/main/resources/mapper/NoticeStatusMapper.xml b/src/main/resources/mapper/NoticeStatusMapper.xml index 0704802d..d08025ee 100644 --- a/src/main/resources/mapper/NoticeStatusMapper.xml +++ b/src/main/resources/mapper/NoticeStatusMapper.xml @@ -20,4 +20,26 @@ sn.release_time DESC +