/** * @Project: hehenian-biz-service * @Package com.hehenian.biz.service.loan.impl * @Title: LoanDetailServiceImpl.java * @Description: TODO * @author: liuzgmf * @date 2014年12月10日 下午7:03:07 * @Copyright: HEHENIAN Co.,Ltd. All rights reserved. * @version V1.0 */ package com.hehenian.biz.service.loan.impl; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.hehenian.biz.common.account.dataobject.BankCardDo; import com.hehenian.biz.common.base.dataobject.NPageDo; import com.hehenian.biz.common.base.result.IResult; import com.hehenian.biz.common.base.result.ResultSupport; import com.hehenian.biz.common.exception.BusinessException; import com.hehenian.biz.common.loan.ILoanDetailService; import com.hehenian.biz.common.loan.dataobject.LoanDetailDo; import com.hehenian.biz.common.loan.dataobject.LoanDetailDo.LoanStatus; import com.hehenian.biz.common.trade.dataobject.BorrowDo; import com.hehenian.biz.component.account.IBankCardComponent; import com.hehenian.biz.component.account.IUserComponent; import com.hehenian.biz.component.loan.ILoanDetailComponent; import com.hehenian.biz.component.trade.IBorrowComponent; /** * * @author: liuzgmf * @date 2014年12月10日 下午7:03:07 */ @Service("loanDetailService") public class LoanDetailServiceImpl implements ILoanDetailService { private final Logger logger = Logger.getLogger(this.getClass()); @Autowired private ILoanDetailComponent loanDetailComponent; @Autowired private IUserComponent userComponent; @Autowired private IBankCardComponent bankCardComponent; @Autowired private IBorrowComponent borrowComponent; @Override public IResult<?> addLoanDetail(LoanDetailDo loanDetailDo) { IResult<String> result = new ResultSupport<String>(true); try { loanDetailDo.setLoanStatus(LoanStatus.PROCESSING); loanDetailComponent.addLoanDetail(loanDetailDo); } catch (BusinessException e) { result.setSuccess(false); result.setErrorMessage(e.getMessage()); logger.error(e.getMessage() + ",输入参数:" + loanDetailDo.toString()); } catch (Exception e) { result.setSuccess(false); result.setErrorMessage("操作失败,请稍后再试!"); logger.error(e.getMessage(), e); } return result; } @Override public IResult<?> changeLoanStatus(Long loanId, LoanStatus loanStatus) { IResult<String> result = new ResultSupport<String>(true); try { loanDetailComponent.changeLoanStatus(loanId, loanStatus); } catch (Exception e) { result.setSuccess(false); result.setErrorMessage("操作失败,请稍后再试!"); logger.error(e.getMessage(), e); } return result; } @Override public IResult<?> updateLoanDetail(List<LoanDetailDo> loanDetailDoList) { IResult<String> result = new ResultSupport<String>(true); try { loanDetailComponent.updateLoanDetail(loanDetailDoList); } catch (BusinessException e) { result.setSuccess(false); result.setErrorMessage(e.getMessage()); logger.error(e.getMessage() + ",输入参数:" + loanDetailDoList.toString()); } catch (Exception e) { result.setSuccess(false); result.setErrorMessage("操作失败,请稍后再试!"); logger.error(e.getMessage(), e); } return result; } @Override public NPageDo<LoanDetailDo> queryLoanDetails(Map<String, Object> searchItems) { NPageDo<LoanDetailDo> pageDo = new NPageDo<LoanDetailDo>(); try { long count = loanDetailComponent.countLoanDetails(searchItems); pageDo.setTotalCount(count); if (count == 0) { return pageDo; } List<LoanDetailDo> loanDetailDoList = loanDetailComponent.queryLoanDetails(searchItems); pageDo.setModelList(loanDetailDoList); List<Long> userIdList = new ArrayList<Long>(); for (LoanDetailDo loanDetailDo : loanDetailDoList) { if (loanDetailDo.getUserId() != null) { userIdList.add(loanDetailDo.getUserId()); } } // 查询银行卡信息 List<BankCardDo> bankCardDoList = bankCardComponent.queryByUserIds(userIdList); for (LoanDetailDo loanDetailDo : loanDetailDoList) { for (BankCardDo bankCardDo : bankCardDoList) { if (loanDetailDo.getUserId() != null && loanDetailDo.getUserId().longValue() == bankCardDo.getUserId().longValue()) { loanDetailDo.setBankCardDo(bankCardDo); break; } } } return pageDo; } catch (Exception e) { logger.error(e.getMessage(), e); pageDo.setTotalCount(0l); return pageDo; } } @Override public LoanDetailDo getByIdNo(String idNo) { LoanDetailDo loanDetailDo = loanDetailComponent.getByIdNo(idNo); if(!(null==loanDetailDo)){ if (loanDetailDo.getLoanStatus().equals(LoanStatus.CHECKED)) { BorrowDo borrowDo = borrowComponent.getByIdNo(idNo); if (borrowDo != null && (borrowDo.getBorrowStatus().intValue() == 4 || borrowDo.getBorrowStatus().intValue() == 5)) { loanDetailDo.setLoanStatus(LoanStatus.LOANS); loanDetailDo.setBorrowDo(borrowDo); } } } return loanDetailDo; } @Override public LoanDetailDo getByIdNoGroup(String idNo) { LoanDetailDo loanDetailDo = loanDetailComponent.getByIdNoGroup(idNo); if(!(null==loanDetailDo)){ if (loanDetailDo.getLoanStatus().equals(LoanStatus.CHECKED)) { BorrowDo borrowDo = borrowComponent.getByIdNo(idNo); if (borrowDo != null && (borrowDo.getBorrowStatus().intValue() == 4 || borrowDo.getBorrowStatus().intValue() == 5)) { loanDetailDo.setLoanStatus(LoanStatus.LOANS); loanDetailDo.setBorrowDo(borrowDo); } } } return loanDetailDo; } @Override public List<LoanDetailDo> queryByLoanStatus(LoanStatus loanStatus) { return loanDetailComponent.queryByLoanStatus(loanStatus); } }