/**
*
*/
package com.ycsoft.business.service.externalImpl;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Service;
import com.ycsoft.beans.core.acct.CAcctAcctitem;
import com.ycsoft.beans.core.acct.CAcctAcctitemChange;
import com.ycsoft.beans.core.acct.CAcctAcctitemInactive;
import com.ycsoft.beans.core.acct.CAcctBank;
import com.ycsoft.beans.core.acct.CAcctPreFee;
import com.ycsoft.beans.core.bank.CBankAgree;
import com.ycsoft.beans.core.bank.CBankPay;
import com.ycsoft.business.commons.pojo.BusiParameter;
import com.ycsoft.business.dto.core.acct.AcctDto;
import com.ycsoft.business.dto.core.acct.AcctitemDto;
import com.ycsoft.business.dto.core.acct.BankReturnDto;
import com.ycsoft.business.dto.core.acct.PayDto;
import com.ycsoft.business.service.impl.AcctService;
import com.ycsoft.commons.helper.LoggerHelper;
import com.ycsoft.daos.core.JDBCException;
/**
* @author liujiaqi
*/
@Service
public class AcctServiceExternal extends ParentService implements
IAcctServiceExternal {
public void cancelVodPreFee(BusiParameter p, String transId, String userId)
throws Exception {
AcctService acctService = (AcctService) getBean(AcctService.class, p);
acctService.cancelVodPreFee(transId, userId);
}
public void cancelVodPreFee(BusiParameter p,CAcctPreFee preFee) throws Exception{
AcctService acctService = (AcctService) getBean(AcctService.class, p);
acctService.cancelVodPreFee(preFee);
}
public int saveAcctUnfreeze(BusiParameter p,
CAcctAcctitemInactive unfreezeJob) throws Exception {
AcctService acctService = (AcctService) getBean(AcctService.class, p);
return acctService.saveAcctUnfreeze(unfreezeJob);
}
public void saveDelAcctItem(BusiParameter p, String acctId,
String acctItemId,Integer doneCode) throws Exception {
AcctService acctService = (AcctService) getBean(AcctService.class, p);
acctService.saveDelAcctItem(acctId, acctItemId,doneCode);
}
public void test(BusiParameter p, String id) {
System.out.println(Thread.currentThread() + "+" + id);
}
/*
* (non-Javadoc)
*
* @see com.ycsoft.business.service.externalImpl.IAcctServiceExternal#queryAcctItemByAcctitemId(com.ycsoft.business.commons.pojo.BusiParameter,
* java.lang.String, java.lang.String)
*/
public CAcctAcctitem queryAcctItemByAcctitemId(BusiParameter p,
String acctId, String acctItemId) throws JDBCException {
AcctService acctService = (AcctService) getBean(AcctService.class, p);
return acctService.queryAcctItemByAcctitemId(acctId, acctItemId);
}
/*
* (non-Javadoc)
*
* @see com.ycsoft.business.service.externalImpl.IAcctServiceExternal#queryVodPreFees(com.ycsoft.business.commons.pojo.BusiParameter,
* java.lang.String)
*/
public List<CAcctPreFee> queryVodPreFees(BusiParameter p, String cardId)
throws Exception {
AcctService acctService = (AcctService) getBean(AcctService.class, p);
return acctService.queryVodPreFees(cardId);
}
/*
* (non-Javadoc)
*
* @see com.ycsoft.business.service.externalImpl.IAcctServiceExternal#savePrePay(com.ycsoft.business.commons.pojo.BusiParameter,
* java.util.List)
*/
public Integer savePrePay(BusiParameter p, List<PayDto> payList)
throws Exception {
AcctService acctService = (AcctService) getBean(AcctService.class, p);
acctService.savePrePay(payList);
return p.getDoneCode();
}
/*
* (non-Javadoc)
*
* @see com.ycsoft.business.service.externalImpl.IAcctServiceExternal#saveSinglePay(com.ycsoft.business.commons.pojo.BusiParameter,
* java.lang.String, java.lang.String[], java.lang.Integer[],
* com.ycsoft.beans.core.bank.CBankPay)
*/
public Integer saveSinglePay(BusiParameter p, String acctId,
String[] acctitemId, Integer[] fee, CBankPay bankPay)
throws Exception {
AcctService acctService = (AcctService) getBean(AcctService.class, p);
acctService.saveSinglePay(acctId, acctitemId, fee, bankPay);
return p.getDoneCode();
}
/*
* (non-Javadoc)
*
* @see com.ycsoft.business.service.externalImpl.IAcctServiceExternal#saveTrans(com.ycsoft.business.commons.pojo.BusiParameter,
* java.lang.String, java.lang.String, java.lang.String,
* java.lang.String, int)
*/
public void saveTrans(BusiParameter p, String sourceAcctId,
String sourceAcctItemId, String orderAcctId,
String orderAcctItemId, int fee) throws Exception {
AcctService acctService = (AcctService) getBean(AcctService.class, p);
acctService.saveTrans(sourceAcctId, sourceAcctItemId, orderAcctId,
orderAcctItemId, fee);
}
/*
* (non-Javadoc)
*
* @see com.ycsoft.business.service.externalImpl.IAcctServiceExternal#vodPreFee(com.ycsoft.business.commons.pojo.BusiParameter,
* java.lang.String, java.lang.String, java.lang.String,
* java.lang.String, java.lang.String, java.util.Date,
* java.lang.Integer, java.lang.String)
*/
public String vodPreFee(BusiParameter p, String transId, String userId,
String prodId, String progId, String progName, Date requestTime,
Integer price, String detailParams) throws Exception {
AcctService acctService = (AcctService) getBean(AcctService.class, p);
return acctService.vodPreFee(transId, userId, prodId, progId, progName,
requestTime, price, detailParams);
}
/*
* (non-Javadoc)
*
* @see com.ycsoft.business.service.externalImpl.IAcctServiceExternal#queryAcctByCustId(com.ycsoft.business.commons.pojo.BusiParameter,
* java.lang.String)
*/
public List<AcctDto> queryAcctByCustId(BusiParameter p, String custId)
throws Exception {
AcctService acctService = (AcctService) getBean(AcctService.class, p);
return acctService.queryAcctByCustId(custId);
}
/*
* (non-Javadoc)
*
* @see com.ycsoft.business.service.externalImpl.IAcctServiceExternal#queryBankPay(com.ycsoft.business.commons.pojo.BusiParameter,
* java.lang.String)
*/
public CBankPay queryBankPay(BusiParameter p, String banklogid)
throws Exception {
AcctService acctService = (AcctService) getBean(AcctService.class, p);
return acctService.queryBankPay(banklogid);
}
/*
* (non-Javadoc)
*
* @see com.ycsoft.business.service.externalImpl.IAcctServiceExternal#querySignBank(com.ycsoft.business.commons.pojo.BusiParameter,
* java.lang.String)
*/
public CAcctBank querySignBank(BusiParameter p, String bankPayType)
throws Exception {
AcctService acctService = (AcctService) getBean(AcctService.class, p);
return acctService.querySignBank(bankPayType);
}
/*
* (non-Javadoc)
*
* @see com.ycsoft.business.service.externalImpl.IAcctServiceExternal#saveRemoveSignBank(com.ycsoft.business.commons.pojo.BusiParameter,
* java.lang.String, java.lang.String)
*/
public void saveRemoveSignBank(BusiParameter p, String bankPayType,Date time) throws Exception {
AcctService acctService = (AcctService) getBean(AcctService.class, p);
acctService.saveRemoveSignBank(bankPayType,time);
}
/*
* (non-Javadoc)
*
* @see com.ycsoft.business.service.externalImpl.IAcctServiceExternal#saveSignBank(com.ycsoft.business.commons.pojo.BusiParameter,
* java.lang.Object, com.ycsoft.beans.core.bank.CBankAgree)
*/
public void saveSignBank(BusiParameter p, CBankAgree bankAgree)
throws Exception {
AcctService acctService = (AcctService) getBean(AcctService.class, p);
acctService.saveSignBank(bankAgree);
}
/* (non-Javadoc)
* @see com.ycsoft.business.service.externalImpl.IAcctServiceExternal#saveBankPay(com.ycsoft.business.commons.pojo.BusiParameter, com.ycsoft.beans.core.bank.CBankPay)
*/
public void saveBankPay(BusiParameter p, CBankPay bankPay) throws Exception {
AcctService acctService = (AcctService) getBean(AcctService.class, p);
acctService.saveBankPay(bankPay);
}
/**
* 支付平台网账目充值
* @param payList
* @param bankPay
* @throws Exception
*/
public void saveBankProdPay(BusiParameter p,List<PayDto> payList,CBankPay bankPay) throws Exception{
AcctService acctService = (AcctService) getBean(AcctService.class, p);
acctService.saveBankProdPay(payList, bankPay);
}
/* (non-Javadoc)
* @see com.ycsoft.business.service.externalImpl.IAcctServiceExternal#saveAdjustSpecAcctPay(com.ycsoft.business.commons.pojo.BusiParameter, java.util.List, java.lang.Integer)
*/
public void saveAdjustSpecAcctPay(BusiParameter p,
List<CAcctAcctitemChange> changeList, Integer doneCode) throws Exception {
AcctService acctService = (AcctService) getBean(AcctService.class, p);
acctService.saveAdjustSpecAcctPay(changeList, doneCode);
}
/* (non-Javadoc)
* @see com.ycsoft.business.service.externalImpl.IAcctServiceExternal#queryAcctitemToCallCenter(com.ycsoft.business.commons.pojo.BusiParameter, java.util.Map)
*/
public List<AcctitemDto> queryAcctitemToCallCenter(BusiParameter p,
Map<String, Object> params) throws Exception {
AcctService acctService = (AcctService) getBean(AcctService.class, p);
return acctService.queryAcctitemToCallCenter(params);
}
/* (non-Javadoc)
* @see com.ycsoft.business.service.externalImpl.IAcctServiceExternal#queryAcctitemToCallCenter(com.ycsoft.business.commons.pojo.BusiParameter, java.util.Map)
*/
public int saveBankPk(BusiParameter p, String bankTransSn,String acctId,String custId,String acctitemId,Date beginDate,Date endDate,int fee, String userId,String prodSn) throws Exception{
AcctService acctService = (AcctService) getBean(AcctService.class, p);
return acctService.saveBankPk(bankTransSn, acctId,custId, acctitemId, beginDate, endDate, fee,userId,prodSn);
}
public void runBankReturn(BusiParameter p,BankReturnDto r) throws Exception {
AcctService acctService = (AcctService) getBean(AcctService.class, p);
String errorinfo=null;
if("1301".equals(r.getBusi_type())&& "0000".equals(r.getIs_success())){
//扣费成功处理缴费
try{
LoggerHelper.info(this.getClass(), "银行缴费交易流水【"
+ r.getBank_trans_sn() + "|客户号"
+ r.getCust_id() + "】金额: " + r.getFee()+"|"+r.getStart_date()+r.getEnd_date());
//有事物控制
acctService.saveBankPk(r.getBank_trans_sn(), r
.getAcct_id(),r.getCust_id(), r.getAcctitem_id(), r
.getStart_date(), r.getEnd_date(), r.getFee(),
r.getUser_id(), r.getProd_sn());
}catch(Throwable e){
LoggerHelper.error(this.getClass(), "银行缴费交易流水:"+ r.getBank_trans_sn() , e);
errorinfo=e.getMessage();
if(errorinfo==null){
errorinfo="失败";
}
}
}
//有事物控制
//如果上面代码执行成功,下面这段代码执行失败发生底层错误,怎么办?
//解决办法:把1301充值执行成功的修改回盘记录标记的功能分离到acctService.saveBankPk中执行,这样这段代码发生底层错误页没关系
acctService.runBankReturn(r,errorinfo);
}
}