ContractServer.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. namespace App\Servers;
  3. use App\Jobs\BusinessFileJob;
  4. use App\Jobs\MsgFileJob;
  5. use App\Models\BlockItems;
  6. use App\Models\Contract;
  7. use App\Models\ErrorRecord;
  8. use App\Models\Member;
  9. use App\Servers\Icon\TronRPC;
  10. /**
  11. * Redis数据缓存类
  12. */
  13. class ContractServer
  14. {
  15. static private $server = '';
  16. private function __construct()
  17. {
  18. }
  19. /**
  20. * 创建对象
  21. * @return ContractServer
  22. */
  23. static function creatServer()
  24. {
  25. if (empty(self::$server)) {
  26. self::$server = new ContractServer();
  27. }
  28. return self::$server;
  29. }
  30. /**
  31. * 报单信息检测
  32. * @param BlockItems $blockItem
  33. */
  34. function broadcastDetection(BlockItems $blockItem){
  35. //检测报单信息
  36. $contract=Contract::where('hash',$blockItem->{'hash'})->first();
  37. if($contract){
  38. if($contract->{'status'}!=1){
  39. ErrorRecord::create([
  40. 'm_id' => 0,
  41. 'msg' => '合约状态从异常',
  42. 'data' => json_encode($contract)
  43. ]);
  44. }else{
  45. $ret = TronRPC::CreationTron()->getTransaction($contract->{'hash'});
  46. if (!empty($ret['ret'][0]['contractRet']) && $ret['ret'][0]['contractRet'] == 'SUCCESS') {
  47. //检测交易信息
  48. if($contract->{'type'}==1){
  49. //初始合约
  50. //生成双轨关系
  51. $member=Member::where('id',$contract->{'m_id'})->select(['id','recom_id'])->first();
  52. JobServer::creatServer()->creatBothJob($member->{'id'},$member->{'recom_id'});
  53. //报单拆分
  54. $this->oneSettle($contract);
  55. }else{
  56. //复投合约
  57. $this->twoSettle($contract);
  58. }
  59. } else {
  60. ErrorRecord::create([
  61. 'm_id' => 0,
  62. 'msg' => '交易失败',
  63. 'data' => json_encode($contract)
  64. ]);
  65. }
  66. }
  67. }
  68. }
  69. function oneSettle(Contract $contract){
  70. }
  71. function twoSettle(Contract $contract){
  72. }
  73. }