一、数字人民币:
业务逻辑设计 、代码逻辑开发。涉及功能点:批量链、服务编排(工作流) 文件解析 任务拆分
数字人民币兑换
先介绍下项目整体流程,数字人民币智能兑换,对私对公客户签约兑换规则,每日跑批进行兑换交易
具体逻辑:
1 、客户签约,即数币签报-银行卡 、银行卡-数币钱包签约一组兑换规则,兑换周期(按日 按周 按月 隔日) ,以及生效日期 、状态等 。
2 、每日跑批:每日根据当前日期需要执行的兑换数据进行兑换交易
a 、生成需要兑换的数据:根据当前日期获取可执行的数据,首先是生效状态的和已经到生效日期的,如果是按周
看当天是否是对应的星期,如果是按月看当天是不是签约的那一天,查询出需要执行的数据并放入文件中
b 、获取文件并解析入库
c 、拆分入库明细进行兑换交易,交易完成后更新明细状态
d 、兑换交易,获取签约数据,获取数币token,计算交易金额根据签约数据(定额 保底 全额 限额) ,通道交易,交
易失败累计失败次数,交易成功重置失败次数,达到一定失败次数解约签约数据
二、系统升级重构
系统设计 、技术选型
使用spring boot和spring cloud对公司项目进行升级 。
1 、从无到有的搭建微服务项目,其中包括管理功能微服务 、数据库微服务 、缓存微服务 、授权认证API 、工具类
等;
2 、使用shiro和jwt做权限认证( 此过程将权限做成jar,公共部分,供其他微服务权限认证使用), 用redis做缓存机 制,使用JWT生成Token,并用redis缓存Token,使用JWT和redis过期时间来实现长短Token,以便返回给前端新T
oken;
3 、使用mybatis做多数据源;
4 、使用redis做缓存,缓存token,以及用户 、菜单 、字典信息等;
5 、使用Feign和RestTemplate进行服务之间的调用,其中反复尝试并解决了服务之间传参和返回值的形式;
6 、并使用zuul向前端提供统一接口;使用eureka做服务注册中心;