package chat.user;
|
|
import chat.server.call.IJSONWriter;
|
import chat.server.call.IJsonProvider;
|
import chat.server.im.DataPool;
|
import frame.object.data.Entity;
|
|
public class Client implements IJsonProvider {
|
|
private String id;
|
private String clientId;
|
private int platform;
|
private String code;
|
private String userId;
|
private User user;
|
private Session session;
|
|
public Client(String clientId) {
|
this.clientId = clientId;
|
}
|
|
public void load(DataPool dataPool) throws Exception {
|
id = dataPool.getString("clientId");
|
platform = dataPool.getInteger("platform", 0);
|
try {
|
code = dataPool.getString("code");
|
} catch (Exception e) {
|
code = "oneLogin";
|
}
|
|
}
|
|
public void load(Entity entity) {
|
id = entity.getString("id");
|
clientId = entity.getString("id");
|
platform = entity.getInteger("platform", 0);
|
code = entity.getString("code");
|
userId = entity.getString("userId");
|
}
|
|
public void pushTo(Entity entity) throws Exception {
|
entity.set("id", id);
|
entity.set("clientId", clientId);
|
entity.set("platform", platform);
|
entity.set("code", code);
|
entity.set("userId", userId);
|
}
|
|
@Override
|
public void writeJSONObject(IJSONWriter writer) {
|
writer.beginObject();
|
writeJSONData(writer);
|
writer.endObject();
|
}
|
|
@Override
|
public void writeJSONData(IJSONWriter writer) {
|
Token token = session.getToken();
|
|
writer.write("token", new String(token.getFullValue()));
|
writer.write("userId", user.getId());
|
writer.write("userName", user.getName());
|
writer.write("portrait", user.getPortrait());
|
writer.write("register", user.isStranger());
|
}
|
|
public String getId() {
|
return id;
|
}
|
|
public int getPlatform() {
|
return platform;
|
}
|
|
public String getCode() {
|
return code;
|
}
|
|
public User getUser() {
|
return user;
|
}
|
|
public String getUserName() {
|
return user.getName();
|
}
|
|
public String getUserId() {
|
return userId;
|
}
|
|
public void setUser(User user) {
|
this.user = user;
|
|
if (user == null) {
|
userId = null;
|
return;
|
}
|
|
userId = user.getId();
|
|
user.addClient(this);
|
}
|
|
public void setUserId(String userId) {
|
this.userId = userId;
|
}
|
|
public void createSession() throws Exception {
|
session = SessionStore.getOrCreate(this);
|
}
|
|
public Session getSession() {
|
return session;
|
}
|
|
@Override
|
public int hashCode() {
|
if (id == null) {
|
return 0;
|
}
|
|
return id.hashCode();
|
}
|
|
}
|