Request.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2020 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app;
  12. use Spatie\Macroable\Macroable;
  13. /**
  14. * Class Request
  15. * @package app
  16. * @method tokenData() 获取token信息
  17. * @method user(string $key = null) 获取用户信息
  18. * @method uid() 获取用户uid
  19. * @method isAdminLogin() 后台登陆状态
  20. * @method adminId() 后台管理员id
  21. * @method adminInfo() 后台管理信息
  22. * @method kefuId() 客服id
  23. * @method kefuInfo() 客服信息
  24. */
  25. class Request extends \think\Request
  26. {
  27. use Macroable;
  28. /**
  29. * 获取请求的数据
  30. * @param array $params
  31. * @param bool $suffix
  32. * @return array
  33. */
  34. public function more(array $params, bool $suffix = false): array
  35. {
  36. $p = [];
  37. $i = 0;
  38. foreach ($params as $param) {
  39. if (!is_array($param)) {
  40. $p[$suffix == true ? $i++ : $param] = $this->param($param);
  41. } else {
  42. if (!isset($param[1])) $param[1] = null;
  43. if (!isset($param[2])) $param[2] = '';
  44. if (is_array($param[0])) {
  45. $name = is_array($param[1]) ? $param[0][0] . '/a' : $param[0][0] . '/' . $param[0][1];
  46. $keyName = $param[0][0];
  47. } else {
  48. $name = is_array($param[1]) ? $param[0] . '/a' : $param[0];
  49. $keyName = $param[0];
  50. }
  51. $p[$suffix == true ? $i++ : (isset($param[3]) ? $param[3] : $keyName)] = $this->param($name, $param[1], $param[2]);
  52. }
  53. }
  54. return $p;
  55. }
  56. /**
  57. * 获取get参数
  58. * @param array $params
  59. * @param bool $suffix
  60. * @return array
  61. */
  62. public function getMore(array $params, bool $suffix = false): array
  63. {
  64. return $this->more($params, $suffix);
  65. }
  66. /**
  67. * 获取post参数
  68. * @param array $params
  69. * @param bool $suffix
  70. * @return array
  71. */
  72. public function postMore(array $params, bool $suffix = false): array
  73. {
  74. return $this->more($params, $suffix);
  75. }
  76. /**
  77. * 获取用户访问端
  78. * @return array|string|null
  79. */
  80. public function getFromType()
  81. {
  82. return $this->header('Form-type', '');
  83. }
  84. /**
  85. * 当前访问端
  86. * @param string $terminal
  87. * @return bool
  88. */
  89. public function isTerminal(string $terminal)
  90. {
  91. return strtolower($this->getFromType()) === $terminal;
  92. }
  93. /**
  94. * 是否是H5端
  95. * @return bool
  96. */
  97. public function isH5()
  98. {
  99. return $this->isTerminal('h5');
  100. }
  101. /**
  102. * 是否是微信端
  103. * @return bool
  104. */
  105. public function isWechat()
  106. {
  107. return $this->isTerminal('wechat');
  108. }
  109. /**
  110. * 是否是小程序端
  111. * @return bool
  112. */
  113. public function isRoutine()
  114. {
  115. return $this->isTerminal('routine');
  116. }
  117. /**
  118. * 是否是app端
  119. * @return bool
  120. */
  121. public function isApp()
  122. {
  123. return $this->isTerminal('app');
  124. }
  125. /**
  126. * 是否是app端
  127. * @return bool
  128. */
  129. public function isPc()
  130. {
  131. return $this->isTerminal('pc');
  132. }
  133. }