wip: 通知公告开发

通知公告开发
This commit is contained in:
Theo
2024-09-01 01:27:41 +08:00
parent 55ec7673fd
commit 8804480c67
27 changed files with 299 additions and 605 deletions

View File

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.*;
import com.youlai.boot.common.base.BaseEntity;
import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.EqualsAndHashCode;
/**
* 系统配置 实体
@@ -11,9 +12,10 @@ import io.swagger.v3.oas.annotations.media.Schema;
* @author Theo
* @since 2024-07-29 11:17:26
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "系统配置")
@TableName("sys_config")
@Data
public class Config extends BaseEntity {
@Schema(description = "配置名称")

View File

@@ -3,6 +3,7 @@ package com.youlai.boot.system.model.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.youlai.boot.common.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 字典实体
@@ -10,8 +11,9 @@ import lombok.Data;
* @author haoxr
* @since 2022/12/17
*/
@TableName("sys_dict")
@Data
@TableName("sys_dict")
@EqualsAndHashCode(callSuper = true)
public class Dict extends BaseEntity {
/**

View File

@@ -1,12 +1,15 @@
package com.youlai.system.model.entity;
package com.youlai.boot.system.model.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.youlai.boot.common.base.BaseEntity;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableName;
import com.youlai.system.common.base.BaseEntity;
import java.time.LocalDateTime;
/**
* 通知公告实体对象
*
@@ -44,15 +47,19 @@ public class Notice extends BaseEntity {
* 目标类型(0-全体 1-指定)
*/
private Integer tarType;
/**
* 目标ID
*/
private String tarIds;
/**
* 发布状态(0-未发布 1已发布 2已撤回)
*/
private Integer sendStatus;
private Integer releaseStatus;
/**
* 发布时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime sendTime;
private LocalDateTime releaseTime;
/**
* 撤回时间
*/
@@ -61,13 +68,16 @@ public class Notice extends BaseEntity {
/**
* 创建人ID
*/
@TableField(fill = FieldFill.INSERT)
private Long createBy;
/**
* 更新人ID
*/
@TableField(fill = FieldFill.UPDATE)
private Long updateBy;
/**
* 逻辑删除标识(0-未删除 1-已删除)
*/
private Integer isDelete;
@TableLogic(value = "0", delval = "1")
private Integer isDeleted;
}

View File

@@ -1,14 +1,13 @@
package com.youlai.system.model.entity;
package com.youlai.boot.system.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableName;
import com.youlai.system.common.base.BaseEntity;
/**
* 用户公告状态实体对象
@@ -38,11 +37,11 @@ public class NoticeStatus implements Serializable {
*/
private Long userId;
/**
* 读取状态0未读1已读
* 读取状态0未读1已读
*/
private Long readStatus;
private Integer readStatus;
/**
* 用户阅读时间
*/
private LocalDateTime readTiem;
private LocalDateTime readTime;
}

View File

