Util.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php namespace Api\Lib;
  2. use Dever;
  3. class Util
  4. {
  5. # 生成订单号
  6. public function createNumber($prefix, $table)
  7. {
  8. $number = \Dever\Helper\Str::order($prefix);
  9. $state = Dever::db($table)->find(array('order_num' => $number));
  10. if (!$state) {
  11. return $number;
  12. } else {
  13. return $this->createNumber($prefix, $table);
  14. }
  15. }
  16. # 获取openid 仅jspai和小程序需要openid
  17. public function openid($account, $env, $uid, $result = array())
  18. {
  19. $account = Dever::db('account', 'api')->find(array('key' => $account));
  20. if ($account) {
  21. $info = Dever::db('openid', 'api')->find(array('account_id' => $account['id'], 'uid' => $uid, 'env' => $env));
  22. if ($info) {
  23. $result['openid'] = $info['openid'];
  24. } else {
  25. if ($env == 3) {
  26. # jsapi 一般需要oauth授权
  27. if (empty($result['t'])) {
  28. $result['t'] = \Dever\Helper\Secure::login($uid);
  29. }
  30. $result['account'] = $account['key'];
  31. $result['link'] = Dever::url('api/oauth.code', $result);
  32. } elseif ($env == 5) {
  33. # 小程序
  34. $param['js_code'] = Dever::input('applet_code', 'is_string', '登录信息');
  35. $data = Dever::load('account', 'api')->run($account, 'applet_login', $param, $env);
  36. if (isset($data['openid'])) {
  37. $result['openid'] = $data['openid'];
  38. $update['uid'] = $uid;
  39. $update['account_id'] = $account['id'];
  40. $update['env'] = $env;
  41. $update['openid'] = $data['openid'];
  42. Dever::db('openid', 'api')->insert($update);
  43. }
  44. }
  45. }
  46. }
  47. return $result;
  48. }
  49. # 获取参数类型
  50. public function fieldType($platform_id)
  51. {
  52. $data = array();
  53. $data[] = array
  54. (
  55. 'id' => 1,
  56. 'name' => '格式转换',
  57. 'children' => Dever::db('format', 'api')->select([]),
  58. );
  59. $where = ['platform_id' => $platform_id];
  60. $data[] = array
  61. (
  62. 'id' => 2,
  63. 'name' => '加密',
  64. 'children' => Dever::db('platform_ssl', 'api')->select($where),
  65. );
  66. $data[] = array
  67. (
  68. 'id' => 3,
  69. 'name' => '签名',
  70. 'children' => Dever::db('platform_sign', 'api')->select($where),
  71. );
  72. return $data;
  73. }
  74. # 获取签名列表
  75. public function getPlatformSign($platform_id)
  76. {
  77. return Dever::db('platform_sign', 'api')->select(array('platform_id' => $platform_id));
  78. }
  79. # 格式转换
  80. public function format($id, $value)
  81. {
  82. $info = Dever::db('format', 'api')->find($id);
  83. if ($info) {
  84. $info['method'] = str_replace('{value}', "'{value}'", $info['method']);
  85. $value = \Dever\Helper\Str::val($info['method'], array('value' => $value));
  86. }
  87. return $value;
  88. }
  89. }