/**
* @Project: hehenian-biz-service
* @Package com.hehenian.biz.service.loan.impl
* @Title: LoanApplyServiceImpl.java
* @Description: TODO
* @author: liuzgmf
* @date 2015年1月26日 下午4:23:11
* @Copyright: HEHENIAN Co.,Ltd. All rights reserved.
* @version V1.0
*/
package com.hehenian.biz.service.loan.impl;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hehenian.biz.common.loan.ILoanApplyService;
import com.hehenian.biz.common.loan.dataobject.JobDo;
import com.hehenian.biz.common.loan.dataobject.LoanChannelDo;
import com.hehenian.biz.common.loan.dataobject.LoanDetailDo;
import com.hehenian.biz.common.loan.dataobject.LoanDo;
import com.hehenian.biz.common.loan.dataobject.LoanDo.LoanStatus;
import com.hehenian.biz.common.loan.dataobject.LoanPersonDo;
import com.hehenian.biz.common.loan.dataobject.LoanProxyCheckDo;
import com.hehenian.biz.common.loan.dataobject.LoanRelationDo;
import com.hehenian.biz.common.trade.dataobject.BorrowDo;
import com.hehenian.biz.component.loan.ILoanComponent;
import com.hehenian.biz.component.trade.IBorrowComponent;
import com.hehenian.common.redis.SpringRedisCacheService;
/**
*
* @author: liuzgmf
* @date 2015年1月26日 下午4:23:11
*/
@Service("loanApplyService")
public class LoanApplyServiceImpl implements ILoanApplyService {
@Autowired
private ILoanComponent loanComponent;
@Autowired
private SpringRedisCacheService localCacheService;
@Autowired
private IBorrowComponent borrowComponent;
private static String cacheKeypriv="E_LOAN_ORDER_";// E贷款的缓存KEY前缀
private static int expTime= 12*60*60; //设置缓存一天的时间
@Override
public int getLoanQty() {
return loanComponent.getLoanQty();
}
/**
*
* @param oldLoanDo
* @param newLoanDo
*/
private void setIdFromCacheLoan(String cacheKey, LoanDo loanDo){
LoanDo oldLoanDo = (LoanDo)localCacheService.get(cacheKey);
loanDo.setOrderCode(oldLoanDo.getOrderCode());
//借款ID
long loanId =loanDo.getLoanId();
//处理借款人个人信息
if (loanDo.getLoanPersonDo() != null) {
LoanPersonDo loanPersonDo = loanDo.getLoanPersonDo();
LoanPersonDo oldLoanPersonDo = oldLoanDo.getLoanPersonDo();
long personId = -1;
if(oldLoanPersonDo != null){
//个人ID
personId = oldLoanPersonDo.getLoanPersonId();
loanPersonDo.setLoanPersonId(personId);
loanPersonDo.setLoanId(loanId);
}
if (loanPersonDo.getJobDo() != null) { //工作
JobDo jobDo = loanPersonDo.getJobDo();
jobDo.setLoanId(loanId);
jobDo.setLoanPersonId(personId);
if(oldLoanPersonDo.getJobDo() != null){
jobDo.setJobId(oldLoanPersonDo.getJobDo().getJobId());
}
}
//联系人
if (loanPersonDo.getLoanRelationDoList() != null && loanPersonDo.getLoanRelationDoList().size()>0) {
for(int i = 0 ; i < loanPersonDo.getLoanRelationDoList().size();i++){
LoanRelationDo relation = loanPersonDo.getLoanRelationDoList().get(i);
relation.setLoanId(loanId);
relation.setLoanPersonId(personId);
if(oldLoanPersonDo.getLoanRelationDoList() != null){
if(null != oldLoanPersonDo.getLoanRelationDoList().get(i)){
relation.setRalationId(oldLoanPersonDo.getLoanRelationDoList().get(i).getRalationId());
}
}
}
}
}
}
@Override
public Long saveLoan(LoanDo loanDo) {
// String cacheKey = null;
long result ;
if(null != loanDo.getLoanId()){
// cacheKey = cacheKeypriv+loanDo.getLoanId();
// setIdFromCacheLoan(cacheKey,loanDo);
loanComponent.updateLoanDo(loanDo);
result = loanDo.getLoanId();
}else{
result = loanComponent.saveLoan(loanDo);
}
// cacheKey = cacheKeypriv+loanDo.getLoanId();
// localCacheService.set(cacheKey, loanDo, expTime);
return result;
}
@Override
public LoanDo getByLoanId(Long loanId) {
return loanComponent.getByLoanId(loanId);
}
@Override
public List<LoanDo> queryBySourceUserId(String sourceUserId) {
return loanComponent.queryBySourceUserId(sourceUserId);
}
@Override
public Map<String, Object> getTotalInfoByPerson(LoanChannelDo loanChannelDo) {
return loanComponent.getTotalInfoByPerson(loanChannelDo);
}
@Override
public String getCmoblie(long cid){
return loanComponent.getCmoblie(cid);
}
@Override
public List<Map<String, Object>> getAreaList(Map<String,Object> paramMap){
return loanComponent.getAreaList(paramMap);
}
/**
* 根据条件查询
* @param loanDo
*/
@Override
public List<LoanDo> selectLoanList(LoanDo loanDo) {
return loanComponent.selectLoanList(loanDo);
}
/********************审核API**************************/
@Override
public LoanProxyCheckDo getProxyCheckDoById(Long id) {
return loanComponent.getProxyCheckDoById(id);
}
@Override
public List<LoanProxyCheckDo> selectLoanProxyCheck(Map<String, Object> parameterMap) {
return loanComponent.selectLoanProxyCheck(parameterMap);
}
@Override
public int updateLoanProxyCheckById(LoanProxyCheckDo newLoanProxyCheckDo) {
return loanComponent.updateLoanProxyCheckById(newLoanProxyCheckDo);
}
@Override
public int addLoanProxyCheck(LoanProxyCheckDo newLoanProxyCheckDo) {
return loanComponent.addLoanProxyCheck(newLoanProxyCheckDo);
}
/********************end 审核API**************************/
@Override
public List<Map<String, Object>> getJBCmobileDo(Map<String, String> params) {
return loanComponent.getJBCmobileDo(params);
}
@Override
public int updateHousePrice(Map<String, Object> parameterMap) {
return loanComponent.updateHousePrice( parameterMap);
}
@Override
public int saveHousePrice(Map<String, Object> parameterMap) {
return loanComponent.saveHousePrice(parameterMap);
}
@Override
public LoanDo getByIdNoGroup(String idNo) {
LoanDo loanDo =loanComponent.getByIdNoGroup(idNo);
return loanDo;
}
}