package com.hehenian.biz.component.loan.impl; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.hehenian.biz.common.loan.dataobject.CertificateDo; import com.hehenian.biz.common.loan.dataobject.LoanCheckedDo; import com.hehenian.biz.common.loan.dataobject.LoanDo; import com.hehenian.biz.common.loan.dataobject.LoanModifyLogDo; import com.hehenian.biz.common.loan.dataobject.LoanPersonDo; import com.hehenian.biz.common.loan.dataobject.LoanProductDo; import com.hehenian.biz.common.loan.dataobject.LoanRelationDo; import com.hehenian.biz.common.loan.dataobject.LoanRepaymentDo; import com.hehenian.biz.common.loan.dataobject.LoanRepaymentFeeDo; import com.hehenian.biz.common.loan.dataobject.LoanUserBankDo; import com.hehenian.biz.common.loan.dataobject.PropertyDo; import com.hehenian.biz.common.system.dataobject.SettDetailDo; import com.hehenian.biz.common.util.CalculateUtils; import com.hehenian.biz.component.loan.IManagerLoanComponent; import com.hehenian.biz.dal.loan.ILoanCheckedDao; import com.hehenian.biz.dal.loan.ILoanModifyLogDao; import com.hehenian.biz.dal.loan.IManagerLoanDao; import com.hehenian.biz.dal.loan.IManagerLoanProductDao; import com.hehenian.biz.dal.loan.IManagerLoanRepaymentDao; import com.hehenian.biz.dal.loan.IManagerLoanRepaymentFeeDao; /** * @author zhengyfmf */ @Component("managerLoanComponent") public class ManagerLoanComponentImpl implements IManagerLoanComponent{ @Autowired private IManagerLoanDao managerLoanDao; @Autowired private IManagerLoanProductDao managerLoanProductDao ; @Autowired private IManagerLoanRepaymentDao managerLoanRepaymentDao; @Autowired private IManagerLoanRepaymentFeeDao managerLoanRepaymentFeeDao; @Autowired private ILoanModifyLogDao loanModifyLogDao; @Autowired private ILoanCheckedDao loanCheckedDao ; @Override public LoanDo getLoanByLoanId(Long loanId) { return managerLoanDao.getLoanByLoanId(loanId); } @Override public int updateLoanStatus(LoanDo loanDo) { return managerLoanDao.updateLoanStatus(loanDo); } @Override public boolean updateLoanStatusByMap(List<Map<String,Object>> paramList){ if(paramList != null){ for(int i=0;i<paramList.size();i++){ managerLoanDao.updateLoanStatusByMap(paramList.get(i)); } } return true ; } @Override public List<Map<String,Object>> getLoanPage(Map<String, Object> param) { return managerLoanDao.getLoanPage(param); } @Override public LoanPersonDo getLoanDetailByLoanId(Long loanId) { return managerLoanDao.getLoanDetailByLoanId(loanId); } @Override public List<LoanProductDo> listLoanProduct(Map<String, Object> param) { return managerLoanProductDao.queryLoanProductList(param); } @Override public List<Map<String, Object>> getLabelExportData(Map<String, Object> param) { return managerLoanDao.getLabelExportData(param); } @Override public boolean initRepayPlan(LoanDo loanDo, List<SettDetailDo> list) { managerLoanDao.updateLoanForRepayPlan(loanDo); if(list != null && list.size()>0){ for(SettDetailDo sdd:list){ LoanRepaymentDo lrd = new LoanRepaymentDo(); lrd.setLoanId(loanDo.getLoanId()); lrd.setOrderCode(loanDo.getOrderCode()); lrd.setRepayPeriod(sdd.getPeriod()); lrd.setStillPrincipal(sdd.getPrincipal()); lrd.setStillInterest(sdd.getInterest()); lrd.setPrincipalBalance(sdd.getRemainingPrincipal()); lrd.setStillRepayAll(CalculateUtils.add(sdd.getPrincipal(), sdd.getInterest())); lrd.setRepayDate(sdd.getRepayDate()); managerLoanRepaymentDao.addLoanRepayment(lrd); if(sdd.getRfList() != null && sdd.getRfList().size()>0){ for(LoanRepaymentFeeDo lrfd:sdd.getRfList()){ lrfd.setLoanId(loanDo.getLoanId()); lrfd.setOrderCode(loanDo.getOrderCode()); lrfd.setRepaymentId(lrd.getRepaymentId()); lrfd.setRepayType(0); managerLoanRepaymentFeeDao.addLoanRepaymentFee(lrfd); } } } }else{ return false; } return true; } @Override public LoanPersonDo getLoanInfoForSbByLoanId(Long loanId) { return managerLoanDao.getLoanInfoForSbByLoanId(loanId); } @Override public LoanPersonDo getLoanInfoForFkByOrderCode(String orderCode) { return managerLoanDao.getLoanInfoForFkByOrderCode(orderCode); } @Override public Map<String, Object> getBankAccountForHF(String idNo) { return managerLoanDao.getBankAccountForHF(idNo); } @Override public int updateLoan(LoanDo loanDo) { Long loanId = loanDo.getLoanId(); LoanDo oldLoanDo = managerLoanDao.getLoanByLoanId(loanId); int result = managerLoanDao.update(loanDo); //记录修改日志, 贷款金额 Long updateBy = loanDo.getUpdateBy(); LoanModifyLogDo modifyLog = new LoanModifyLogDo(); modifyLog.setLoanId(loanId); modifyLog.setModifyBy(updateBy); modifyLog.setNewVal(loanDo.getApplyAmount().toString()); modifyLog.setOldVal(oldLoanDo.getApplyAmount().toString()); modifyLog.setField("ApplyAmount"); this.addLoanModifyLog(modifyLog); //借款期限 LoanModifyLogDo modifyLog1 = new LoanModifyLogDo(); modifyLog1.setLoanId(loanId); modifyLog1.setModifyBy(updateBy); modifyLog1.setNewVal(loanDo.getLoanPeriod().toString()); modifyLog1.setOldVal(oldLoanDo.getLoanPeriod().toString()); modifyLog1.setField("LoanPeriod"); this.addLoanModifyLog(modifyLog1); //借款利率 LoanModifyLogDo modifyLog2 = new LoanModifyLogDo(); modifyLog2.setLoanId(loanId); modifyLog2.setModifyBy(updateBy); modifyLog2.setNewVal(loanDo.getAnnualRate().toString()); modifyLog2.setOldVal(oldLoanDo.getAnnualRate().toString()); modifyLog2.setField("AnnualRate"); this.addLoanModifyLog(modifyLog2); //还款方式 LoanModifyLogDo modifyLog3 = new LoanModifyLogDo(); modifyLog3.setLoanId(loanId); modifyLog3.setModifyBy(updateBy); modifyLog3.setNewVal(loanDo.getSchemeId().toString()); modifyLog3.setOldVal(oldLoanDo.getSchemeId().toString()); modifyLog3.setField("SchemeId"); this.addLoanModifyLog(modifyLog3); //用途 LoanModifyLogDo modifyLog4 = new LoanModifyLogDo(); modifyLog4.setLoanId(loanId); modifyLog4.setModifyBy(updateBy); modifyLog4.setNewVal(loanDo.getLoanUsage()); modifyLog4.setOldVal(oldLoanDo.getLoanUsage()); modifyLog4.setField("LoanUsage"); this.addLoanModifyLog(modifyLog4); //标题 LoanModifyLogDo modifyLog5 = new LoanModifyLogDo(); modifyLog5.setLoanId(loanId); modifyLog5.setModifyBy(updateBy); modifyLog5.setNewVal(loanDo.getLoanTitle()); modifyLog5.setOldVal(oldLoanDo.getLoanTitle()); modifyLog5.setField("LoanTitle"); this.addLoanModifyLog(modifyLog5); //状态 LoanModifyLogDo modifyLog6 = new LoanModifyLogDo(); modifyLog6.setLoanId(loanId); modifyLog6.setModifyBy(updateBy); modifyLog6.setNewVal(loanDo.getLoanStatus().toString()); modifyLog6.setOldVal(oldLoanDo.getLoanStatus().toString()); modifyLog6.setField("LoanStatus"); this.addLoanModifyLog(modifyLog6); return result; } @Override public LoanPersonDo getLoanPersonDetail(Long loanId) { return managerLoanDao.getLoanPersonByLoanId(loanId); } @Override public Map<String, Object> getBankAccountForTL(String idNo) { return managerLoanDao.getBankAccountForTL(idNo); } @Override public List<Map<String,Object>> getSbNameForHF(String orderCode) { return managerLoanDao.getSbNameForHF(orderCode); } @Override public List<Map<String,Object>> getSbNameForTL(String orderCode) { return managerLoanDao.getSbNameForTL(orderCode); } @Override public List<LoanDo> getLoanListPage(Map<String, Object> param) { List<LoanDo> list = managerLoanDao.getLoanListPage(param); return list; } /******************** 申请日志 api*********************************/ @Override public LoanDo getDetailLoanByLoanId(Long loanId) { return managerLoanDao.getDetailById(loanId); } /** * 新增修改日志 * @param modifyLog * @return */ @Override public int addLoanModifyLog(LoanModifyLogDo modifyLog){ return loanModifyLogDao.addLoanModifyLog(modifyLog); } @Override public List<LoanUserBankDo> getTbcInfo(Long userId) { return managerLoanDao.getTbcInfo(userId); } @Override public List<LoanUserBankDo> getTdbcInfo(Long userId) { return managerLoanDao.getTdbcInfo(userId); } /******************** end 申请日志 api*********************************/ @Override public List<LoanCheckedDo> getLoanCheckedByLoanId(Map<String, Object> param) { return loanCheckedDao.getByLoanIdAndChecked(param); } @Override public int updateLoanChecked(LoanCheckedDo loanCheckedDo) { return loanCheckedDao.updateLoanCheckedById(loanCheckedDo); } @Override public int createLoanChecked(LoanCheckedDo loanCheckedDo) { return loanCheckedDao.addLoanChecked(loanCheckedDo); } @Override public LoanDo getLoanforUpdate(Map<String, Object> param) { return managerLoanDao.getLoanforUpdate(param); } /** * 获取渠道列表 */ @Override public List<Map<String, Object>> getChannelTypeList() { return managerLoanDao.getChannelTypeList(); } @Override public LoanDo getFullLoanDo(Long loanId) { LoanDo fullLoanDo = managerLoanDao.getLoanByLoanId(loanId); LoanPersonDo loanPersonDo=managerLoanDao.getLoanPersonByLoanId(loanId); List<LoanRelationDo> loanRelationDoList=managerLoanDao.getLoanRelationDoList(loanId); List<CertificateDo> certificateDoList=managerLoanDao.getCertificateDoList(loanId); PropertyDo propertyDo=managerLoanDao.getPropertyDo(loanId); loanPersonDo.setLoanRelationDoList(loanRelationDoList); loanPersonDo.setCertificateDoList(certificateDoList); loanPersonDo.setPropertyDo(propertyDo); fullLoanDo.setLoanPersonDo(loanPersonDo); return fullLoanDo; } @Override public List<LoanRelationDo> getLoanRelationDoList(Long loanId) { return managerLoanDao.getLoanRelationDoList(loanId); } }