|
@@ -10,7 +10,7 @@ define('BASE_ROOT_PATH', str_replace('/test', '', dirname(__FILE__)));
|
|
|
require_once(BASE_ROOT_PATH . '/global.php');
|
|
|
require_once(BASE_CORE_PATH . '/lrlz.php');
|
|
|
require_once(BASE_ROOT_PATH . '/fooder.php');
|
|
|
-
|
|
|
+require_once(BASE_HELPER_PATH . '/PHPExcel/PHPExcel.php');
|
|
|
|
|
|
class TestExportOrder extends TestCase
|
|
|
{
|
|
@@ -22,7 +22,7 @@ class TestExportOrder extends TestCase
|
|
|
public function testXingzhiyu()
|
|
|
{
|
|
|
$end_time = strtotime("2021-06-15");
|
|
|
- $this->exoprt(10132,null,$end_time);
|
|
|
+ $this->exoprt(1093,null,$end_time);
|
|
|
}
|
|
|
|
|
|
public function exoprt($mchid,$start_time = null,$end_time = null)
|
|
@@ -74,7 +74,6 @@ class TestExportOrder extends TestCase
|
|
|
fclose($fp);
|
|
|
}
|
|
|
|
|
|
-<<<<<<< HEAD
|
|
|
public function testRefillTask()
|
|
|
{
|
|
|
$model_refill_task = Model('refill_task');
|
|
@@ -83,39 +82,14 @@ class TestExportOrder extends TestCase
|
|
|
if (empty($task)) return false;
|
|
|
|
|
|
$task_id = $task['task_id'];
|
|
|
- $task_condition = unserialize($task['task_condition']);
|
|
|
- if (empty($task_condition)) {
|
|
|
+ $task_params = unserialize($task['task_params']);
|
|
|
+ if (empty($task_params)) {
|
|
|
Log::record("refill task condition unserialize err, task_id:{$task_id}");
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- $type = $task['type'];
|
|
|
- $cid = $task['cid'];
|
|
|
- if ($type === 'merchant') {
|
|
|
- $condition['refill_order.mchid'] = $cid;
|
|
|
- } elseif ($type === 'provider') {
|
|
|
- $condition['vr_order.store_id'] = $cid;
|
|
|
- } else {
|
|
|
- Log::record("refill task type err, task_id:{$task_id}");
|
|
|
- return false;
|
|
|
- }
|
|
|
- $order_time_type = $task_condition['order_time_type'];
|
|
|
- $start_unixtime = $task_condition['start_unixtime'];
|
|
|
- $end_unixtime = $task_condition['end_unixtime'];
|
|
|
- $order_state = $task_condition['order_state'];
|
|
|
- if ($start_unixtime > 0 && $end_unixtime > $start_unixtime) {
|
|
|
- $condition["refill_order.{$order_time_type}"] = [['egt', $start_unixtime], ['lt', $end_unixtime], 'and'];
|
|
|
- $condition['vr_order.add_time'] = ['egt', $start_unixtime-1];
|
|
|
- } elseif ($start_unixtime > 0) {
|
|
|
- $condition["refill_order.{$order_time_type}"] = ['egt', $start_unixtime];
|
|
|
- $condition['vr_order.add_time'] = ['egt', $start_unixtime-1];
|
|
|
- }
|
|
|
- if (in_array($order_state, ['0', '10', '20', '30', '40'], true)) {
|
|
|
- $condition['order_state'] = $order_state;
|
|
|
- }
|
|
|
-
|
|
|
$model_refill_task->Dispose($task_id);
|
|
|
- [$state, $task_result] = $this->order_export($condition, $type, $task_id);
|
|
|
+ [$state, $task_result] = $this->order_export($task_params, $task_id);
|
|
|
if ($state) {
|
|
|
$model_refill_task->DisposeFinish($task_id, $task_result);
|
|
|
} else {
|
|
@@ -127,26 +101,33 @@ class TestExportOrder extends TestCase
|
|
|
/**
|
|
|
* @throws PHPExcel_Exception
|
|
|
*/
|
|
|
- private function order_export($condition, $type, $task_id)
|
|
|
+ private function order_export($condition, $task_id)
|
|
|
{
|
|
|
- $orders = $this->getAllOrders($condition);
|
|
|
- if(empty($orders)) {
|
|
|
+ $orders = Model('refill_order')->getAllOrders($condition);
|
|
|
+ if (empty($orders)) {
|
|
|
return [false, '统计数据为空'];
|
|
|
}
|
|
|
$orders = $this->orderFormat($orders);
|
|
|
$objPHPExcel = new PHPExcel();
|
|
|
|
|
|
- if ($type === 'merchant') {
|
|
|
- $column_keys = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K'];
|
|
|
- $column_values = ['商户号', '客户订单号', '平台单号', '面额', '充值卡号', '充值卡类型', '下单日期', '完成日期', '官方流水号', '订单状态', '扣款金额'];
|
|
|
- $data_keys = ['mchid', 'mch_order', 'order_sn', 'refill_amount', 'card_no', 'card_type_text', 'order_time_text', 'notify_time_text', 'official_sn', 'order_state_text', 'mch_amount'];
|
|
|
- } elseif ($type === 'provider') {
|
|
|
- $column_keys = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'];
|
|
|
- $column_values = ['上游订单号', '平台单号', '面额', '充值卡号', '充值卡类型', '下单日期', '完成日期', '官方流水号', '订单状态', '扣款金额'];
|
|
|
- $data_keys = ['ch_trade_no', 'order_sn', 'refill_amount', 'card_no', 'card_type_text', 'order_time_text', 'notify_time_text', 'official_sn', 'order_state_text', 'channel_amount'];
|
|
|
+ $column_values = ['平台单号', '面额', '充值卡号', '充值卡类型', '下单日期', '完成日期', '官方流水号', '订单状态', '扣款金额'];
|
|
|
+ $data_keys = ['order_sn', 'refill_amount', 'card_no', 'card_type_text', 'order_time_text', 'notify_time_text', 'official_sn', 'order_state_text', 'mch_amount'];
|
|
|
+ if (!empty($condition['refill_order.mchid'])) {
|
|
|
+ $column_values = array_merge(['商户号', '商户订单号'], $column_values);
|
|
|
+ $data_keys = array_merge(['mchid', 'mch_order'], $data_keys);
|
|
|
+ } elseif (!empty($condition['vr_order.store_id'])) {
|
|
|
+ $column_values = array_merge(['上游订单号'], $column_values);
|
|
|
+ $data_keys = array_merge(['ch_trade_no'], $data_keys);
|
|
|
} else {
|
|
|
- return [false, '主体类型错误'];
|
|
|
+ $column_values = array_merge([], $column_values);
|
|
|
+ $data_keys = array_merge([], $data_keys);
|
|
|
}
|
|
|
+ $column_key = 'A';
|
|
|
+ for($index=0;$index<count($column_values);$index++){
|
|
|
+ $column_keys[] = $column_key;
|
|
|
+ $column_key++;
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
$objPHPExcel->setActiveSheetIndex(0);
|
|
|
$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial')->setSize(10);
|
|
@@ -158,17 +139,17 @@ class TestExportOrder extends TestCase
|
|
|
|
|
|
foreach ($orders as $k => $order) {
|
|
|
foreach ($column_keys as $key => $column_key) {
|
|
|
- $field = $column_key.($k+2);
|
|
|
+ $field = $column_key . ($k + 2);
|
|
|
$objPHPExcel->getActiveSheet()->setCellValueExplicit($field, $order[$data_keys[$key]],
|
|
|
PHPExcel_Cell_DataType::TYPE_STRING);
|
|
|
}
|
|
|
}
|
|
|
try {
|
|
|
$path = BASE_ROOT_PATH . "/data/upload/task/";
|
|
|
- if(!is_dir($path)){
|
|
|
+ if (!is_dir($path)) {
|
|
|
mkdir($path, 0755);
|
|
|
}
|
|
|
- $filename = date('YmdHis',time())."-任务导出-任务ID:{$task_id}.xlsx";
|
|
|
+ $filename = date('YmdHis', time()) . "-任务导出-任务ID:{$task_id}.xlsx";
|
|
|
|
|
|
$file_path = $path . $filename;
|
|
|
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
|
|
@@ -180,78 +161,28 @@ class TestExportOrder extends TestCase
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private function getAllOrders($condition): array
|
|
|
- {
|
|
|
- $len = 1000;
|
|
|
-
|
|
|
- $i = 0;
|
|
|
- $orders = [];
|
|
|
- while (true)
|
|
|
- {
|
|
|
- $start = $i * $len;
|
|
|
- $items = Model('')->table('refill_order,vr_order')
|
|
|
- ->field('refill_order.*,vr_order.order_state')
|
|
|
- ->join('inner')
|
|
|
- ->on('refill_order.order_id=vr_order.order_id')
|
|
|
- ->where($condition)
|
|
|
- ->order('refill_order.order_time desc')
|
|
|
- ->limit("{$start},{$len}")
|
|
|
- ->select();
|
|
|
- $orders = array_merge($orders,$items);
|
|
|
- if (empty($items) || count($items) < $len) {
|
|
|
- break;
|
|
|
- }
|
|
|
- $i++;
|
|
|
- }
|
|
|
- return $orders;
|
|
|
- }
|
|
|
-
|
|
|
private function orderFormat($orders): array
|
|
|
{
|
|
|
$card_type_texts = [mtopcard\PetroChinaCard => '中石油', mtopcard\SinopecCard => '中石化', mtopcard\ChinaMobileCard => '中国移动', mtopcard\ChinaUnicomCard => '中国联通', mtopcard\ChinaTelecomCard => '中国电信'];
|
|
|
- $orderState = function ($order_info) {
|
|
|
- $is_retrying = $order_info['is_retrying'];
|
|
|
- switch ($order_info['order_state']) {
|
|
|
- case ORDER_STATE_CANCEL:
|
|
|
- if ($is_retrying) {
|
|
|
- $order_state = '重试中';
|
|
|
- } else {
|
|
|
- $order_state = '已取消';
|
|
|
- }
|
|
|
- break;
|
|
|
- case ORDER_STATE_NEW:
|
|
|
- $order_state = '待付款';
|
|
|
- break;
|
|
|
- case ORDER_STATE_PAY:
|
|
|
- $order_state = '待发货';
|
|
|
- break;
|
|
|
- case ORDER_STATE_SEND:
|
|
|
- $order_state = '待收货';
|
|
|
- break;
|
|
|
- case ORDER_STATE_SUCCESS:
|
|
|
- $order_state = '交易完成';
|
|
|
- break;
|
|
|
- default :
|
|
|
- $order_state = '未知状态';
|
|
|
- }
|
|
|
- return $order_state;
|
|
|
- };
|
|
|
foreach($orders as $key => $order)
|
|
|
{
|
|
|
$orders[$key]['card_type_text'] = $card_type_texts[$order['card_type']];
|
|
|
$orders[$key]['order_time_text'] = $order['order_time'] ? date('Y-m-d H:i:s', $order['order_time']) : '';
|
|
|
$orders[$key]['notify_time_text'] = $order['notify_time'] ? date('Y-m-d H:i:s', $order['notify_time']) : '';
|
|
|
- $orders[$key]['order_state_text'] = $orderState($order);
|
|
|
+ $orders[$key]['order_state_text'] = orderState($order);
|
|
|
}
|
|
|
return $orders;
|
|
|
}
|
|
|
|
|
|
-=======
|
|
|
->>>>>>> raccount
|
|
|
public function testStrSer()
|
|
|
{
|
|
|
$str = 'a:3:{s:11:"is_transfer";b:1;s:11:"card_states";a:2:{i:0;i:0;i:1;i:5;}s:10:"card_types";a:1:{i:0;i:4;}}';
|
|
|
$arr = unserialize($str);
|
|
|
+
|
|
|
+ $j = 'A';
|
|
|
+ for($index=0;$index<10;$index++){
|
|
|
+ $j++;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|