确认收款
# OTC用户确认付款接口
## 功能简介
 该接口用于用户在otc中交易中完成确认付款的操作
## 代码流程
1. 提交相对应参数至付款接口
1.  接口:app/otc/user/releaseadvertisement/orderCompleted
2.  代码结构:hry/app/otc/ReleaseAdvertisementMobileController
3.  实现内容:
1. 判断token是否存在有效
2. 调用service里面的getCustomer方法,进行角色用户权限判断
1.通过订单号查询订单然后进行非空判断
2.通过订单类型判断调用该方法的类型(1:仅有买家可操作 2:仅有卖家可操作 3:买家和卖家均可操作)
3. 判断是否符合权限
4. 设置redis分布式锁然后判断是否加锁成功,返回时将锁给移除掉
1. 调用service里面的orderCompleted方法,进行订单状态的修改,因为订单完成,所以"otc:ReleaseAdvertisementAfterColse:"这个redis值给删除.
1.获取订单信息让后判断订单是否失效和是否为空
2.修改订单状态和付款时间
3.将订单信息发送到"otc:queue"和"otcCompletionRate"。
"otc_queue":将订单信息以队列方式存储,通过redis的消息队列去消费处理.
"otcCompletionRate":生产一个消费队列去处理完成率.
消费者代码结构:service里面的 hry/otc/listener/StartupManage,只要消费者读到一次,就会把"otc_queue"队列里面的数据全部处理完.
4.获取卖方钱包信息和获取广告信息
5.判断广告方是买方还是卖方
卖方:解冻用户冷钱包币数
买方:减少用户币数和(加上手续费),热钱包加上手续费
6.获取买方的账户信息,将订单的币数存入买方热钱包
7.记录交易订单数据存入数据库.
5.判断是否操作成功,然后返回.