发表于: 2017-10-29 23:01:39
1 872
今天完成的事情:
1.完成债权匹配
总共有九种情况,时间小于等于大于,金额小于等于大于,匹配规则如下
底下是部分代码
/**
* 时间完全匹配,金额小的投资拆分
*
* @param creditId
* @param beginAt
* @param endAt
* @param amount
* @return 投资拆分的集合
*/
@SuppressWarnings("deprecation")
private List<InvestSplit> getNotMatchedInvestSplitList_1(long creditId, long beginAt, long endAt,
BigDecimal amount) {
List<InvestSplit> list = new ArrayList<>();
long now = MyTimeUtil.getTodayZeroTimeMillions();
SimpleJdbcTemplate sjt = getOneSimpleJdbcTemplate();
StringBuilder sql = getNotMatchedInvestSplitListSql();
sql.append(" AND ins.amount < ? "); // 金额小
sql.append(" AND ins.begin_at <= ? ");
sql.append(" AND ins.end_at = ? "); // 时间完全匹配
sql.append(" ORDER BY ins.investor_id ASC, ins.amount ASC");
log.info("level_1 sql args is: 0 = " + creditId + ", 1 = " + now + ", 2 = " + now + ", 3 = "
+ amount + ", 4 = " + beginAt + ", 5 = " + endAt);
log.info("level_1, sql is: " + sql.toString());
list = sjt.query(sql.toString(),
ParameterizedBeanPropertyRowMapper.newInstance(InvestSplit.class), creditId, now, now,
amount, beginAt, endAt);
return list;
}
/**
* 金额完全匹配,时间等于的投资拆分
*
* @param creditId
* @param beginAt
* @param endAt
* @param amount
* @return 投资拆分的集合
*/
@SuppressWarnings("deprecation")
private List<InvestSplit> getNotMatchedInvestSplitList_0(long creditId, long beginAt, long endAt,
BigDecimal amount) {
List<InvestSplit> list = new ArrayList<>();
long now = MyTimeUtil.getTodayZeroTimeMillions();
SimpleJdbcTemplate sjt = getOneSimpleJdbcTemplate();
StringBuilder sql = getNotMatchedInvestSplitListSql();
sql.append(" AND ins.begin_at = ? ");
//金额完全匹配
sql.append(" AND ins.amount = ? ");
sql.append(" ORDER BY ins.investor_id ASC, ins.end_at DESC");
log.info("level_0 sql args is: 0 = " + creditId + ", 1 = " + now + ", 2 = " + now + ", 3 = "
+ beginAt + ", 4 = " + amount);
log.info("level_0, sql is: " + sql.toString());
list = sjt.query(sql.toString(),
ParameterizedBeanPropertyRowMapper.newInstance(InvestSplit.class), creditId, now, now,
beginAt, amount);
return list;
}
/**
* 时间不完全匹配,时间长的,金额小的投资拆分
*
* @param creditId
* @param beginAt
* @param endAt
* @param amount
* @return 投资拆分的集合
*/
@SuppressWarnings("deprecation")
private List<InvestSplit> getNotMatchedInvestSplitList_2(long creditId, long beginAt, long endAt,
BigDecimal amount) {
List<InvestSplit> list = new ArrayList<>();
long now = MyTimeUtil.getTodayZeroTimeMillions();
SimpleJdbcTemplate sjt = getOneSimpleJdbcTemplate();
StringBuilder sql = getNotMatchedInvestSplitListSql();
sql.append(" AND ins.amount < ? "); // 金额小的投资拆分
sql.append(" AND ins.begin_at <= ? ");
sql.append(" AND ins.end_at > ? "); // 时间不完全匹配,时间长的
sql.append(" ORDER BY ins.investor_id ASC, ins.end_at DESC");
log.info("level_2 sql args is: 0 = " + creditId + ", 1 = " + now + ", 2 = " + now + ", 3 = "
+ amount + ", 4 = " + beginAt + ", 5 = " + endAt);
log.info("level_2, sql is: " + sql.toString());
list = sjt.query(sql.toString(),
ParameterizedBeanPropertyRowMapper.newInstance(InvestSplit.class), creditId, now, now,
amount, beginAt, endAt);
return list;
}
/**
* 时间不完全匹配,时间短的,金额小投资拆分
*
* @param creditId
* @param beginAt
* @param endAt
* @param amount
* @return 投资拆分的集合
*/
@SuppressWarnings("deprecation")
private List<InvestSplit> getNotMatchedInvestSplitList_3(long creditId, long beginAt, long endAt,
BigDecimal amount) {
List<InvestSplit> list = new ArrayList<>();
long now = MyTimeUtil.getTodayZeroTimeMillions();
SimpleJdbcTemplate sjt = getOneSimpleJdbcTemplate();
StringBuilder sql = getNotMatchedInvestSplitListSql();
// 金额小的投资拆分
sql.append(" AND ins.amount < ? ");
sql.append(" AND ins.begin_at <= ? ");
// 时间不完全匹配,时间短的
sql.append(" AND ins.end_at < ? ");
sql.append(" ORDER BY ins.investor_id ASC, ins.end_at ASC");
log.info("level_3 sql args is: 0 = " + creditId + ", 1 = " + now + ", 2 = " + now + ", 3 = "
+ amount + ", 4 = " + beginAt + ", 5 = " + endAt);
log.info("level_3, sql is: " + sql.toString());
list = sjt.query(sql.toString(),
ParameterizedBeanPropertyRowMapper.newInstance(InvestSplit.class), creditId, now, now,
amount, beginAt, endAt);
return list;
}
明天计划的事情:完成剩余接口,改bug
遇到的问题:可能时间不够
收获:熟悉业务逻辑
评论