123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <?php
- /**
- *
- * @author: xaboy<365615158@qq.com>
- * @day: 2018/01/10
- */
- namespace crmeb\services;
- use crmeb\services\express\Express;
- class ExpressService
- {
- protected static $api = [
- 'query' => 'https://wuliu.market.alicloudapi.com/kdi'
- ];
- protected static $express = [];
- /**
- * @param string $type
- * @return Express|mixed
- */
- public static function init($type = 'express')
- {
- if (isset(self::$express['express_' . $type])) {
- return self::$express['express_' . $type];
- }
- $config = [];
- $config['account'] = sys_config('sms_account', '');
- $config['secret'] = sys_config('sms_token', '');
- return self::$express['express_' . $type] = new Express($type, $config);
- }
- public static function expressList()
- {
- $key = md5('crmeb_plat_express_list');
- $express = CacheService::get($key);
- if (!$express) {
- $expressInit = self::init();
- try {
- $express = $expressInit->express(1, 1, 100);
- $express = $express['data'] ?? [];
- CacheService::set($key, $express, 86400);
- } catch (\Throwable $e) {
- $express = [];
- }
- }
- return $express;
- }
- public static function query($no, $com = '')
- {
- $expressInit = self::init();
- $express = self::expressList();
- $code = '';
- if ($express) {
- $express = array_combine(array_column($express, 'name'), $express);
- $code = $express[$com]['code'] ?? '';
- }
- try {
- if ($code) {
- $data = $expressInit->query($code, $no);
- $result['status'] = 0;
- $result['msg'] = 'ok';
- $result['result'] = [
- 'number' => $data['num'],
- 'type' => $data['com'],
- 'list' => $data['content']
- ];
- } else {
- $result = self::oldquery($no);
- }
- } catch (\Throwable $e) {
- $result = [];
- }
- return $result;
- }
- public static function oldquery($no, $type = '')
- {
- $appCode = sys_config('system_express_app_code');
- if (!$appCode) return false;
- $res = HttpService::getRequest(self::$api['query'], compact('no', 'type'), ['Authorization:APPCODE ' . $appCode]);
- $result = json_decode($res, true) ?: false;
- return $result;
- }
- }
|