@@ -1,14 +1,15 @@
package com.youlai.system.model.form;
package com.youlai.boot.system.model.form;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.Range;
import java.io.Serial;
import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
import jakarta.validation.constraints.*;
import java.util.List;
/**
* 通知公告表单对象
@@ -24,6 +25,7 @@ public class NoticeForm implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "通知ID")
private Long id;
@Schema(description = "通知标题")
@@ -39,28 +41,15 @@ public class NoticeForm implements Serializable {
@Schema(description = "通知类型")
private Integer noticeType;
@Schema(description = "发布人")
@NotNull(message = "发布人不能为空")
private Long releaseBy;
@Schema(description = "优先级(0-低 1-中 2-高)")
@Range(min = 0, max = 2, message = "优先级取值范围[0,2]")
private Integer priority;
@Schema(description = "目标类型(0-全体 1-指定)")
@Range(min = 0, max = 1, message = "目标类型取值范围[0,1]")
private Integer tarType;
@Schema(description = "发布状态(0-未发布 1已发布 2已撤回)")
private Integer sendStatus;
@Schema(description = "发布时间")
@NotNull(message = "发布时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime sendTime;
@Schema(description = "撤回时间")
@NotNull(message = "撤回时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime recallTime;
@Schema(description = "接收人ID集合")
private List<String> userIds;
}

View File

@@ -4,9 +4,11 @@ package com.youlai.boot.system.model.query;
import com.youlai.boot.common.base.BasePageQuery;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Schema(description ="字典数据项分页查询对象")
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description ="字典数据项分页查询对象")
public class DictPageQuery extends BasePageQuery {
@Schema(description="关键字(字典项名称)")

View File

@@ -1,10 +1,10 @@
package com.youlai.system.model.query;
package com.youlai.boot.system.model.query;
import com.youlai.system.common.base.BasePageQuery;
import com.youlai.boot.common.base.BasePageQuery;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
@@ -13,29 +13,19 @@ import java.util.List;
* @author youlaitech
* @since 2024-08-27 10:31
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description ="通知公告查询对象")
@Getter
@Setter
public class NoticeQuery extends BasePageQuery {
private static final long serialVersionUID = 1L;
@Schema(description = "通知标题")
private String title;
@Schema(description = "通知内容")
private String content;
@Schema(description = "通知类型")
private Integer noticeType;
@Schema(description = "发布人")
private Long releaseBy;
@Schema(description = "优先级(0-低 1-中 2-高)")
private Integer priority;
@Schema(description = "目标类型(0-全体 1-指定)")
private Integer tarType;
@Schema(description = "发布状态(0-未发布 1已发布 2已撤回)")
private Integer sendStatus;
private Integer releaseStatus;
@Schema(description = "发布时间")
private List<String> sendTime;
@Schema(description = "撤回时间")
private List<String> recallTime;
private List<String> releaseTime;
}

View File

@@ -1,10 +1,9 @@
package com.youlai.system.model.query;
package com.youlai.boot.system.model.query;
import com.youlai.system.common.base.BasePageQuery;
import com.youlai.boot.common.base.BasePageQuery;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
import java.util.List;
/**
@@ -22,12 +21,16 @@ public class NoticeStatusQuery extends BasePageQuery {
@Schema(description = "id")
private Long id;
@Schema(description = "公共通知id")
private Long noticeId;
@Schema(description = "用户id")
private Integer userId;
@Schema(description = "读取状态0未读1已读取")
private Long readStatus;
@Schema(description = "用户阅读时间")
private List<String> readTiem;
private List<String> readTime;
}

View File

@@ -3,6 +3,7 @@ package com.youlai.boot.system.model.query;
import com.youlai.boot.common.base.BasePageQuery;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 权限分页查询对象
@@ -11,7 +12,8 @@ import lombok.Data;
* @since 2022/1/14 22:22
*/
@Data
@Schema
@Schema
@EqualsAndHashCode(callSuper = true)
public class PermPageQuery extends BasePageQuery {
@Schema(description="权限名称")

View File

@@ -3,6 +3,7 @@ package com.youlai.boot.system.model.query;
import com.youlai.boot.common.base.BasePageQuery;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
@@ -12,8 +13,9 @@ import java.util.List;
* @author haoxr
* @since 2022/1/14
*/
@Schema(description ="用户分页查询对象")
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description ="用户分页查询对象")
public class UserPageQuery extends BasePageQuery {
@Schema(description="关键字(用户名/昵称/手机号)")

View File

@@ -1,35 +0,0 @@
package com.youlai.system.model.vo;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
/**
* 用户公告状态视图对象
*
* @author youlaitech
* @since 2024-08-28 16:56
*/
@Getter
@Setter
@Schema( description = "用户公告状态视图对象")
public class NoticeStatusVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "id")
private Long id;
@Schema(description = "公共通知id")
private Long noticeId;
@Schema(description = "用户id")
private Integer userId;
@Schema(description = "读取状态0未读1已读取")
private Long readStatus;
@Schema(description = "用户阅读时间")
private LocalDateTime readTiem;
}

View File

@@ -1,11 +1,12 @@
package com.youlai.system.model.vo;
package com.youlai.boot.system.model.vo;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
@@ -25,24 +26,23 @@ public class NoticeVO implements Serializable {
private Long id;
@Schema(description = "通知标题")
private String title;
@Schema(description = "通知内容")
private String content;
@Schema(description = "通知类型")
private Integer noticeType;
@Schema(description = "发布人")
private Long releaseBy;
private String releaseBy;
@Schema(description = "优先级(0-低 1-中 2-高)")
private Integer priority;
@Schema(description = "目标类型(0-全体 1-指定)")
private Integer tarType;
@Schema(description = "发布状态(0-未发布 1已发布 2已撤回)")
private Integer sendStatus;
private Integer releaseStatus;
@Schema(description = "发布时间")
private LocalDateTime sendTime;
@Schema(description = "撤回时间")
private LocalDateTime recallTime;
@Schema(description = "创建时间")
private LocalDateTime createTime;
@Schema(description = "更新时间")
private LocalDateTime updateTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime releaseTime;
}