Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 
 
 

112 linhas
3.2 KiB

  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: brocloni
  5. * Date: 2019/4/18
  6. * Time: 10:24
  7. */
  8. namespace backend\modules\api\controllers;
  9. use backend\modules\api\models\ZybBus;
  10. use backend\modules\zzcs\controllers\BaseController;
  11. use Yii;
  12. use common\util\ZybBusUtil;
  13. class ZybBusController extends BaseController
  14. {
  15. public $logic = null;
  16. public function actionIndex()
  17. {
  18. $post = Yii::$app->request->post('msg');
  19. if (empty($post)) {
  20. $data = ['status' => 'fail', 'describe' => "参数错误002", 'order' => null];
  21. return json_encode($data);
  22. }
  23. $request = json_decode($post, true);
  24. if (!isset($request['header']) || !isset($request["header"]["methodName"])) {
  25. $data = ['status' => 'fail', 'describe' => "参数错误002", 'order' => null];
  26. return json_encode($data);
  27. }
  28. $methodName = $request['header']['methodName'];
  29. if ($methodName == "sended") {
  30. return $this->order($request);
  31. } elseif ($methodName == "cancel") {
  32. return $this->refundTickets($request);
  33. } elseif ($methodName == "query") {
  34. return $this->queryOrder($request);
  35. } else {
  36. $data = ['status' => 'fail', 'describe' => "参数错误", 'order' => null];
  37. return json_encode($data);
  38. }
  39. }
  40. // 用车退票接口
  41. public function refundTickets($request)
  42. {
  43. $model = new ZybBus(['scenario' => 'cancel-order']);
  44. if ($model->load($request, '') && $model->validate()) {
  45. $data = $model->refundTicket();
  46. } else {
  47. $msg = $model->getFirstError('order');
  48. $data = ['status' => 'fail', 'describe' => $msg, 'order' => null];
  49. }
  50. return json_encode($data);
  51. }
  52. public function queryOrder($request)
  53. {
  54. $model = new ZybBus(['scenario' => 'query-order']);
  55. if ($model->load($request, '') && $model->validate()) {
  56. $data = $model->queryOrderDetail();
  57. } else {
  58. $msg = $model->getFirstError('order');
  59. $data = ['status' => 'fail', 'describe' => $msg, 'order' => null];
  60. }
  61. return json_encode($data);
  62. }
  63. /**
  64. * Des:logic
  65. * Name: logic
  66. * @return ZybBus
  67. * @author 倪宗锋
  68. */
  69. public function logic()
  70. {
  71. if ($this->logic == null) {
  72. $this->logic = new ZybBus();
  73. }
  74. return $this->logic;
  75. }
  76. /**
  77. * Des:智游宝下单
  78. * Name: actionOrder
  79. * @return string
  80. * @author 倪宗锋
  81. */
  82. public function order($data)
  83. {
  84. $params = $data["order"];
  85. try {
  86. $result = $this->logic()->makeOrder($params);
  87. $body = [
  88. "orderInfo" => [
  89. "exOrderCode" => isset($result["data"]["orderId"]) ? $result["data"]["orderId"] : ""
  90. ]
  91. ];
  92. if ($result['flag'] == false) {
  93. return ZybBusUtil::util()->re($result['msg'], 'fail', $body);
  94. } else {
  95. return ZybBusUtil::util()->re('成功', 'success', $body);
  96. }
  97. } catch (\Exception $e) {
  98. return ZybBusUtil::util()->re("下单失败", 'fail', $body);
  99. }
  100. }
  101. }