package com.hehenian.biz.dal.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 IInvestRepaymentDao {
/**
* 根据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(long id);
/**
* 查询最近一个月投资收款记录
*
* @param searchItems
* @return
* @author: liuzgmf
* @date: 2014年9月23日下午3:20:31
*/
List<InvestRepaymentDo> queryNoRepayRecordsRecently(Map<String, Object> searchItems);
/**
* 查询用户总的已收利息
*
* @param searchItems
* @return
* @author: liuzgmf
* @date: 2014年9月23日下午3:20:36
*/
Double getTotalRecivedInterest(Map<String, Object> searchItems);
/**
* 根据投资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 searchItems
* @return
* @author: liuzgmf
* @date: 2014年9月26日下午6:09:32
*/
public List<InvestRepaymentDo> queryByUserIdAndRepayDate(Map<String, Object> searchItems);
/**
* 代偿后根据原来的回款记录生成新的回款记录,新生成的记录的parentId是原记录的ID
*
* @param oldId
* 原来的回款记录ID
* @param userId
* 代偿后回款记录的OWNER 是代偿机构
* @return 新生成的记录条数
*/
public int addWebPayRecord(@Param("oldId") long oldId, @Param("userId") long userId);
/**
* 将代偿记录状态更新成 未还款状态=1 ,根据状态=3已及repaymentId
*
* @param repaymentId
*/
public void updateWebPayRecordStatus(Long repaymentId);
/**
* 根据投资ID查询未债权转让的投资收款记录
*
* @param investId
* @param userId
* @return
* @author: liuzgmf
* @date: 2014年10月8日下午5:02:24
*/
List<InvestRepaymentDo> queryByInvestIdAndOwner(@Param("investId") Long investId, @Param("owner") Long owner);
/**
* @param searchItems
* @author: liuzgmf
* @date: 2014年10月8日下午5:09:01
*/
Integer updateRepayStatus(Map<String, Object> searchItems);
/**
* 查询逾期未回款的投资,定时任务将调用
*
* @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:30:18
*/
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 investIdList);
/**
* 取提前还款的投资回款记录
*
* @param currentRepayId
* 当期还款ID
* @param borrowId
* 标的ID
* @return
* @author: zhangyunhmf
* @date: 2014年9月26日下午5:46:53
*/
public List<InvestRepaymentDo> selectPreRepayByBorrowId(@Param(value = "currentRepayId") long currentRepayId,
@Param(value = "borrowId") long borrowId);
/**
* 根据还款ID查询投资,还款等信息
*
* @param repaymentId
* 还款ID
* @return
*/
public List<InvestRepaymentDo> selectInvestInfoByRepayId(Long repaymentId);
/**
* 查询回款记录用来代偿
*
* @param id
* 还款ID
* @return
* @author: zhangyunhmf
* @date: 2014年10月11日上午8:34:29
*/
public List<InvestRepaymentDo> selectCompInvestByRepayId(Long id);
/**
* 成功投资汇总金额
*
* @param id
* 用户ID
* @return
* @author: zhangyunhmf
* @date: 2014年10月28日下午4:51:16
*/
public Map<String, Object> getInvestSuccessAmountByUserId(Long userId);
/**
* 根据投资ID,转让用户查询最近未还款汇款记录
*
* @param investId
* @param userId
* @return
* @author: liuzgmf
* @date: 2014年11月14日上午10:10:09
*/
InvestRepaymentDo getNoRepayRecordRecently(@Param(value = "investId") Long investId,
@Param(value = "userId") Long userId);
/**
* 根据ID查询回款记录
*
* @param idList
* @return
* @author: liuzgmf
* @date: 2014年11月26日上午10:37:29
*/
List<InvestRepaymentDo> queryByIds(@Param(value = "idList") List<Long> idList);
}