当前位置: 首页 > news >正文

wdt接口优化

原有接口写法

<?phpnamespace app\services\wangdiantong;use app\services\BaseServices;
use think\facade\Env;
use think\facade\Log;class Client extends BaseServices
{protected $client = null;public function __construct(){$sid = Env::get('wdtsdk.SID', '');$appkey = Env::get('wdtsdk.appkey', '');$appsecret = Env::get('wdtsdk.appsecret', '');$service_url = Env::get('wdtsdk.service_url', '');$this->client = new WdtErpClient($service_url, $sid, $appkey, $appsecret);}/*** 应该是获取今年订单* sales.TradeQuery.querySelfOrderWithDetail(订单查询--仅返回自有平台、线下平台订单信息)* @param $srcTid 原始订单号,多个逗号分割,cp400922874531020800,3728585377656741632,cp414335838269709208,3725182429105097728* @param $pager* @return void*/public function querySelfOrderWithDetailBySrcTid($srcTid = [], $pager = 50){$parMap = new \stdClass();$parMap->src_tid = is_array($srcTid) ? implode(',', $srcTid) : $srcTid;try {$pager = new Pager($pager, 0, true);$data = $this->client->pageCall("sales.TradeQuery.querySelfOrderWithDetail", $pager,  $parMap); // 分页方法$array = json_decode(json_encode($data), true);return ['code' => 200, 'data' => $array];} catch (\Exception $e) {Log::error('querySelfOrderWithDetailBySrcTid,失败原因:' . $e->getMessage() ." code: ". $e->getCode() . " line: " . $e->getLine());return ['code' => 400, 'msg' => $e->getMessage()];}}/*** 应该是往年订单* sales.TradeQuery.queryHistorySelfOrderWithDetail(历史订单查询--仅返回自有平台、线下平台订单)* @param $srcTid* @param $pager* @return array*/public function queryHistorySelfOrderWithDetail($srcTid = [], $pager = 50){$parMap = new \stdClass();$parMap->src_tid = is_array($srcTid) ? implode(',', $srcTid) : $srcTid;try {$pager = new Pager($pager, 0, true);$data = $this->client->pageCall("sales.TradeQuery.queryHistorySelfOrderWithDetail", $pager,  $parMap); // 分页方法$array = json_decode(json_encode($data), true);return ['code' => 200, 'data' => $array];} catch (\Exception $e) {Log::error('queryHistorySelfOrderWithDetail,失败原因:' . $e->getMessage() ." code: ". $e->getCode() . " line: " . $e->getLine());return ['code' => 400, 'msg' => $e->getMessage()];}}/** goods.Goods.queryWithSpec(货品档案查询)* https://open.wangdian.cn/qjb/open/apidoc/doc?path=goods.Goods.queryWithSpec* */public function queryWithSpec($params, $pager = 20){try {$pager = new Pager($pager, 0, true);
//            $data = $this->client->pageCall("goods.Goods.queryWithSpec", $pager, $params);$data = $this->client->pageCall("goods.Goods.queryWithSpec", $pager, $params);
//            var_dump($data);$array = json_decode(json_encode($data), true);return ['code' => 200, 'data' => $array];} catch (\Exception $e) {Log::error('queryHistorySelfOrderWithDetail,失败原因:' . $e->getMessage() ." code: ". $e->getCode() . " line: " . $e->getLine());return ['code' => 400, 'msg' => $e->getMessage()];}}/** goods.ApiGoods.search(平台货品查询)* */public function queryGoodsSearch($params, $pager = 20){try {$pager = new Pager($pager, 0, true);
//            $data = $this->client->pageCall("goods.Goods.queryWithSpec", $pager, $params);$data = $this->client->pageCall("goods.ApiGoods.search", $pager, $params);
//            var_dump($data);$array = json_decode(json_encode($data), true);return ['code' => 200, 'data' => $array];} catch (\Exception $e) {Log::error('queryHistorySelfOrderWithDetail,失败原因:' . $e->getMessage() ." code: ". $e->getCode() . " line: " . $e->getLine());return ['code' => 400, 'msg' => $e->getMessage()];}}/** goods.Suite.search(组合装查询)* https://open.wangdian.cn/qjb/open/apidoc/doc?path=goods.Suite.search* */public function queryWithSuite($params, $pager = 5){try {$pager = new Pager($pager, 0, true);$data = $this->client->pageCall("goods.Suite.search", $pager, $params);$array = json_decode(json_encode($data), true);return ['code' => 200, 'data' => $array];} catch (\Exception $e) {Log::error('queryHistorySelfOrderWithDetail,失败原因:' . $e->getMessage() ." code: ". $e->getCode() . " line: " . $e->getLine());return ['code' => 400, 'msg' => $e->getMessage()];}}
}

提取公共请求地址,使用方法名自调用,提取公共请求逻辑,简化每个接口,只需传入不同的参数即可调用,修改和复用效率高,减少代码量

<?phpnamespace app\services\wangdiantong;use app\services\BaseServices;
use think\facade\Env;
use think\facade\Log;class Client extends BaseServices
{protected $client = null;private $apiMap = ['queryWithSpec' => 'goods.Goods.queryWithSpec','queryGoodsSearch' => 'goods.ApiGoods.search','queryWithSuite' => 'goods.Suite.search','queryHistorySelfOrderWithDetail' => 'sales.TradeQuery.queryHistorySelfOrderWithDetail','querySelfOrderWithDetail' => 'sales.TradeQuery.querySelfOrderWithDetail'];public function __construct(){$sid = Env::get('wdtsdk.SID', '');$appkey = Env::get('wdtsdk.appkey', '');$appsecret = Env::get('wdtsdk.appsecret', '');$service_url = Env::get('wdtsdk.service_url', '');$this->client = new WdtErpClient($service_url, $sid, $appkey, $appsecret);}/*** 应该是获取今年订单* sales.TradeQuery.querySelfOrderWithDetail(订单查询--仅返回自有平台、线下平台订单信息)* @param $srcTid 原始订单号,多个逗号分割,cp400922874531020800,3728585377656741632,cp414335838269709208,3725182429105097728* @param $pager* @return void*/public function querySelfOrderWithDetailBySrcTid($srcTid = [], $pager = 50){$parMap = new \stdClass();$parMap->src_tid = is_array($srcTid) ? implode(',', $srcTid) : $srcTid;return $this->callApi(__FUNCTION__, $parMap, $pager);}/*** 应该是往年订单* sales.TradeQuery.queryHistorySelfOrderWithDetail(历史订单查询--仅返回自有平台、线下平台订单)* @param $srcTid* @param $pager* @return array*/public function queryHistorySelfOrderWithDetail($srcTid = [], $pager = 50){$parMap = new \stdClass();$parMap->src_tid = is_array($srcTid) ? implode(',', $srcTid) : $srcTid;return $this->callApi(__FUNCTION__, $parMap, $pager);}/** goods.Goods.queryWithSpec(货品档案查询)* https://open.wangdian.cn/qjb/open/apidoc/doc?path=goods.Goods.queryWithSpec* */public function queryWithSpec($params, $pager = 20){return $this->callApi(__FUNCTION__, $params, $pager);}/** goods.ApiGoods.search(平台货品查询)* */public function queryGoodsSearch($params, $pager = 20){return $this->callApi(__FUNCTION__, $params, $pager);}/** goods.Suite.search(组合装查询)* https://open.wangdian.cn/qjb/open/apidoc/doc?path=goods.Suite.search* */public function queryWithSuite($params, $pager = 5){return $this->callApi(__FUNCTION__, $params, $pager);}private function callApi(string $method,array $params, int $pageSize, int $pageNo = 0): array {if (!isset($this->apiMap[$method])) {$errorMsg = "接口配置不存在";Log::error("{$errorMsg}");return ["code" => 400,"msg" => $errorMsg];}$apiPath = $this->apiMap[$method];try {$pager = new Pager($pageSize, $pageNo, true);$data = $this->client->pageCall($apiPath, $pager, $params);$array = is_object($data) ? json_decode(json_encode($data), true) : (array)$data;return ['code' => 200, 'data' => $array];} catch (\Exception $e) {Log::error('queryHistorySelfOrderWithDetail,失败原因:' . $e->getMessage() ." code: ". $e->getCode() . " line: " . $e->getLine());return ['code' => 400, 'msg' => $e->getMessage()];}}
}
http://www.dtcms.com/a/520959.html

相关文章:

  • 东莞网站建设服务协议wordpress字段添加按钮
  • 网站建设的技术标准中小企业网站建设渠道
  • 创建网站需要什么技术个人网站建设的方案
  • 为什么做营销型网站邯郸渊博网络有限公司
  • dir()与help()
  • chromium项目中添加源文件(BUILD.gn项目中添加源文件)
  • 网站建设远程工作太原网站建设联系方式
  • 宁波模板建站源码展示网站报价
  • 台式机电脑i9-9900K+Z390-PRO-A更换主板的辛路历程
  • 关于使用「音流」连接「Navidrome」的异地播放问题解决方案
  • 郑州网站优化价格怎么查看网站的dns
  • 谈谈 Android 中对 Binder 的理解与小结
  • 解码Linux文件IO之库的制作与应用
  • RK Android15系统定制将物理按键映射为设置键的完整实现
  • 软件下载网站如何履行安全管理网站建设的流程图
  • 常用个人网站是什么wordpress怎么设置菜单
  • 梯度下降求解线性回归问题
  • 快手推出“工具+模型+平台”AI编程生态!大厂挤占AI赛道,中小企业如何突围?
  • 望京做网站公司做装修网站如何
  • 上海免费模板建站微网站开发第三方平台
  • 网站logo如何修改struck wordpress
  • ESLint 配置文件 (.eslintrc.js) 完整指南
  • 深圳网站建设 卓越创锟鹏建设招聘网站
  • 如何软件开发windows优化大师是官方的吗
  • 计算机网络全栈知识:从物理层到应用层
  • 矩阵题型hot100
  • TCP网络编程本质
  • 内蒙古建设厅官网站凡科建站公司
  • MySQL专题Day(3)————索引
  • 开源项目分享:Gitee热榜项目 2025年10月第四周 周榜