mirror of
https://gitee.com/ShopeX/OMS
synced 2026-03-23 02:45:33 +08:00
109 lines
3.7 KiB
PHP
109 lines
3.7 KiB
PHP
<?php
|
|
/**
|
|
* Copyright 2012-2026 ShopeX (https://www.shopex.cn)
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
|
|
class finance_shop{
|
|
|
|
/**
|
|
* 获取淘宝已授权的店铺
|
|
* @access public
|
|
* @param Array $filter 过滤条件
|
|
* @return Array 店铺列表
|
|
*/
|
|
function shop_list($filter){
|
|
if (empty($queue_params)){
|
|
$logObj = kernel::single('finance_tasklog');
|
|
$log_title = '请求交易记录数据';
|
|
$log_type = 'trade_search';
|
|
$status = 'success';
|
|
$msg = '队列参数为空';
|
|
$logObj->write_log($log_title,$log_type,$params,$status,$msg);
|
|
return true;
|
|
}
|
|
|
|
$shop_id = $queue_params['shop_id'];
|
|
$shop_name = $queue_params['shop_name'];
|
|
$node_id = $queue_params['node_id'];
|
|
$start_time = $queue_params['start_time'];
|
|
$end_time = $queue_params['end_time'];
|
|
return $this->request($shop_id,$node_id,$shop_name,$start_time,$end_time,$page=1,$limit=100);
|
|
}
|
|
|
|
/**
|
|
* 请求接口数据
|
|
* @param String $shop_id 店铺ID
|
|
* @param String $shop_name 店铺名称
|
|
* @param Int $node_id 节点ID
|
|
* @param String $start_time 开始时间
|
|
* @param String $end_time 结束时间
|
|
* @param Int $page 请求页码
|
|
* @param Int $limit 请求页码记录数
|
|
*/
|
|
private function request($shop_id,$node_id,$shop_name,$start_time,$end_time,$page=1,$limit=100,$max=1){
|
|
#防止死循环
|
|
if ($max > 9999){
|
|
return true;
|
|
}
|
|
|
|
#组织请求参数
|
|
$api_params = array(
|
|
'start_time' => $start_time,
|
|
'end_time' => $end_time,
|
|
'shop_id' => $shop_id,
|
|
'node_id' => $node_id,
|
|
'shop_name' => $shop_name,
|
|
'page' => $page,
|
|
'limit' => $limit
|
|
);
|
|
|
|
#添加日志:运行中
|
|
$logObj = kernel::single('finance_tasklog');
|
|
$log_type = 'trade_search';
|
|
$log_title = '请求['.$shop_name.']交易记录数据:'.$start_time.'-'.$end_time.'';
|
|
$log_id = $logObj->write_log($log_title,$log_type,$api_params,$status='running');
|
|
|
|
$tradeAPI = kernel::single('finance_rpc_request_trade');
|
|
extract($api_params);
|
|
|
|
#请求接口
|
|
$rs = $tradeAPI->trade_search($shop_id,$start_time,$end_time,$page,$limit);
|
|
if ($rs['rsp'] == 'succ'){
|
|
$record_list = $rs['data']['total_records'];
|
|
#添加账单
|
|
$billObj = kernel::single('finance_rpc_response_func_bill');
|
|
$bill_rs = $billObj->batch_trade_add($record_list,$node_id);
|
|
if ($bill_rs['rsp'] != 'succ'){
|
|
$logObj->update_log($log_id,$bill_rs['msg'],$status='fail');
|
|
return false;
|
|
}else{
|
|
#删除日志
|
|
$logObj->delete($log_id);
|
|
|
|
#请求剩余数据
|
|
$total_page = $rs['data']['total_pages'];
|
|
if ($total_page > $page){
|
|
$this->request($shop_id,$node_id,$shop_name,$start_time,$end_time,++$page,$limit,++$max);
|
|
}else{
|
|
return true;
|
|
}
|
|
}
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
} |