@@ -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<LocalDateTime> { | |||
@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()); | |||
} | |||
} | |||
@@ -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 + '\'' + | |||
'}'; | |||
} | |||
} |
@@ -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()); | |||
@@ -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; | |||
} | |||
} |
@@ -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; | |||
} | |||
} |
@@ -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; | |||
} | |||
} |
@@ -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<ConnectMessage, Long> { | |||
} |