- 创建信息记录文档,包含项目管理要求、产物范围、Git仓库、制品仓库信息 - 添加服务器部署信息,包括应用服务器、MySQL/Redis服务器、Jenkins服务配置 - 记录邮件服务、DNS/HTTPS证书配置及安全备注 - 创建API联调文档,包含线上入口、ID约定、初始化管理员账号信息 - 添加统一响应格式、常见错误码、鉴权规则说明 - 提供核心接口清单,涵盖tenant-service、im-service、push-service等服务 - 补充curl示例,包含运营平台登录、IM登录、会话管理等操作示例 - 实现会话控制器,支持置顶、免打扰、标记已读、草稿等功能 - 添加全局异常处理器,统一处理业务异常和参数校验错误 - 创建IM管理控制器,提供用户管理、好友请求、黑名单等管理功能
68 行
2.1 KiB
Java
68 行
2.1 KiB
Java
package com.xuqm.push.entity;
|
|
|
|
import jakarta.persistence.Column;
|
|
import jakarta.persistence.Entity;
|
|
import jakarta.persistence.EnumType;
|
|
import jakarta.persistence.Enumerated;
|
|
import jakarta.persistence.Id;
|
|
import jakarta.persistence.Table;
|
|
import jakarta.persistence.UniqueConstraint;
|
|
import java.time.LocalDateTime;
|
|
|
|
@Entity
|
|
@Table(name = "push_device_token",
|
|
uniqueConstraints = @UniqueConstraint(columnNames = {"appId", "userId", "vendor"}))
|
|
public class DeviceTokenEntity {
|
|
|
|
public enum Vendor { HUAWEI, XIAOMI, OPPO, VIVO, HONOR, APNS, FCM }
|
|
|
|
@Id
|
|
private String id;
|
|
|
|
@Column(nullable = false, length = 64)
|
|
private String appId;
|
|
|
|
@Column(nullable = false, length = 128)
|
|
private String userId;
|
|
|
|
@Enumerated(EnumType.STRING)
|
|
@Column(nullable = false, length = 16)
|
|
private Vendor vendor;
|
|
|
|
@Column(nullable = false, length = 512)
|
|
private String token;
|
|
|
|
@Column(nullable = false)
|
|
private boolean receivePush = true;
|
|
|
|
@Column(nullable = false)
|
|
private LocalDateTime createdAt;
|
|
|
|
@Column(nullable = false)
|
|
private LocalDateTime updatedAt;
|
|
|
|
public String getId() { return id; }
|
|
public void setId(String id) { this.id = id; }
|
|
|
|
public String getAppId() { return appId; }
|
|
public void setAppId(String appId) { this.appId = appId; }
|
|
|
|
public String getUserId() { return userId; }
|
|
public void setUserId(String userId) { this.userId = userId; }
|
|
|
|
public Vendor getVendor() { return vendor; }
|
|
public void setVendor(Vendor vendor) { this.vendor = vendor; }
|
|
|
|
public String getToken() { return token; }
|
|
public void setToken(String token) { this.token = token; }
|
|
|
|
public boolean isReceivePush() { return receivePush; }
|
|
public void setReceivePush(boolean receivePush) { this.receivePush = receivePush; }
|
|
|
|
public LocalDateTime getCreatedAt() { return createdAt; }
|
|
public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; }
|
|
|
|
public LocalDateTime getUpdatedAt() { return updatedAt; }
|
|
public void setUpdatedAt(LocalDateTime updatedAt) { this.updatedAt = updatedAt; }
|
|
}
|