package com.hehenian.biz.component.trade.impl; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang.time.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import com.hehenian.biz.common.exception.BusinessException; import com.hehenian.biz.common.trade.dataobject.InvestRepaymentDo; import com.hehenian.biz.component.trade.IInvestRepaymentComponent; import com.hehenian.biz.dal.trade.IInvestRepaymentDao; /** * @author zhangyunhua * @version 1.0 * @since 1.0 */ @Component("investRepaymentComponent") public class InvestRepaymentComponentImpl implements IInvestRepaymentComponent { @Autowired private IInvestRepaymentDao investRepaymentDao; /** * 根据ID 查询 * * @parameter id */ public InvestRepaymentDo getById(Long id) { return investRepaymentDao.getById(id); } /** * 根据条件查询列表 */ public List<InvestRepaymentDo> selectInvestRepayment(Map<String, Object> parameterMap) { return investRepaymentDao.selectInvestRepayment(parameterMap); } /** * 更新 */ public int updateInvestRepaymentById(InvestRepaymentDo newInvestRepaymentDo) { return investRepaymentDao.updateInvestRepaymentById(newInvestRepaymentDo); } /** * 新增 */ public int addInvestRepayment(InvestRepaymentDo newInvestRepaymentDo) { return investRepaymentDao.addInvestRepayment(newInvestRepaymentDo); } /** * 删除 */ public int deleteById(int id) { return investRepaymentDao.deleteById(id); } @Override public List<InvestRepaymentDo> queryNoRepayRecordsRecently(Long userId) { Map<String, Object> searchItems = new HashMap<String, Object>(); searchItems.put("userId", userId); searchItems.put("repayStatus", 1);// 未还款 searchItems.put("beginDate", DateUtils.truncate(new Date(), Calendar.DATE)); Date endDate = DateUtils.addMonths(new Date(), 1);// 一个月后的前一天 searchItems.put("endDate", DateUtils.truncate(endDate, Calendar.DATE)); return investRepaymentDao.queryNoRepayRecordsRecently(searchItems); } @Override public Double getTotalRecivedInterest(Long userId) { Map<String, Object> searchItems = new HashMap<String, Object>(); searchItems.put("userId", userId); searchItems.put("repayStatus", 2);// 已还款 return investRepaymentDao.getTotalRecivedInterest(searchItems); } @Override public List<InvestRepaymentDo> queryByUserIdAndRepayDate(Long userId, Date beginDate, Date endDate) { Map<String, Object> searchItems = new HashMap<String, Object>(); searchItems.put("userId", userId); searchItems.put("beginDate", beginDate); searchItems.put("endDate", endDate); searchItems.put("today", DateUtils.truncate(new Date(), Calendar.DATE)); return investRepaymentDao.queryByUserIdAndRepayDate(searchItems); } /* * (no-Javadoc) <p>Title: getTotalRecived</p> <p>Description: </p> * * @param investId * * @param repaymentId * * @return * * @see * com.hehenian.biz.component.trade.IInvestRepaymentComponent#getTotalRecived * (long, long) */ @Override public List<Map<String, Object>> getTotalRecived(long investId, long repaymentId) { return investRepaymentDao.getTotalRecived(investId, repaymentId); } /* * (no-Javadoc) <p>Title: updateRecievedAmount</p> <p>Description: </p> * * @param newInvestRepaymentDo * * @return * * @see com.hehenian.biz.component.trade.IInvestRepaymentComponent# * updateRecievedAmount * (com.hehenian.biz.common.trade.dataobject.InvestRepaymentDo) */ @Override public int updateRecievedAmount(InvestRepaymentDo newInvestRepaymentDo) { return investRepaymentDao.updateRecievedAmount(newInvestRepaymentDo); } /* * (no-Javadoc) <p>Title: updateRepayStatusByPreRepay</p> <p>Description: * </p> * * @param newInvestRepaymentDo * * @return * * @see com.hehenian.biz.component.trade.IInvestRepaymentComponent# * updateRepayStatusByPreRepay * (com.hehenian.biz.common.trade.dataobject.InvestRepaymentDo) */ @Override public int updateRepayStatusByPreRepay(InvestRepaymentDo newInvestRepaymentDo) { return investRepaymentDao.updateRepayStatusByPreRepay(newInvestRepaymentDo); } @Override public int addWebPayRecord(long oldId, long userId) { return investRepaymentDao.addWebPayRecord(oldId, userId); } // @Override // public void updateWebPayRecordStatus(Long repaymentId) { // investRepaymentDao.updateWebPayRecordStatus(repaymentId); // } @Override public void updateRepayStatus(int repayStatus, int isDebt, Long id) { Map<String, Object> updateItems = new HashMap<String, Object>(); updateItems.put("repayStatus", repayStatus); updateItems.put("isDebt", isDebt); updateItems.put("id", id); int count = investRepaymentDao.updateRepayStatus(updateItems); if (count != 1) { throw new BusinessException("修改回款[" + id + "]记录失败!"); } } /* * (no-Javadoc) <p>Title: selectOverDueInvestRepayList</p> <p>Description: * </p> * * @param currentDate * * @return * * @see com.hehenian.biz.component.trade.IInvestRepaymentComponent# * selectOverDueInvestRepayList(java.util.Date) */ @Override public List<InvestRepaymentDo> selectOverDueInvestRepayList(Date currentDate) { return investRepaymentDao.selectOverDueInvestRepayList(currentDate); } @Override public Double getRecivedPrincipal(Long userId) { return investRepaymentDao.getRecivedPrincipal(userId); } /* * (no-Javadoc) <p>Title: getInvestSuccessAmount</p> <p>Description: </p> * * @param investIdList * * @return * * @see com.hehenian.biz.component.trade.IInvestRepaymentComponent# * getInvestSuccessAmount(java.util.List) */ @Override public List<Map<String, Object>> getInvestSuccessAmount(List<Long> investIdList) { return investRepaymentDao.getInvestSuccessAmount(investIdList); } /* * (no-Javadoc) <p>Title: selectInvestInfoByRepayId</p> <p>Description: </p> * * @param repaymentId * * @return * * @see com.hehenian.biz.component.trade.IInvestRepaymentComponent# * selectInvestInfoByRepayId(java.lang.Long) */ @Override public List<InvestRepaymentDo> selectInvestInfoByRepayId(Long repaymentId) { return investRepaymentDao.selectInvestInfoByRepayId(repaymentId); } /* * (no-Javadoc) <p>Title: selectPreRepayByBorrowId</p> <p>Description: </p> * * @param currentRepayId * * @param borrowId * * @return * * @see com.hehenian.biz.component.trade.IInvestRepaymentComponent# * selectPreRepayByBorrowId(long, long) */ @Override public List<InvestRepaymentDo> selectPreRepayByBorrowId(long currentRepayId, long borrowId) { return investRepaymentDao.selectPreRepayByBorrowId(currentRepayId, borrowId); } /* * (no-Javadoc) <p>Title: selectCompInvestByRepayId</p> <p>Description: </p> * * @param id * * @return * * @see com.hehenian.biz.component.trade.IInvestRepaymentComponent# * selectCompInvestByRepayId(java.lang.Long) */ @Override public List<InvestRepaymentDo> selectCompInvestByRepayId(Long id) { return investRepaymentDao.selectCompInvestByRepayId(id); } /* * (no-Javadoc) <p>Title: getInvestSuccessAmountByUserId</p> <p>Description: * </p> * * @param id * * @return * * @see com.hehenian.biz.component.trade.IInvestRepaymentComponent# * getInvestSuccessAmountByUserId(java.lang.Long) */ @Override public Map<String, Object> getInvestSuccessAmountByUserId(Long id) { return investRepaymentDao.getInvestSuccessAmountByUserId(id); } @Override public InvestRepaymentDo getNoRepayRecordRecently(Long investId, Long userId) { return investRepaymentDao.getNoRepayRecordRecently(investId, userId); } @Override public List<InvestRepaymentDo> queryByIds(List<Long> idList) { return investRepaymentDao.queryByIds(idList); } /* * (no-Javadoc) <p>Title: updateId</p> <p>Description: </p> * * @param investRepayList * * @param ids * * @see * com.hehenian.biz.component.trade.IInvestRepaymentComponent#updateId(java * .util.List, long[]) */ @Override public void updateId(List<InvestRepaymentDo> investRepayList) { for (InvestRepaymentDo ir : investRepayList) { ir.setParentId(ir.getId()); investRepaymentDao.deleteById(ir.getParentId()); investRepaymentDao.addInvestRepayment(ir); // 自动增长 } } }