消息村表
这个提交包含在:
父节点
f2d3ed21af
当前提交
0e0fcfb527
@ -1,10 +1,8 @@
|
|||||||
package cn.org.bjca.trust.java.imserver.common.json;
|
package cn.org.bjca.trust.java.imserver.common.json;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.*;
|
||||||
import com.google.gson.JsonArray;
|
|
||||||
import com.google.gson.JsonElement;
|
|
||||||
import com.google.gson.JsonParser;
|
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -13,7 +11,9 @@ import java.util.List;
|
|||||||
* Created by xuqm on 2016/6/3.
|
* Created by xuqm on 2016/6/3.
|
||||||
*/
|
*/
|
||||||
public class GsonImplHelp extends Json {
|
public class GsonImplHelp extends Json {
|
||||||
private final Gson gson = new Gson();
|
private final Gson gson = new GsonBuilder()
|
||||||
|
.setPrettyPrinting()
|
||||||
|
.registerTypeAdapter(LocalDateTime.class, new LocalDateAdapter()).create();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toJson(Object src) {
|
public String toJson(Object src) {
|
||||||
|
|||||||
@ -0,0 +1,18 @@
|
|||||||
|
package cn.org.bjca.trust.java.imserver.common.json;
|
||||||
|
|
||||||
|
import com.google.gson.JsonElement;
|
||||||
|
import com.google.gson.JsonPrimitive;
|
||||||
|
import com.google.gson.JsonSerializationContext;
|
||||||
|
import com.google.gson.JsonSerializer;
|
||||||
|
|
||||||
|
import java.lang.reflect.Type;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
|
||||||
|
public class LocalDateAdapter implements JsonSerializer<LocalDateTime> {
|
||||||
|
@Override
|
||||||
|
public JsonElement serialize(LocalDateTime localDateTime, Type type, JsonSerializationContext jsonSerializationContext) {
|
||||||
|
return new JsonPrimitive(localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@ -14,7 +14,6 @@ import java.time.LocalDateTime;
|
|||||||
* 自动更新创建时间和更新时间
|
* 自动更新创建时间和更新时间
|
||||||
*
|
*
|
||||||
* @author peter
|
* @author peter
|
||||||
*
|
|
||||||
**/
|
**/
|
||||||
@MappedSuperclass
|
@MappedSuperclass
|
||||||
@EntityListeners(value = AuditingEntityListener.class)
|
@EntityListeners(value = AuditingEntityListener.class)
|
||||||
@ -27,8 +26,8 @@ public abstract class AbstractBaseTimeEntity {
|
|||||||
|
|
||||||
@CreatedDate
|
@CreatedDate
|
||||||
@Column(nullable = false, updatable = false)
|
@Column(nullable = false, updatable = false)
|
||||||
private transient LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
@LastModifiedDate
|
@LastModifiedDate
|
||||||
@Column()
|
@Column()
|
||||||
private transient LocalDateTime updateTime;
|
private LocalDateTime updateTime;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,17 +0,0 @@
|
|||||||
package cn.org.bjca.trust.java.imserver.entitys;
|
|
||||||
|
|
||||||
import cn.org.bjca.trust.java.imserver.entitys.message.TextMessage;
|
|
||||||
import jakarta.persistence.Entity;
|
|
||||||
import jakarta.persistence.JoinColumn;
|
|
||||||
import jakarta.persistence.OneToOne;
|
|
||||||
import jakarta.persistence.Table;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Entity
|
|
||||||
@Data
|
|
||||||
public class Message extends AbstractBaseTimeEntity{
|
|
||||||
private String type;
|
|
||||||
@OneToOne
|
|
||||||
@JoinColumn(name="text_id",referencedColumnName="_id")
|
|
||||||
private TextMessage textMessage;
|
|
||||||
}
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
package cn.org.bjca.trust.java.imserver.entitys.message;
|
|
||||||
|
|
||||||
import cn.org.bjca.trust.java.imserver.entitys.AbstractBaseTimeEntity;
|
|
||||||
import cn.org.bjca.trust.java.imserver.entitys.Message;
|
|
||||||
import jakarta.persistence.Entity;
|
|
||||||
import jakarta.persistence.OneToOne;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
@Entity
|
|
||||||
@Data
|
|
||||||
public class TextMessage extends AbstractBaseTimeEntity {
|
|
||||||
private String text;
|
|
||||||
@OneToOne(mappedBy="textMessage")
|
|
||||||
private Message message;
|
|
||||||
}
|
|
||||||
@ -9,6 +9,7 @@ import cn.org.bjca.trust.java.imserver.im.msg.ConnectMessage;
|
|||||||
import cn.org.bjca.trust.java.imserver.im.msg.ConnectedMessage;
|
import cn.org.bjca.trust.java.imserver.im.msg.ConnectedMessage;
|
||||||
import cn.org.bjca.trust.java.imserver.im.msg.msg.SZYXMessage;
|
import cn.org.bjca.trust.java.imserver.im.msg.msg.SZYXMessage;
|
||||||
import cn.org.bjca.trust.java.imserver.im.msg.msg.SendAckMessage;
|
import cn.org.bjca.trust.java.imserver.im.msg.msg.SendAckMessage;
|
||||||
|
import cn.org.bjca.trust.java.imserver.repository.MessageRepository;
|
||||||
import cn.org.bjca.trust.java.imserver.repository.UserRepository;
|
import cn.org.bjca.trust.java.imserver.repository.UserRepository;
|
||||||
import org.eclipse.paho.client.mqttv3.*;
|
import org.eclipse.paho.client.mqttv3.*;
|
||||||
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
|
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
|
||||||
@ -18,6 +19,7 @@ import java.nio.charset.StandardCharsets;
|
|||||||
public class ImManager {
|
public class ImManager {
|
||||||
|
|
||||||
private final UserRepository userRepository = SpringUtilsAuTo.getBean(UserRepository.class);
|
private final UserRepository userRepository = SpringUtilsAuTo.getBean(UserRepository.class);
|
||||||
|
private final MessageRepository messageRepository = SpringUtilsAuTo.getBean(MessageRepository.class);
|
||||||
|
|
||||||
public static ImManager getInstance() {
|
public static ImManager getInstance() {
|
||||||
return ImManagerHolder.instance;
|
return ImManagerHolder.instance;
|
||||||
@ -70,6 +72,13 @@ public class ImManager {
|
|||||||
} else if (topic.equals("server" + PacketType.SEND)) {
|
} else if (topic.equals("server" + PacketType.SEND)) {
|
||||||
SZYXMessage szyxMessage = GsonImplHelp.get().toObject(msg, SZYXMessage.class);
|
SZYXMessage szyxMessage = GsonImplHelp.get().toObject(msg, SZYXMessage.class);
|
||||||
|
|
||||||
|
szyxMessage.setFromClientId(szyxMessage.getFromClient().getUserId());
|
||||||
|
try {
|
||||||
|
messageRepository.save(szyxMessage.copy());
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("--------------" + e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
if (!szyxMessage.isGroup()) {
|
if (!szyxMessage.isGroup()) {
|
||||||
// List<UserInfo> userInfoList = userRepository.findAllByUserIdAndAppId(szyxMessage.getToClientId(), szyxMessage.getAppId());
|
// List<UserInfo> userInfoList = userRepository.findAllByUserIdAndAppId(szyxMessage.getToClientId(), szyxMessage.getAppId());
|
||||||
|
|
||||||
|
|||||||
@ -1,11 +1,16 @@
|
|||||||
package cn.org.bjca.trust.java.imserver.im.bean;
|
package cn.org.bjca.trust.java.imserver.im.bean;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.org.bjca.trust.java.imserver.entitys.AbstractBaseTimeEntity;
|
||||||
import cn.org.bjca.trust.java.imserver.enums.PacketType;
|
import cn.org.bjca.trust.java.imserver.enums.PacketType;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.EntityListeners;
|
||||||
|
import jakarta.persistence.MappedSuperclass;
|
||||||
|
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
@MappedSuperclass
|
||||||
public abstract class PacketMessage {
|
public abstract class PacketMessage extends AbstractBaseTimeEntity {
|
||||||
/**
|
/**
|
||||||
* 消息id
|
* 消息id
|
||||||
*/
|
*/
|
||||||
@ -19,6 +24,10 @@ public abstract class PacketMessage {
|
|||||||
this.packetType = packetType;
|
this.packetType = packetType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PacketMessage() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public String getMsgId() {
|
public String getMsgId() {
|
||||||
return msgId;
|
return msgId;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,8 +6,17 @@ import cn.org.bjca.trust.java.imserver.enums.MsgType;
|
|||||||
import cn.org.bjca.trust.java.imserver.enums.PacketType;
|
import cn.org.bjca.trust.java.imserver.enums.PacketType;
|
||||||
import cn.org.bjca.trust.java.imserver.im.bean.PacketMessage;
|
import cn.org.bjca.trust.java.imserver.im.bean.PacketMessage;
|
||||||
import cn.org.bjca.trust.java.imserver.im.msg.msg.message.SZYXTextMessage;
|
import cn.org.bjca.trust.java.imserver.im.msg.msg.message.SZYXTextMessage;
|
||||||
|
import jakarta.persistence.*;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Data
|
||||||
public class SZYXMessage extends PacketMessage {
|
public class SZYXMessage extends PacketMessage {
|
||||||
|
|
||||||
|
public SZYXMessage() {
|
||||||
|
super(PacketType.SEND);
|
||||||
|
}
|
||||||
|
|
||||||
public SZYXMessage(MsgType msgType) {
|
public SZYXMessage(MsgType msgType) {
|
||||||
super(PacketType.SEND);
|
super(PacketType.SEND);
|
||||||
this.msgType = msgType;
|
this.msgType = msgType;
|
||||||
@ -16,7 +25,9 @@ public class SZYXMessage extends PacketMessage {
|
|||||||
/**
|
/**
|
||||||
* 发送者信息
|
* 发送者信息
|
||||||
*/
|
*/
|
||||||
|
@Transient
|
||||||
private UserInfo fromClient;
|
private UserInfo fromClient;
|
||||||
|
private String fromClientId;
|
||||||
/**
|
/**
|
||||||
* 接收者信息
|
* 接收者信息
|
||||||
*/
|
*/
|
||||||
@ -28,6 +39,7 @@ public class SZYXMessage extends PacketMessage {
|
|||||||
/**
|
/**
|
||||||
* 自定义信息(备注信息,描述信息)
|
* 自定义信息(备注信息,描述信息)
|
||||||
*/
|
*/
|
||||||
|
@Column(name = "des")
|
||||||
private String describe;
|
private String describe;
|
||||||
/**
|
/**
|
||||||
* 是不是群消息
|
* 是不是群消息
|
||||||
@ -45,81 +57,12 @@ public class SZYXMessage extends PacketMessage {
|
|||||||
* 消息类型
|
* 消息类型
|
||||||
*/
|
*/
|
||||||
private MsgType msgType;
|
private MsgType msgType;
|
||||||
|
|
||||||
|
@OneToOne(cascade = CascadeType.ALL)
|
||||||
|
@JoinColumn(name = "text_id", referencedColumnName = "_id")
|
||||||
private SZYXTextMessage textMessage;
|
private SZYXTextMessage textMessage;
|
||||||
|
|
||||||
public UserInfo getFromClient() {
|
public SZYXMessage copy() {
|
||||||
return fromClient;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setFromClient(UserInfo fromClient) {
|
|
||||||
this.fromClient = fromClient;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getToClientId() {
|
|
||||||
return toClientId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setToClientId(String toClientId) {
|
|
||||||
this.toClientId = toClientId;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGroupID() {
|
|
||||||
return groupID;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGroupID(String groupID) {
|
|
||||||
this.groupID = groupID;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescribe() {
|
|
||||||
return describe;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescribe(String describe) {
|
|
||||||
this.describe = describe;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isGroup() {
|
|
||||||
return isGroup;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setGroup(boolean group) {
|
|
||||||
isGroup = group;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isArrive() {
|
|
||||||
return isArrive;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setArrive(boolean arrive) {
|
|
||||||
isArrive = arrive;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getStatus() {
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStatus(int status) {
|
|
||||||
this.status = status;
|
|
||||||
}
|
|
||||||
|
|
||||||
public MsgType getMsgType() {
|
|
||||||
return msgType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMsgType(MsgType msgType) {
|
|
||||||
this.msgType = msgType;
|
|
||||||
}
|
|
||||||
|
|
||||||
public SZYXTextMessage getTextMessage() {
|
|
||||||
return textMessage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTextMessage(SZYXTextMessage textMessage) {
|
|
||||||
this.textMessage = textMessage;
|
|
||||||
}
|
|
||||||
|
|
||||||
public SZYXMessage copy(){
|
|
||||||
SZYXMessage szyxMessage = new SZYXMessage(this.msgType);
|
SZYXMessage szyxMessage = new SZYXMessage(this.msgType);
|
||||||
szyxMessage.setMsgId(this.getMsgId());
|
szyxMessage.setMsgId(this.getMsgId());
|
||||||
szyxMessage.setPacketType(this.getPacketType());
|
szyxMessage.setPacketType(this.getPacketType());
|
||||||
@ -135,6 +78,12 @@ public class SZYXMessage extends PacketMessage {
|
|||||||
szyxMessage.setGroup(this.isGroup());
|
szyxMessage.setGroup(this.isGroup());
|
||||||
szyxMessage.setStatus(this.getStatus());
|
szyxMessage.setStatus(this.getStatus());
|
||||||
szyxMessage.setGroupID(this.getGroupID());
|
szyxMessage.setGroupID(this.getGroupID());
|
||||||
|
szyxMessage.setFromClientId(this.getFromClient().getUserId());
|
||||||
|
|
||||||
|
SZYXTextMessage tm = new SZYXTextMessage();
|
||||||
|
tm.setText(this.getTextMessage().getText());
|
||||||
|
|
||||||
|
szyxMessage.setTextMessage(tm);
|
||||||
return szyxMessage;
|
return szyxMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,17 +1,11 @@
|
|||||||
package cn.org.bjca.trust.java.imserver.im.msg.msg.message;
|
package cn.org.bjca.trust.java.imserver.im.msg.msg.message;
|
||||||
|
|
||||||
public class SZYXTextMessage {
|
import cn.org.bjca.trust.java.imserver.entitys.AbstractBaseTimeEntity;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Data
|
||||||
|
public class SZYXTextMessage extends AbstractBaseTimeEntity {
|
||||||
private String text;
|
private String text;
|
||||||
|
|
||||||
public SZYXTextMessage(String text) {
|
|
||||||
this.text = text;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getText() {
|
|
||||||
return text;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setText(String text) {
|
|
||||||
this.text = text;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,11 +1,10 @@
|
|||||||
package cn.org.bjca.trust.java.imserver.repository;
|
package cn.org.bjca.trust.java.imserver.repository;
|
||||||
|
|
||||||
import cn.org.bjca.trust.java.imserver.entitys.Message;
|
import cn.org.bjca.trust.java.imserver.im.msg.msg.SZYXMessage;
|
||||||
import cn.org.bjca.trust.java.imserver.entitys.UserInfo;
|
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public interface MessageRepository extends JpaRepository<Message,Long> {
|
public interface MessageRepository extends JpaRepository<SZYXMessage, Long> {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户