package com.hehenian.biz.component.trade;
/**
* @author zhangyunhua
* @version 1.0
* @since 1.0
*/
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
import com.hehenian.biz.common.trade.dataobject.InvestRepaymentDo;
public interface IInvestRepaymentComponent {
/**
* 根据ID 查询
*
* @parameter id
*/
public InvestRepaymentDo getById(Long id);
/**
* 根据条件查询列表
*/
public List<InvestRepaymentDo> selectInvestRepayment(Map<String, Object> parameterMap);
/**
* 更新
*/
public int updateInvestRepaymentById(InvestRepaymentDo newInvestRepaymentDo);
/**
* 新增
*/
public int addInvestRepayment(InvestRepaymentDo newInvestRepaymentDo);
/**
* 删除
*/
public int deleteById(int id);
/**
* 查询最近一个月投资收款记录
*
* @param userId
* @return
* @author: liuzgmf
* @date: 2014年9月23日下午3:12:20
*/
List<InvestRepaymentDo> queryNoRepayRecordsRecently(Long userId);
/**
* 查询用户总的已收利息
*
* @param userId
* @return
* @author: liuzgmf
* @date: 2014年9月23日下午3:13:27
*/
Double getTotalRecivedInterest(Long userId);
/**
* 根据投资id, 还款ID 汇总投资回款 应收本金,应收罚金,应收利息,应收管理费
*
* @param investId
* 投资id
* @param repaymentId
* 还款ID
* @return
* @author: zhangyunhmf
* @date: 2014年9月24日下午6:38:28
*/
List<Map<String, Object>> getTotalRecived(@Param("investId") long investId, @Param("repaymentId") long repaymentId);
/**
* 还款后,修改已收金额和状态
*
* @param newInvestRepaymentDo
* @return
* @author: zhangyunhmf
* @date: 2014年9月24日下午6:59:17
*/
int updateRecievedAmount(InvestRepaymentDo newInvestRepaymentDo);
/**
* 提前还款批量更新 回款表的状态, 如果之前状态=1 更新为10, 提前还款
* newInvestRepaymentDo的repayId=当期的还款ID, 大于当期还款id的hasInterest = 0
*
* @param newInvestRepaymentDo
* @return
* @author: zhangyunhmf
* @date: 2014年9月29日下午6:33:55
*/
int updateRepayStatusByPreRepay(InvestRepaymentDo newInvestRepaymentDo);
/**
* 根据用户ID,还款日期查询收款(汇款)记录
*
* @param userId
* @param beginDate
* @param endDate
* @return
* @author: liuzgmf
* @date: 2014年9月26日下午6:07:55
*/
public List<InvestRepaymentDo> queryByUserIdAndRepayDate(Long userId, Date beginDate, Date endDate);
/**
* 代偿后根据原来的回款记录生成新的回款记录,新生成的记录的parentId是原记录的ID
*
* @param oldId
* 原来的回款记录ID
* @param userId
* 代偿后回款记录的OWNER 是代偿机构
* @return 新生成的记录条数
*/
public int addWebPayRecord(long oldId, long userId);
/**
* 将代偿记录状态更新成 未还款状态=1 ,根据状态=3已及repaymentId
*
* @param repaymentId
*/
// public void updateWebPayRecordStatus(Long repaymentId);
/**
* 根据回款ID修改还款状态,债权转让状态
*
* @param repayStatus
* @param isDebt
* @param id
* @author: liuzgmf
* @date: 2014年10月8日下午5:05:47
*/
void updateRepayStatus(int repayStatus, int isDebt, Long id);
/**
* 查询逾期未回款的投资,定时任务将调用
*
* @param currentDate
* @return
* @author: zhangyunhmf
* @date: 2014年10月15日上午10:15:37
*/
public List<InvestRepaymentDo> selectOverDueInvestRepayList(Date currentDate);
/**
* 查询的用户待收本金金额
*
* @param userId
* @return
* @author: liuzgmf
* @date: 2014年10月16日下午1:29:24
*/
public Double getRecivedPrincipal(Long userId);
/**
* 获取成功投资的金额,回款等金额
*
* @param investIdList
* 投资id list
* @return
* @author: zhangyunhmf
* @date: 2014年10月20日下午2:42:51
*/
public List<Map<String, Object>> getInvestSuccessAmount(@Param("investIdList") List<Long> investIdList);
/**
* 根据还款ID查询投资,还款等信息
*
* @param repaymentId
* 还款ID
* @return
*/
public List<InvestRepaymentDo> selectInvestInfoByRepayId(Long repaymentId);
/**
* 取提前还款的投资回款记录
*
* @param currentRepayId
* 当期还款ID
* @param borrowId
* 标的ID
* @return
* @author: zhangyunhmf
* @date: 2014年9月26日下午5:46:53
*/
public List<InvestRepaymentDo> selectPreRepayByBorrowId(long currentRepayId, long borrowId);
/**
* 查询回款记录用来代偿
*
* @param id
* 还款ID
* @return
* @author: zhangyunhmf
* @date: 2014年10月11日上午8:34:29
*/
public List<InvestRepaymentDo> selectCompInvestByRepayId(Long id);
/**
* 成功投资汇总金额
*
* @param id
* @return
* @author: zhangyunhmf
* @date: 2014年10月28日下午4:48:32
*/
public Map<String, Object> getInvestSuccessAmountByUserId(Long id);
/**
* 根据投资ID,转让用户查询最近未还款汇款记录
*
* @param investId
* @param userId
* @return
* @author: liuzgmf
* @date: 2014年11月14日上午10:07:50
*/
InvestRepaymentDo getNoRepayRecordRecently(Long investId, Long userId);
/**
* 根据ID查询回款记录
*
* @param idList
* @return
* @author: liuzgmf
* @date: 2014年11月26日上午10:37:29
*/
List<InvestRepaymentDo> queryByIds(List<Long> idList);
/**
* 修复重复请求, 修改ID
*
* @param investRepayList
* @param ids
* @author: zhangyunhmf
* @date: 2014年12月3日上午8:46:36
*/
public void updateId(List<InvestRepaymentDo> investRepayList);
}