发表于: 2022-08-09 22:10:49
2 560
一,今天完成的事情
复盘项目
后台中有一个债权管理功能。
按照债权列表的原型图,设计表格。展示的时候,债权是需要被排序的。按照新建时间排序。每个条目都需要有id,可以在id加索引排序;第二,也可以在数据库取出所有项目后,进行排序。第二种方式,项目也可能更新的频率不需要太高,10-30分钟更新查看一次,匹配也是10-30分钟匹配一次,可能加缓存。
设计表格。
债权,是权利。
建立库finance。表格creditor_right。
债权匹配要求是
匹配原则 :
日期:优先匹配期限相近的,其次匹配到期日接近的。
金额:优先匹配金额接近的,大金额优先匹配。
1、若有提前到期的投资,则额外匹配“ 新投资日 ”等于“ 现到期日 ”的新投资,以“ 新到期日 ”等于或晚于“ 债权到期日 ”为优
2、晚于“ 债权到期日 ”的投资则以“ 债权到期日 ”为界线拆分为两笔投资——不参与当前债权匹配的部分以“ 债权到期日 ”为“ 新投资日 ”,参与其他债权的匹配,此处更换的“ 新投资日 ”与算息无关
3、匹配债权金额可由多笔投资合并
4、同一用户相同债权仅匹配一次(包括不同产品)
5、投资额不得大于债权
办法
1-1,,优先匹配期限相近的,所以现有借款需要排序,Java中用comparator中再排序期限长短。我没看到test cases,这里应该按照期限长度排序。因为是“相近”,没办法保证有相等的,所以排序是简单做法
1-2,到期日接近,Java中用comparator中再排序到期日,不刺激数据库。找最接近的就找日期转化成毫秒,我也同意这个方案在Java中好处理。
2,拆分钱,以日期拆分。如果有投资没有在当时匹配到需要记录,推荐能永久性存储的记录,还是关系型数据库存储。
3,可以合并,有表记录好哪些投资合并成即可。投资有id,从投资可查看匹配的债权。多笔投资用List记录即可
4,需要记录用户匹配过的债权,又是需要永久记录,也是记录成能转化成List的较好
5,所以在这个逻辑中,债权对投资额是1对多的关系。投资要找>=自己的债权。
二,今天的问题
金融可能出很多问题。这个项目也算是时代的一种印记。
三,今天的收获
试学最后一天
四,明天的计划
未来继续复盘。部署项目另议。
评论