消息村表
这个提交包含在:
父节点
f2d3ed21af
当前提交
0e0fcfb527
@ -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> {
|
||||
|
||||
}
|
||||
|
||||
正在加载...
在新工单中引用
屏蔽一个用户