P2P网络借贷系统-核心功能-用户投标-业务解说
2023-09-11 14:15:01 时间
用户投标是P2P网络借贷系统的核心功能。相对照较复杂,为了更好地梳理业务和技术实现思路,特地具体总结分析下。
输入:用户id-uid。标的id-lid。投标金额-amount
1.依据lid,获得贷款标的信息(优先从Cache中取),不能为null,状态status应该“合法”。
假设贷款标不存在,或者状态不正确,马上返回到前端。不再继续后面的处理。
2.依据uid。查询用户的信息。
贷款标的和用户信息是投标逻辑须要的。
3.投标检查。
用户的账户是否存在、账户剩余金额是否超过了投标金额amount。
4.依据uid、lid、amount等參数,构造投标tender对象。包括了投标须要的全部信息。
5.获得投标状态信息(事务锁住抢标状态。防止多个用户同一时候投标。使用数据库行级锁,分布式情况下也能够使用)。
使用select ... for update 语句
6.累计投标金额,即把当前的投标总额加上当前投标用户的“金额”。
这里面存在一个“争议”,假设标的总额2000,已经投了1800。用户投了300,这个时候300>200。理论上不能成功。
假设不成功,用户抢到标却无法投。可能非常伤心;假设让用户投,有的用户想“整投”。不想把钱“打散”。也可能非常伤心。
为了简化处理。一种方式是,把用户投标的钱算成200,即最大可投资金额。
7.更新投标状态。
8.保存投标信息tender对象。
9.扣除用户的账户钱,减去刚刚投资的金额。实际操作为把用户账户的钱转到平台账户下。
存在一个问题,一次标。把全部用户的钱,转到平台账户,会须要非常多次转账。
因此,设立一个比較特殊的“中间账户”,全部用户的钱都转到“中间账户”,等标满了,一次性把中间账户的钱转到平台账户下。
10.返回投标信息。是否成功。投标金额等。
投标过程中的注意事项:
1.开启事务。
2.数据库行级锁,锁住投标状态。
3.检查用户的可投资金额等前提条件检查。
4.平台设立中间账户,降低转账产生的流水记录。
相关文章
- 2017 青岛网络赛 Chenchen, Tangtang and ZengZeng
- 常用社交网络(微博等)动态新闻(feed、新鲜事)系统浅析(转)
- 深度学习Bible学习笔记:第六章 深度前馈网络
- Linux系统调优详解(七)——网络状态查看命令nethogs
- Win7系统删除网络驱动器盘符
- Atiitt cdn技术总结 性能提升之道 目录 1. 组成 最简单的CDN网络由一个DNS服务器和几台缓存服务器组成:1 1.1. CDN是一个经策略性部署的整体系统,包括分布式存储、负载均衡
- 【Android笔记54】Android中几个常见的系统广播(分钟广播、网络广播、桌面和任务栏广播)
- NLP之TF之LSTM:基于Tensorflow框架采用PTB数据集建立LSTM网络的自然语言建模
- 网络——详解
- MATLB|基于复杂网络的配电系统微电网优化配置
- 毕业论文-学生网络考试系统 (学生在线考试系统)(共享版)
- 001-docker-net-网络设置分类、Bridge详解、mac docker说明
- 内网渗透(十九)之Windows协议认证和密码抓取-网络认证(基于挑战响应认证的NTLM协议)
- 网络与分布式集群系统的区别:每个节点都是一台计算机,而不是各种计算机内部的功能设备。
- python之psutil模块(获取系统性能信息(CPU,内存,磁盘,网络)
- Windiws10系统不显示可用网络的处理方法!
- 网络实验之HSRP协议
- 【网络结构设计】7、RepVGG | 使用结构重参数化来实现精度和速度平衡的主干网络
- 安全网络身份认证系统的设计与实现
- 有三个输入的自监督网络设计
- m车载自组织网络(Vehicular Ad-hoc Network,VANET)通信系统的matlab仿真
- RK平台Android5.0系统后多网卡网络不通的解决办法