消息村表

这个提交包含在:
xuqm 2023-05-31 16:37:37 +08:00
父节点 f2d3ed21af
当前提交 0e0fcfb527
共有 10 个文件被更改,包括 76 次插入131 次删除

查看文件

@ -1,10 +1,8 @@
package cn.org.bjca.trust.java.imserver.common.json;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import com.google.gson.*;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@ -13,7 +11,9 @@ import java.util.List;
* Created by xuqm on 2016/6/3.
*/
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
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
*
**/
@MappedSuperclass
@EntityListeners(value = AuditingEntityListener.class)
@ -27,8 +26,8 @@ public abstract class AbstractBaseTimeEntity {
@CreatedDate
@Column(nullable = false, updatable = false)
private transient LocalDateTime createTime;
private LocalDateTime createTime;
@LastModifiedDate
@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.msg.SZYXMessage;
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 org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
@ -18,6 +19,7 @@ import java.nio.charset.StandardCharsets;
public class ImManager {
private final UserRepository userRepository = SpringUtilsAuTo.getBean(UserRepository.class);
private final MessageRepository messageRepository = SpringUtilsAuTo.getBean(MessageRepository.class);
public static ImManager getInstance() {
return ImManagerHolder.instance;
@ -70,6 +72,13 @@ public class ImManager {
} else if (topic.equals("server" + PacketType.SEND)) {
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()) {
// List<UserInfo> userInfoList = userRepository.findAllByUserIdAndAppId(szyxMessage.getToClientId(), szyxMessage.getAppId());

查看文件

@ -1,11 +1,16 @@
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 jakarta.persistence.Entity;
import jakarta.persistence.EntityListeners;
import jakarta.persistence.MappedSuperclass;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import java.util.UUID;
public abstract class PacketMessage {
@MappedSuperclass
public abstract class PacketMessage extends AbstractBaseTimeEntity {
/**
* 消息id
*/
@ -19,6 +24,10 @@ public abstract class PacketMessage {
this.packetType = packetType;
}
public PacketMessage() {
}
public String getMsgId() {
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.im.bean.PacketMessage;
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 SZYXMessage() {
super(PacketType.SEND);
}
public SZYXMessage(MsgType msgType) {
super(PacketType.SEND);
this.msgType = msgType;
@ -16,7 +25,9 @@ public class SZYXMessage extends PacketMessage {
/**
* 发送者信息
*/
@Transient
private UserInfo fromClient;
private String fromClientId;
/**
* 接收者信息
*/
@ -28,6 +39,7 @@ public class SZYXMessage extends PacketMessage {
/**
* 自定义信息(备注信息描述信息)
*/
@Column(name = "des")
private String describe;
/**
* 是不是群消息
@ -45,81 +57,12 @@ public class SZYXMessage extends PacketMessage {
* 消息类型
*/
private MsgType msgType;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "text_id", referencedColumnName = "_id")
private SZYXTextMessage textMessage;
public UserInfo getFromClient() {
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(){
public SZYXMessage copy() {
SZYXMessage szyxMessage = new SZYXMessage(this.msgType);
szyxMessage.setMsgId(this.getMsgId());
szyxMessage.setPacketType(this.getPacketType());
@ -135,6 +78,12 @@ public class SZYXMessage extends PacketMessage {
szyxMessage.setGroup(this.isGroup());
szyxMessage.setStatus(this.getStatus());
szyxMessage.setGroupID(this.getGroupID());
szyxMessage.setFromClientId(this.getFromClient().getUserId());
SZYXTextMessage tm = new SZYXTextMessage();
tm.setText(this.getTextMessage().getText());
szyxMessage.setTextMessage(tm);
return szyxMessage;
}

查看文件

@ -1,17 +1,11 @@
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;
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;
import cn.org.bjca.trust.java.imserver.entitys.Message;
import cn.org.bjca.trust.java.imserver.entitys.UserInfo;
import cn.org.bjca.trust.java.imserver.im.msg.msg.SZYXMessage;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface MessageRepository extends JpaRepository<Message,Long> {
public interface MessageRepository extends JpaRepository<SZYXMessage, Long> {
}