package com.hehenian.biz.facade.account;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hehenian.biz.facade.account.parameter.InParameter;
import com.hehenian.biz.facade.account.parameter.OutParameter;
@Service("accountManagerService")
public class AccountManagerServiceImpl implements IAccountManagerService {
@Autowired
private IUserManager chinaPnrUserManager; // 用户管理接口
@Autowired
private ITradeManager chinaPnrTradeManager; // 交易类接口
@Autowired
private IQueryManager chinaPnrQueryManager; // 查询类接口
/**
* 获取用户管理具体实现类
*
* @param accountType
* @return
*/
private IUserManager getUserManager(AccountType accountType) {
if (AccountType.CHINAPNR.equals(accountType)) {
return chinaPnrUserManager;
} else if (AccountType.PINGAN.equals(accountType)) {
return null;
} else {
throw new RuntimeException("未知类型!");
}
}
/**
* 获取交易具体实现类
*
* @param accountType
* @return
*/
private ITradeManager getTradeManager(AccountType accountType) {
if (AccountType.CHINAPNR.equals(accountType)) {
return chinaPnrTradeManager;
} else if (AccountType.PINGAN.equals(accountType)) {
return null;
} else {
throw new RuntimeException("未知类型!");
}
}
/**
* 获取查询具体实现类
*
* @param accountType
* @return
*/
private IQueryManager getQueryManager(AccountType accountType) {
if (AccountType.CHINAPNR.equals(accountType)) {
return chinaPnrQueryManager;
} else if (AccountType.PINGAN.equals(accountType)) {
return null;
} else {
throw new RuntimeException("未知类型!");
}
}
@Override
public OutParameter userRegister(InParameter inParameter, AccountType accountType) {
return getUserManager(accountType).userRegister(inParameter);
}
@Override
public OutParameter bgRegister(InParameter inParameter, AccountType accountType) {
return getUserManager(accountType).bgRegister(inParameter);
}
@Override
public OutParameter userBindCard(InParameter inParameter, AccountType accountType) {
return getUserManager(accountType).userBindCard(inParameter);
}
@Override
public OutParameter bgBindCard(InParameter inParameter, AccountType accountType) {
return getUserManager(accountType).bgBindCard(inParameter);
}
@Override
public OutParameter userLogin(InParameter inParameter, AccountType accountType) {
return getUserManager(accountType).userLogin(inParameter);
}
@Override
public OutParameter acctModify(InParameter inParameter, AccountType accountType) {
return getUserManager(accountType).acctModify(inParameter);
}
@Override
public OutParameter corpRegister(InParameter inParameter, AccountType accountType) {
return getUserManager(accountType).corpRegister(inParameter);
}
@Override
public OutParameter delCard(InParameter inParameter, AccountType accountType) {
return getUserManager(accountType).delCard(inParameter);
}
@Override
public OutParameter netSave(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).netSave(inParameter);
}
@Override
public OutParameter posWhSave(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).posWhSave(inParameter);
}
@Override
public OutParameter usrFreezeBg(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).usrFreezeBg(inParameter);
}
@Override
public OutParameter usrUnFreeze(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).usrUnFreeze(inParameter);
}
@Override
public OutParameter initiativeTender(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).initiativeTender(inParameter);
}
@Override
public OutParameter autoTender(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).autoTender(inParameter);
}
@Override
public OutParameter tenderCancle(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).tenderCancle(inParameter);
}
@Override
public OutParameter autoTenderPlan(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).autoTenderPlan(inParameter);
}
@Override
public OutParameter autoTenderPlanClose(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).autoTenderPlanClose(inParameter);
}
@Override
public OutParameter loans(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).loans(inParameter);
}
@Override
public OutParameter repayment(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).repayment(inParameter);
}
@Override
public OutParameter transfer(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).transfer(inParameter);
}
@Override
public OutParameter cashAudit(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).cashAudit(inParameter);
}
@Override
public OutParameter cash(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).cash(inParameter);
}
@Override
public OutParameter usrAcctPay(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).usrAcctPay(inParameter);
}
@Override
public OutParameter merCash(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).merCash(inParameter);
}
@Override
public OutParameter usrTransfer(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).usrTransfer(inParameter);
}
@Override
public OutParameter creditAssign(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).creditAssign(inParameter);
}
@Override
public OutParameter autoCreditAssign(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).autoCreditAssign(inParameter);
}
@Override
public OutParameter fssTrans(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).fssTrans(inParameter);
}
@Override
public OutParameter direcTrfAuth(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).direcTrfAuth(inParameter);
}
@Override
public OutParameter direcTrf(InParameter inParameter, AccountType accountType) {
return getTradeManager(accountType).direcTrf(inParameter);
}
@Override
public OutParameter queryBalance(InParameter inParameter, AccountType accountType) {
return getQueryManager(accountType).queryBalance(inParameter);
}
@Override
public OutParameter queryBalanceBg(InParameter inParameter, AccountType accountType) {
return getQueryManager(accountType).queryBalanceBg(inParameter);
}
@Override
public OutParameter queryAccts(InParameter inParameter, AccountType accountType) {
return getQueryManager(accountType).queryAccts(inParameter);
}
@Override
public OutParameter queryTransStat(InParameter inParameter, AccountType accountType) {
return getQueryManager(accountType).queryTransStat(inParameter);
}
@Override
public OutParameter queryTenderPlan(InParameter inParameter, AccountType accountType) {
return getQueryManager(accountType).queryTenderPlan(inParameter);
}
@Override
public OutParameter reconciliation(InParameter inParameter, AccountType accountType) {
return getQueryManager(accountType).reconciliation(inParameter);
}
@Override
public OutParameter trfReconciliation(InParameter inParameter, AccountType accountType) {
return getQueryManager(accountType).trfReconciliation(inParameter);
}
@Override
public OutParameter cashReconciliation(InParameter inParameter, AccountType accountType) {
return getQueryManager(accountType).cashReconciliation(inParameter);
}
@Override
public OutParameter queryAcctDetails(InParameter inParameter, AccountType accountType) {
return getQueryManager(accountType).queryAcctDetails(inParameter);
}
@Override
public OutParameter saveReconciliation(InParameter inParameter, AccountType accountType) {
return getQueryManager(accountType).saveReconciliation(inParameter);
}
@Override
public OutParameter queryReturnDzFee(InParameter inParameter, AccountType accountType) {
return getQueryManager(accountType).queryReturnDzFee(inParameter);
}
@Override
public OutParameter corpRegisterQuery(InParameter inParameter, AccountType accountType) {
return getQueryManager(accountType).corpRegisterQuery(inParameter);
}
@Override
public OutParameter creditAssignReconciliation(InParameter inParameter, AccountType accountType) {
return getQueryManager(accountType).creditAssignReconciliation(inParameter);
}
@Override
public OutParameter fssPurchaseReconciliation(InParameter inParameter, AccountType accountType) {
return getQueryManager(accountType).fssPurchaseReconciliation(inParameter);
}
@Override
public OutParameter fssRedeemReconciliation(InParameter inParameter, AccountType accountType) {
return getQueryManager(accountType).fssRedeemReconciliation(inParameter);
}
@Override
public OutParameter queryFss(InParameter inParameter, AccountType accountType) {
return getQueryManager(accountType).queryFss(inParameter);
}
@Override
public OutParameter queryFssAccts(InParameter inParameter, AccountType accountType) {
return getQueryManager(accountType).queryFssAccts(inParameter);
}
@Override
public OutParameter queryCardInfo(InParameter inParameter, AccountType accountType) {
return getQueryManager(accountType).queryCardInfo(inParameter);
}
}