diff --git a/src/main/java/cn/org/bjca/trust/java/imserver/common/json/LocalDateAdapter.java b/src/main/java/cn/org/bjca/trust/java/imserver/common/json/LocalDateAdapter.java index 1ac5972..166b2d6 100644 --- a/src/main/java/cn/org/bjca/trust/java/imserver/common/json/LocalDateAdapter.java +++ b/src/main/java/cn/org/bjca/trust/java/imserver/common/json/LocalDateAdapter.java @@ -7,12 +7,12 @@ import com.google.gson.JsonSerializer; import java.lang.reflect.Type; import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; +import java.time.ZoneOffset; public class LocalDateAdapter implements JsonSerializer { @Override public JsonElement serialize(LocalDateTime localDateTime, Type type, JsonSerializationContext jsonSerializationContext) { - return new JsonPrimitive(localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + return new JsonPrimitive(localDateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli()); } } diff --git a/src/main/java/cn/org/bjca/trust/java/imserver/entitys/DeviceEntity.java b/src/main/java/cn/org/bjca/trust/java/imserver/entitys/DeviceEntity.java index 6d2ee44..1b62676 100644 --- a/src/main/java/cn/org/bjca/trust/java/imserver/entitys/DeviceEntity.java +++ b/src/main/java/cn/org/bjca/trust/java/imserver/entitys/DeviceEntity.java @@ -1,9 +1,13 @@ package cn.org.bjca.trust.java.imserver.entitys; +import jakarta.persistence.Entity; +import lombok.Data; import org.springframework.lang.NonNull; -public class DeviceEntity { +@Entity +@Data +public class DeviceEntity extends AbstractBaseTimeEntity { private int _uid; private String deviceId; // 厂商 MANUFACTURER @@ -22,100 +26,4 @@ public class DeviceEntity { private String supported64BitAbis; // SUPPORTED_ABIS private String supportedAbis; - - public void set_uid(int _uid) { - this._uid = _uid; - } - - public int get_uid() { - return _uid; - } - - public String getDeviceId() { - return deviceId; - } - - public void setDeviceId(String deviceId) { - this.deviceId = deviceId; - } - - public String getManufacturer() { - return manufacturer; - } - - public void setManufacturer(String manufacturer) { - this.manufacturer = manufacturer; - } - - public String getBrand() { - return brand; - } - - public void setBrand(String brand) { - this.brand = brand; - } - - public String getModel() { - return model; - } - - public void setModel(String model) { - this.model = model; - } - - public String getCpuAbi() { - return cpuAbi; - } - - public void setCpuAbi(String cpuAbi) { - this.cpuAbi = cpuAbi; - } - - public String getFingerprint() { - return fingerprint; - } - - public void setFingerprint(String fingerprint) { - this.fingerprint = fingerprint; - } - - public String getSupported32BitAbis() { - return supported32BitAbis; - } - - public void setSupported32BitAbis(String supported32BitAbis) { - this.supported32BitAbis = supported32BitAbis; - } - - public String getSupported64BitAbis() { - return supported64BitAbis; - } - - public void setSupported64BitAbis(String supported64BitAbis) { - this.supported64BitAbis = supported64BitAbis; - } - - public String getSupportedAbis() { - return supportedAbis; - } - - public void setSupportedAbis(String supportedAbis) { - this.supportedAbis = supportedAbis; - } - - @NonNull - @Override - public String toString() { - return "DeviceEntity{" + - "deviceId='" + deviceId + '\'' + - ", manufacturer='" + manufacturer + '\'' + - ", brand='" + brand + '\'' + - ", model='" + model + '\'' + - ", cpuAbi='" + cpuAbi + '\'' + - ", fingerprint='" + fingerprint + '\'' + - ", supported32BitAbis='" + supported32BitAbis + '\'' + - ", supported64BitAbis='" + supported64BitAbis + '\'' + - ", supportedAbis='" + supportedAbis + '\'' + - '}'; - } } diff --git a/src/main/java/cn/org/bjca/trust/java/imserver/im/ImManager.java b/src/main/java/cn/org/bjca/trust/java/imserver/im/ImManager.java index 9a6d926..72d2b9e 100644 --- a/src/main/java/cn/org/bjca/trust/java/imserver/im/ImManager.java +++ b/src/main/java/cn/org/bjca/trust/java/imserver/im/ImManager.java @@ -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.ConnectRepository; import cn.org.bjca.trust.java.imserver.repository.MessageRepository; import cn.org.bjca.trust.java.imserver.repository.UserRepository; import org.eclipse.paho.client.mqttv3.*; @@ -20,6 +21,7 @@ public class ImManager { private final UserRepository userRepository = SpringUtilsAuTo.getBean(UserRepository.class); private final MessageRepository messageRepository = SpringUtilsAuTo.getBean(MessageRepository.class); + private final ConnectRepository connectRepository = SpringUtilsAuTo.getBean(ConnectRepository.class); public static ImManager getInstance() { return ImManagerHolder.instance; @@ -125,6 +127,11 @@ public class ImManager { private void sendConnectedMsg(ConnectMessage connectMessage) { + try { + connectRepository.save(connectMessage.copy()); + } catch (Exception ignored) { + + } ConnectedMessage message = new ConnectedMessage(); message.setStatus(200); message.setAppId(connectMessage.getAppId()); diff --git a/src/main/java/cn/org/bjca/trust/java/imserver/im/msg/ConnectMessage.java b/src/main/java/cn/org/bjca/trust/java/imserver/im/msg/ConnectMessage.java index c094f75..040e1e8 100644 --- a/src/main/java/cn/org/bjca/trust/java/imserver/im/msg/ConnectMessage.java +++ b/src/main/java/cn/org/bjca/trust/java/imserver/im/msg/ConnectMessage.java @@ -4,11 +4,21 @@ package cn.org.bjca.trust.java.imserver.im.msg; import cn.org.bjca.trust.java.imserver.entitys.DeviceEntity; import cn.org.bjca.trust.java.imserver.enums.PacketType; import cn.org.bjca.trust.java.imserver.im.bean.PacketMessage; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.OneToOne; +import lombok.Data; +@Entity +@Data public class ConnectMessage extends PacketMessage { public ConnectMessage() { super(PacketType.CONNECT); } + + @OneToOne(cascade = CascadeType.ALL) + @JoinColumn(name = "device_id", referencedColumnName = "_id") private DeviceEntity device; public ConnectMessage(DeviceEntity device) { @@ -16,11 +26,27 @@ public class ConnectMessage extends PacketMessage { this.device = device; } - public DeviceEntity getDevice() { - return device; - } + public ConnectMessage copy() { + ConnectMessage connectMessage = new ConnectMessage(); + connectMessage.setMsgId(this.getMsgId()); + connectMessage.setPacketType(this.getPacketType()); + connectMessage.setTimestamp(this.getTimestamp()); + connectMessage.setUserName(this.getUserName()); + connectMessage.setAppId(this.getAppId()); + DeviceEntity deviceEntity = new DeviceEntity(); - public void setDevice(DeviceEntity device) { - this.device = device; + deviceEntity.setDeviceId(this.getDevice().getDeviceId()); + deviceEntity.set_uid(this.getDevice().get_uid()); + deviceEntity.setModel(this.getDevice().getModel()); + deviceEntity.setBrand(this.getDevice().getBrand()); + deviceEntity.setCpuAbi(this.getDevice().getCpuAbi()); + deviceEntity.setFingerprint(this.getDevice().getFingerprint()); + deviceEntity.setManufacturer(this.getDevice().getManufacturer()); + deviceEntity.setSupportedAbis(this.getDevice().getSupportedAbis()); + deviceEntity.setSupported32BitAbis(this.getDevice().getSupported32BitAbis()); + deviceEntity.setSupported64BitAbis(this.getDevice().getSupported64BitAbis()); + + connectMessage.setDevice(deviceEntity); + return connectMessage; } } diff --git a/src/main/java/cn/org/bjca/trust/java/imserver/im/msg/msg/ConnectMessage.java b/src/main/java/cn/org/bjca/trust/java/imserver/im/msg/msg/ConnectMessage.java deleted file mode 100644 index 8008b74..0000000 --- a/src/main/java/cn/org/bjca/trust/java/imserver/im/msg/msg/ConnectMessage.java +++ /dev/null @@ -1,26 +0,0 @@ -package cn.org.bjca.trust.java.imserver.im.msg.msg; - - -import cn.org.bjca.trust.java.imserver.entitys.DeviceEntity; -import cn.org.bjca.trust.java.imserver.enums.PacketType; -import cn.org.bjca.trust.java.imserver.im.bean.PacketMessage; - -public class ConnectMessage extends PacketMessage { - public ConnectMessage() { - super(PacketType.CONNECT); - } - private DeviceEntity device; - - public ConnectMessage(DeviceEntity device) { - super(PacketType.CONNECT); - this.device = device; - } - - public DeviceEntity getDevice() { - return device; - } - - public void setDevice(DeviceEntity device) { - this.device = device; - } -} diff --git a/src/main/java/cn/org/bjca/trust/java/imserver/im/msg/msg/ConnectedMessage.java b/src/main/java/cn/org/bjca/trust/java/imserver/im/msg/msg/ConnectedMessage.java deleted file mode 100644 index 0784e8a..0000000 --- a/src/main/java/cn/org/bjca/trust/java/imserver/im/msg/msg/ConnectedMessage.java +++ /dev/null @@ -1,30 +0,0 @@ -package cn.org.bjca.trust.java.imserver.im.msg.msg; - - -import cn.org.bjca.trust.java.imserver.enums.PacketType; -import cn.org.bjca.trust.java.imserver.im.bean.PacketMessage; - -public class ConnectedMessage extends PacketMessage { - public ConnectedMessage() { - super(PacketType.CONNECTED); - } - - private int status; - private String msg; - - public int getStatus() { - return status; - } - - public void setStatus(int status) { - this.status = status; - } - - public String getMsg() { - return msg; - } - - public void setMsg(String msg) { - this.msg = msg; - } -} diff --git a/src/main/java/cn/org/bjca/trust/java/imserver/repository/ConnectRepository.java b/src/main/java/cn/org/bjca/trust/java/imserver/repository/ConnectRepository.java new file mode 100644 index 0000000..434a5aa --- /dev/null +++ b/src/main/java/cn/org/bjca/trust/java/imserver/repository/ConnectRepository.java @@ -0,0 +1,13 @@ +package cn.org.bjca.trust.java.imserver.repository; + +import cn.org.bjca.trust.java.imserver.entitys.UserInfo; +import cn.org.bjca.trust.java.imserver.im.msg.ConnectMessage; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +public interface ConnectRepository extends JpaRepository { + +}