i4way-service-ifl/src/main/java/kr/co/i4way/genesys/cfgserver/ConfigAgentLogin.java

247 lines
7.1 KiB
Java

package kr.co.i4way.genesys.cfgserver;
import java.util.Collection;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.genesyslab.platform.applicationblocks.com.ConfigException;
import com.genesyslab.platform.applicationblocks.com.IConfService;
import com.genesyslab.platform.applicationblocks.com.objects.CfgAgentLogin;
import com.genesyslab.platform.applicationblocks.com.objects.CfgAgentLoginInfo;
import com.genesyslab.platform.applicationblocks.com.objects.CfgPerson;
import com.genesyslab.platform.applicationblocks.com.queries.CfgAgentLoginQuery;
import com.genesyslab.platform.applicationblocks.com.queries.CfgPersonQuery;
import com.genesyslab.platform.commons.collections.KeyValueCollection;
import com.genesyslab.platform.commons.collections.KeyValuePair;
import com.genesyslab.platform.configuration.protocol.types.CfgObjectState;
public class ConfigAgentLogin {
private final Logger logger = LoggerFactory.getLogger(this.getClass().getSimpleName());
public ConfigAgentLogin() {
}
/**
* employee_id에 해당하는 Person에 Assign된 AgentLogin정보를 조회한다.
* @param service
* @param tenant_dbid
* @param employee_id
* @return
*/
public Collection<CfgAgentLoginInfo> getAgentLoginInfo(final IConfService service, int tenant_dbid, String employee_id){
CfgPerson tmpCfgPerson = null;
Collection<CfgAgentLoginInfo> rtnAgentLoginInfo = null;
CfgPersonQuery personquery = new CfgPersonQuery();
personquery.setTenantDbid(tenant_dbid);
personquery.setEmployeeId(employee_id);
try {
tmpCfgPerson = service.retrieveObject(CfgPerson.class, personquery);
if(tmpCfgPerson != null) {
rtnAgentLoginInfo = tmpCfgPerson.getAgentInfo().getAgentLogins();
}
}catch (ConfigException e) {
e.printStackTrace();
}
return rtnAgentLoginInfo;
}
/**
* AgentLogin을 조회한다.(multi)
* @param service
* @param tenant_dbid
* @param switch_dbid
* @param assignable
* @return
* @throws ConfigException
* @throws InterruptedException
*/
public Collection<CfgAgentLogin> getAgentLogins(
final IConfService service, int tenant_dbid, int switch_dbid, String assignable)
throws ConfigException, InterruptedException {
// Read configuration objects:
CfgAgentLoginQuery agentloginquery = new CfgAgentLoginQuery();
agentloginquery.setTenantDbid(tenant_dbid);
agentloginquery.setSwitchDbid(switch_dbid);
if(assignable.equals("yes")) {
agentloginquery.setNoPersonDbid(2);
}
Collection<CfgAgentLogin> agentlogin = null;
agentlogin = service.retrieveMultipleObjects(CfgAgentLogin.class,
agentloginquery);
return agentlogin;
}
/**
* AgentLogin을 조회한다.
* @param service
* @param tenant_dbid
* @param switch_dbid
* @param login_code
* @return CfgAgentLogin
* @throws ConfigException
* @throws InterruptedException
*/
public CfgAgentLogin getAgentLogin(
final IConfService service, int tenant_dbid, int switch_dbid, String login_code
)
throws ConfigException, InterruptedException {
// Read configuration objects:
CfgAgentLogin agentlogin = null;
CfgAgentLoginQuery agentloginquery = new CfgAgentLoginQuery();
agentloginquery.setTenantDbid(tenant_dbid);
agentloginquery.setSwitchDbid(switch_dbid);
agentloginquery.setLoginCode(login_code);
agentlogin = service.retrieveObject(CfgAgentLogin.class, agentloginquery);
return agentlogin;
}
/**
* AgentLogin을 조회한다.
* @param service
* @param tenant_dbid
* @param switch_dbid
* @param agentLogin_dbid
* @return CfgAgentLogin
* @throws ConfigException
* @throws InterruptedException
*/
public CfgAgentLogin getAgentLogin(
final IConfService service,
int tenant_dbid,
int switch_dbid,
int agentLogin_dbid
)
throws ConfigException, InterruptedException {
// Read configuration objects:
CfgAgentLogin agentlogin = null;
CfgAgentLoginQuery agentloginquery = new CfgAgentLoginQuery();
agentloginquery.setTenantDbid(tenant_dbid);
agentloginquery.setSwitchDbid(switch_dbid);
agentloginquery.setDbid(agentLogin_dbid);
agentlogin = service.retrieveObject(CfgAgentLogin.class, agentloginquery);
return agentlogin;
}
/**
* AgentLogin의 Assign여부를 확인한다.
* @param loginDBID
* @param service
* @return true : Assign 가능, false : 이미 Assign중.
* @throws ConfigException
* @throws InterruptedException
*/
public boolean checkAssignYn(IConfService service,
int tenant_dbid,
int switch_dbid,
String login_code
)
throws ConfigException, InterruptedException {
boolean rtnval = false;
String warpuptm = "";
CfgAgentLoginQuery loginquery = new CfgAgentLoginQuery();
loginquery.setTenantDbid(tenant_dbid);
loginquery.setSwitchDbid(switch_dbid);
loginquery.setLoginCode(login_code);
loginquery.setNoPersonDbid(2);
CfgAgentLogin agentlogin = null;
agentlogin = service.retrieveObject(CfgAgentLogin.class,loginquery);
if(agentlogin != null){
KeyValueCollection appOptions = agentlogin.getUserProperties();
for(Object selectionObj : appOptions){
KeyValuePair sectionKvp = (KeyValuePair) selectionObj;
for (Object recordObj : sectionKvp.getTKVValue()) {
KeyValuePair recordKvp = (KeyValuePair) recordObj;
if(recordKvp.getStringKey().equals("wrap-up-time")){
warpuptm = recordKvp.getStringValue();
//logger.info("wrap-up-time=" + warpuptm);
}
}
}
if(warpuptm.equals("")){
rtnval = true;
}else{
rtnval = false;
}
}
return rtnval;
}
/**
* AgentLogin을 생성한다.
* @param service
* @param tenant_dbid
* @param switch_dbid
* @param login_code
* @param switch_folder_dbid
* @return
* @throws ConfigException
* @throws InterruptedException
*/
public CfgAgentLogin createAgentLogin(
final IConfService service,
int tenant_dbid,
int switch_dbid,
String login_code
)
throws ConfigException, InterruptedException {
// Read configuration objects:
CfgAgentLogin agentlogin = new CfgAgentLogin(service);
agentlogin.setTenantDBID(tenant_dbid);
agentlogin.setSwitchDBID(switch_dbid);
agentlogin.setLoginCode(login_code);
agentlogin.setSwitchSpecificType(1);
agentlogin.save();
return agentlogin;
}
/**
* AgentLogin을 삭제한다.
* @param service
* @param tenant_dbid
* @param switch_dbid
* @param login_code
* @return
* @throws ConfigException
* @throws InterruptedException
*/
public boolean deleteAgentLogins(
final IConfService service,
int tenant_dbid,
int switch_dbid,
String login_code
)
throws ConfigException, InterruptedException {
// Read configuration objects:
CfgAgentLogin agentlogin = null;
boolean rtnbool = false;
try{
CfgAgentLoginQuery agentloginquery = new CfgAgentLoginQuery();
agentloginquery.setTenantDbid(tenant_dbid);
agentloginquery.setSwitchDbid(switch_dbid);
agentloginquery.setLoginCode(login_code);
agentlogin = service.retrieveObject(CfgAgentLogin.class,agentloginquery);
agentlogin.delete();
rtnbool = true;
}catch(Exception e){
rtnbool = false;
}
return rtnbool;
}
}