TradeController.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. <?php
  2. namespace App\Http\Controllers\Oapi;
  3. use App\Http\Validator\TradeValidator;
  4. use App\Services\Oapi\TradeOrderService;
  5. /**
  6. * 交易
  7. * Class TradeController
  8. * @package App\Http\Controllers\Oapi
  9. */
  10. class TradeController extends webApp
  11. {
  12. /**
  13. * 构造函数
  14. * @author laravel开发员
  15. * @since 2020/11/11
  16. * NoticeController constructor.
  17. */
  18. public function __construct()
  19. {
  20. parent::__construct();
  21. $this->service = new TradeOrderService();
  22. }
  23. /**
  24. * 买入
  25. * @param TradeValidator $validate
  26. * @return array
  27. */
  28. public function buy(TradeValidator $validate)
  29. {
  30. $params = request()->post();
  31. $params = $validate->check($params,'trade_buy');
  32. if(!is_array($params)){
  33. return message($params, false);
  34. }
  35. // 额外验证没注册需要前往下载APP注册
  36. $params['api_id'] = $this->apiId;
  37. if($info = TradeOrderService::make()->buy($this->userId, $params)){
  38. return message(3006, true, $info);
  39. }else{
  40. return message(TradeOrderService::make()->getError(), false);
  41. }
  42. }
  43. /**
  44. * 出售
  45. * @param TradeValidator $validate
  46. * @return array
  47. */
  48. public function sell(TradeValidator $validate)
  49. {
  50. $params = request()->post();
  51. $params = $validate->check($params,'trade_sell');
  52. if(!is_array($params)){
  53. return message($params, false);
  54. }
  55. $params['api_id'] = $this->apiId;
  56. if($info = TradeOrderService::make()->sell($this->userId, $params)){
  57. return message(3007, true, $info);
  58. }else{
  59. return message(TradeOrderService::make()->getError(), false);
  60. }
  61. }
  62. /**
  63. * 确认打款
  64. * @param TradeValidator $validate
  65. * @return array
  66. */
  67. public function pay(TradeValidator $validate)
  68. {
  69. $params = request()->post();
  70. $params = $validate->check($params,'pay');
  71. if(!is_array($params)){
  72. return message($params, false);
  73. }
  74. if($info = TradeOrderService::make()->pay($this->userId, $params)){
  75. return message(3017, true, $info);
  76. }else{
  77. return message(TradeOrderService::make()->getError(), false);
  78. }
  79. }
  80. /**
  81. * 确认收款
  82. * @param TradeValidator $validate
  83. * @return array
  84. */
  85. public function collection(TradeValidator $validate)
  86. {
  87. $params = request()->post();
  88. $params = $validate->check($params,'info');
  89. if(!is_array($params)){
  90. return message($params, false);
  91. }
  92. if($info = TradeOrderService::make()->collection($this->userId, $params)){
  93. return message(3021, true, $info);
  94. }else{
  95. return message(TradeOrderService::make()->getError(), false);
  96. }
  97. }
  98. /**
  99. * 取消订单
  100. * @param TradeValidator $validate
  101. * @return array
  102. */
  103. public function cancel(TradeValidator $validate)
  104. {
  105. $params = request()->post();
  106. $params = $validate->check($params,'info');
  107. if(!is_array($params)){
  108. return message($params, false);
  109. }
  110. if($info = TradeOrderService::make()->cancel($this->userId, $params)){
  111. return message(3034, true, $info);
  112. }else{
  113. return message(TradeOrderService::make()->getError(), false);
  114. }
  115. }
  116. /**
  117. * 订单信息
  118. * @return array
  119. */
  120. public function info()
  121. {
  122. $orderNo = request()->post('order_no','');
  123. if(empty($orderNo)){
  124. return message(1013,false);
  125. }
  126. $info = $this->service->getInfoByNo($orderNo, $this->userId);
  127. if($info){
  128. return message(1002, true, $info);
  129. }else{
  130. return message(1002, false);
  131. }
  132. }
  133. }