今天开始写提现的问题,我是将每一步做拆分然后一点一点开始写的。来公司就是有一点不太好,明明就在旁边,就是不愿意跟你分享代码思路,哎,离开了校园就很难遇到那种可以热心帮助你的同事了,他们总是在忙自己的事情,要不是就在摸鱼{偷偷玩游戏等等},哎,想快速学完公司的所有知识还是要一点一点摸索,目前我对于提现这一个地方是有三个点需要去了解的,首先是获取的是用户的id openid(微信标识,就是你需要提现的地方的id)amount提现金额,这三个参数就是非常重要的,具体实现是在service层的实现类里面,主要是分为这几步:
1.日志打印
2.查询收款次数
3.获取用户信息
4.更新余额,完成账户扣减
5.生成账户流水表
6.根据openid去进行企业账户对微信余额的充值
我主要是写的1--2--3--4--5这些,是需要我去封装数据的,而第六步主要是已经封装好了那些复杂逻辑我只需要调用他的接口方法,把参数传一下,最后try--catch就完成了,不过最重要的是在这里是需要加注解的。@Transactional加上事务注解,并且在搜索账户的时候sql要加上for update,进行上锁,说起数据库锁,就要从不同的角度来区分了,从粒度分为行锁、表锁、页锁,对于我们日常使用的mysql,之前用的MYISAM,在5.5以后都是inooDB的搜索引擎,他可以支持行锁和表锁,但是并不支持页锁。从数据库管理上分共享锁和排它锁,也就是所谓的读锁和写锁。作为程序员来说我们要掌握悲观锁和乐观锁。至于这两种锁,乐观锁主要是由程序设定,不会出现死锁的状态,而悲观锁则是通过自身锁的机制来实现锁的。相比之下,乐观锁更倾向读多写少的情况,而悲观锁则是写操作多的情况。对于锁我就不多说了,因为自己了解的也不深入,至于提现,主要就是调接口封参数细节注意一下。如果有更好的方法可以@我我去收藏一下,谢谢啦!!