package foundation.user;
|
|
import foundation.capacity.ActorTarget;
|
import foundation.capacity.sight.Sight;
|
import foundation.json.IJSONProvider;
|
import foundation.json.IJSONWriter;
|
import foundation.org.Employee;
|
import foundation.org.Position;
|
import foundation.token.IOnlineUser;
|
import foundation.token.IUser;
|
import foundation.variant.provider.DataEvent;
|
|
public class OnlineUser extends IOnlineUser implements IJSONProvider {
|
|
private String onlineCode;
|
private User user;
|
|
public OnlineUser(String onlineCode, IUser user) {
|
this.onlineCode = onlineCode;
|
this.user = (User)user;
|
}
|
|
public static OnlineUser getInstance() {
|
IOnlineUser one = localInstance.get();
|
|
if (one == null) {
|
return null;
|
}
|
|
OnlineUser onlineUser = (OnlineUser)one;
|
return onlineUser;
|
}
|
|
public void collectActors() throws Exception {
|
user.loadHierarchyAndCapacitys();
|
}
|
|
public ActorTarget getCurrentActor() throws Exception {
|
return user.getCurrentActor(onlineCode);
|
}
|
|
public ActorTarget changeCurrentCapacity(String actorId) throws Exception {
|
return user.changeCurrentActor(onlineCode, actorId);
|
}
|
|
public Sight getCurrentSight() throws Exception {
|
return user.getCurrentSight(onlineCode);
|
}
|
|
public String getPassword() {
|
return user.getPassword();
|
}
|
|
public void chagnePassword(String newPass) throws Exception {
|
user.chagnePassword(newPass);
|
}
|
|
public String getOnlineCode() {
|
return onlineCode;
|
}
|
|
public User getUser() {
|
return user;
|
}
|
|
@Override
|
public boolean isAdmin() {
|
return user.isAdmin();
|
}
|
|
@Override
|
public String getId() {
|
return user.getId();
|
}
|
|
@Override
|
public String getCode() {
|
return user.getCode();
|
}
|
|
@Override
|
public String getName() {
|
return user.getName();
|
}
|
|
@Override
|
public String getOrgId() {
|
return user.getOrgId();
|
}
|
|
@Override
|
public String getPositionId() throws Exception {
|
Position position = user.getPosition(onlineCode);
|
|
if (position == null) {
|
return null;
|
}
|
|
return position.getId();
|
}
|
|
@Override
|
public String getActorId() throws Exception {
|
ActorTarget actor = user.getCurrentActor(onlineCode);
|
|
if (actor == null) {
|
return null;
|
}
|
|
return actor.getActorId();
|
}
|
|
@Override
|
public String getPositionField() throws Exception {
|
Position position = user.getPosition(onlineCode);
|
|
if (position == null) {
|
return null;
|
}
|
|
return position.getLevelField();
|
}
|
|
public Position getCurrentPosition() {
|
return user.getCurrentPosition();
|
}
|
|
@Override
|
public String getAccountId() throws Exception {
|
ActorTarget actorTarget = user.getCurrentActor(onlineCode);
|
|
if (actorTarget == null) {
|
return null;
|
}
|
|
return actorTarget.getTargetId();
|
}
|
|
@Override
|
public String getCompanyId() throws Exception {
|
ActorTarget actorTarget = user.getCurrentActor(onlineCode);
|
|
if (actorTarget == null) {
|
return null;
|
}
|
|
return actorTarget.getCompanyId();
|
}
|
|
@Override
|
public String getBUId() throws Exception {
|
ActorTarget actorTarget = user.getCurrentActor(onlineCode);
|
|
if (actorTarget == null) {
|
return null;
|
}
|
|
return actorTarget.getBuId();
|
}
|
|
@Override
|
public boolean isOrgFrozen() {
|
boolean result = user.isOrgFrozen();
|
return result;
|
}
|
|
@Override
|
public boolean isAnymous() {
|
return user.isAnymous();
|
}
|
|
@Override
|
public boolean isLimitActive() {
|
return user.isLimitActive();
|
}
|
|
@Override
|
public String getEmployeeId() {
|
Employee employee = user.getCurrentEmployee();
|
if (employee == null) {
|
return null;
|
}
|
return employee.getId();
|
}
|
|
@Override
|
public String getEmployeeName() {
|
Employee employee = user.getCurrentEmployee();
|
|
if (employee == null) {
|
return null;
|
}
|
return employee.getName();
|
}
|
|
@Override
|
public Object getVariantValue(DataEvent dataEvent, String variantName) {
|
return user.getVariantValue(dataEvent, variantName);
|
}
|
|
@Override
|
public void writeJSON(IJSONWriter writer) {
|
writer.beginObject();
|
|
//1. user write
|
user.writeJSONBody(writer);
|
|
//2. online user write
|
writeJSONBody(writer);
|
|
writer.endObject();
|
}
|
|
private void writeJSONBody(IJSONWriter writer) {
|
try {
|
ActorTarget actor = user.getCurrentActor(onlineCode);
|
if (actor != null) {
|
writer.beginObject("currentActor");
|
actor.writeJSONBody(writer);
|
writer.endObject();
|
}
|
else {
|
writer.writeNull("currentCapacity");
|
}
|
|
Employee employee = user.getCurrentEmployee();
|
if (employee != null) {
|
writer.beginObject("employee");
|
employee.writeJSONBody(writer);
|
writer.endObject();
|
}
|
else {
|
writer.writeNull("employee");
|
}
|
|
|
|
writer.write("position_level_field", getPositionField());
|
}
|
catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
}
|