口腔客户管理系统
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. <?php
  2. //token,填写用户信息
  3. if (!function_exists('setToken')) {
  4. function setToken($array)
  5. {
  6. try {
  7. $encode_token = \app\common\model\Jwt::encode($array);
  8. return $encode_token;
  9. } catch (\Exception $e) {
  10. tojson('10000', $e->getMessage());
  11. }
  12. }
  13. }
  14. if (!function_exists('has_special_str')) {
  15. function has_special_str($str)
  16. {
  17. //$前要加反斜杠
  18. $specialChars = "~·`!!`@@&$##\$¥%^…&*()()—-_==×++[]{}*{}【】、|\\;:;:'\"“”‘’,./<>《》??~,。…";
  19. //特殊符号数组
  20. $specialArr = array();
  21. $len = mb_strlen($specialChars, 'UTF-8');
  22. for ($i = 0; $i < $len; $i++) {
  23. $specialArr[] = mb_substr($specialChars, $i, 1, 'UTF-8');
  24. }
  25. //待比较字符串数组
  26. $arr = array();
  27. $len = mb_strlen($str, 'UTF-8');
  28. for ($i = 0; $i < $len; $i++) {
  29. $arr[] = mb_substr($str, $i, 1, 'UTF-8');
  30. }
  31. foreach ($arr as $v) {
  32. if (in_array($v, $specialArr)) {
  33. return true;
  34. }
  35. }
  36. return false;
  37. }
  38. }
  39. if (!function_exists('uuid')) {
  40. function uuid()
  41. {
  42. $uuid = sprintf(
  43. '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
  44. mt_rand(0, 0xffff),
  45. mt_rand(0, 0xffff),
  46. mt_rand(0, 0xffff),
  47. mt_rand(0, 0x0fff) | 0x4000,
  48. mt_rand(0, 0x3fff) | 0x8000,
  49. mt_rand(0, 0xffff),
  50. mt_rand(0, 0xffff),
  51. mt_rand(0, 0xffff)
  52. );
  53. return $uuid;
  54. }
  55. }
  56. // 应用公共文件
  57. if (!function_exists('tojson')) {
  58. function tojson($code = 200, $msg = '', $arr = null)
  59. {
  60. header('Content-Type:application/json; charset=utf-8');
  61. if ($msg == '') {
  62. $msg = __($code);
  63. }
  64. $array = [
  65. 'code' => (int)$code,
  66. 'msg' => $msg,
  67. // 'data' => $arr,
  68. ];
  69. if ($arr) {
  70. $array = array_merge($array, $arr);
  71. }
  72. echo json_encode($array);
  73. die;
  74. }
  75. }
  76. if (!function_exists('__')) {
  77. /**
  78. * 获取语言变量值
  79. * @param string $name 语言变量名
  80. * @param array $vars 动态变量值
  81. * @param string $lang 语言
  82. * @return mixed
  83. */
  84. function __($name, $vars = [], $lang = '')
  85. {
  86. if (!is_array($vars)) {
  87. $vars = func_get_args();
  88. array_shift($vars);
  89. $lang = '';
  90. }
  91. return \think\facade\Lang::get($name, $vars, $lang);
  92. }
  93. }
  94. //token,获取用户信息
  95. if (!function_exists('getToken')) {
  96. function getToken($token)
  97. {
  98. try {
  99. $data = \app\common\model\Jwt::decode($token);
  100. if (!empty($data)) {
  101. return $data;
  102. } else {
  103. tojson(201, 'token不存在');
  104. }
  105. } catch (\Exception $e) {
  106. tojson(201, 'token不存在');
  107. }
  108. }
  109. }
  110. if (!function_exists('nosecure')) {
  111. function nosecure($method, $nosecure, $function)
  112. {
  113. \app\common\model\Secure::secure($method, $nosecure, $function);
  114. }
  115. }
  116. //验证器以及验签
  117. if (!function_exists('verifysign')) {
  118. function verifysign($param, $noSize)
  119. {
  120. if (!isset($param['sign'])) {
  121. nosign($noSize) ? true : tojson(10005);
  122. }
  123. //验证签名
  124. $no = nosign($noSize);
  125. $no ? true : checksign($param);
  126. if ($no == false) {
  127. unset($param['sign']);
  128. }
  129. }
  130. }
  131. //验签
  132. if (!function_exists('checksign')) {
  133. function checksign($array)
  134. {
  135. ksort($array);
  136. $string = '';
  137. foreach ($array as $k => $v) {
  138. if ($k != 'sign' && $v !== '' && !is_array($v)) {
  139. $string .= $k . '=' . $v . '&';
  140. }
  141. }
  142. $string = trim($string, '&');
  143. if ($string == '') {
  144. $string = $string . 'key=' . config('apiconfig.key');
  145. } else {
  146. $string = $string . '&key=' . config('apiconfig.key');
  147. }
  148. $sign = md5($string);
  149. if ($sign != $array['sign']) {
  150. tojson('10004');
  151. }
  152. return $sign;
  153. }
  154. }
  155. //检查是否签名
  156. if (!function_exists('nosign')) {
  157. function nosign($arr)
  158. {
  159. $action = request()->action();
  160. $arr = is_array($arr) ? $arr : explode(',', $arr);
  161. if (!$arr) {
  162. return false;
  163. }
  164. $arr = array_map('strtolower', $arr);
  165. // 是否存在
  166. if (in_array(strtolower($action), $arr) || in_array('*', $arr)) {
  167. return true;
  168. }
  169. // 没找到匹配
  170. return false;
  171. }
  172. }