You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

761 lines
29 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
namespace app\adminapi\controller\v1;
use app\adminapi\ApiController;
use think\facade\Db;
use app\common\lib\Aes;
use app\common\shipping\ShippingStrategy;
class Order extends ApiController
{
//取得支付列表
public function list()
{
$params = input('post.');
$page = isset($params['page']) ? $params['page'] : 1;
$size = isset($params['size']) ? $params['size'] : 10;
$search = $params['search'];
$is_search = false;
foreach ($search as $key => $value) {
if (strlen(trim($value)) > 0) {
$is_search = true;
break;
}
}
$do = Db::name('order_info')
->alias('o')
->leftjoin('users u', 'u.user_id=o.user_id')
->leftjoin('payment p', 'p.pay_id=o.pay_id')
->leftjoin('shipping s', 's.shipping_id=o.shipping_id')
->field('o.order_id, o.order_sn, o.add_time, o.order_status, o.shipping_status, o.order_amount, o.money_paid,o.pay_id,o.pay_status, o.consignee, o.address, o.email, o.tel, o.mobile, o.extension_code, o.extension_id, ( o.goods_amount + o.tax + o.shipping_fee + o.insure_fee + o.pay_fee + o.pack_fee + o.card_fee ) AS total_fee, IFNULL(u.user_name, \'匿名用户\') AS buyer,p.pay_name,s.shipping_name')
->page($page, $size)
->order('o.order_id', 'desc');
if ($is_search) {
if (!empty($search['user_id'])) {
$do = $do->where('o.user_id', $search['user_id']);
}
if (!empty($search['order_sn'])) {
$do = $do->where('o.order_sn', 'like', '%' . trim($search['order_sn']) . '%');
}
if (!empty($search['consignee'])) {
$do = $do->where('o.consignee', 'like', '%' . trim($search['consignee']) . '%');
}
if (!empty($search['status'])) {
$do = $do->where('o.order_status', '=', $search['status']);
}
}
$result = $do->select()->toArray();
$SName = getStatusName();
//格式化數據
foreach ($result as $key => $value) {
$result[$key]['add_time'] = date('Y-m-d H:i:s', $value['add_time']);
// $result[$key]['status'] = $SName['os'][$value['order_status']] . ',' . $SName['ps'][$value['pay_status']] . ',' . $SName['ss'][$value['shipping_status']];
if ($value['shipping_status'] == 7) {
$ss_status = '<font color="blue">' . $SName['ss'][$value['shipping_status']] . '</font>';
} else {
$ss_status = $SName['ss'][$value['shipping_status']];
}
$os_status = $SName['os'][$value['order_status']];
if ($value['pay_status'] == 3) {
$ps_status = '<font color="red">' . $SName['ps'][$value['pay_status']] . '</font>';
} else {
$ps_status = $SName['ps'][$value['pay_status']];
}
$result[$key]['status'] = $os_status . ',' . $ps_status . ',' . $ss_status;
if ($value['pay_id'] == 0) {
$result[$key]['pay_name'] = '貨到付款';
}
}
$rtn = [
'total' => $do->count(),
'page' => $page,
'data' => $result,
];
return $this->Success($rtn);
}
public function getCardInfo()
{
$sn = input('sn');
$order = Db::name('order_info')->where('order_sn', $sn)->find();
$info = Db::name('order_goods')
->where('order_id', $order['order_id'])
->where('goods_id', 1)
->value('add_info');
$result = json_decode($info, true);
$aes = new Aes([]);
// if(strlen(trim($info['uniqid']))>0){
// $params = urlencode($aes->encrypt('verify_code='.$user['uniqid']));
// }else{
$user_id = Db::name('users')->where('user_id', $order['user_id'])->value('sso_user_id');
$params = urlencode($aes->encrypt('user_id=' . $user_id));
// }
$result['nfcurl'] = 'https://card.slash1000.com/card/?params=' . $params;
return $this->Success($result);
}
//取得訂單詳情
public function getOrderInfo()
{
$id = input('id');
//取得訂單狀態名稱
$SName = getStatusName();
$order_info = Db::name('order_info')
->where('order_id', $id)->find();
$order_info['goods_item'] = $this->getOrderGoods($id);
$order_info['add_time'] = date('Y-m-d H:i:s', $order_info['add_time']);
if ($order_info['pay_time'] != 0) {
$order_info['pay_time'] = date('Y-m-d H:i:s', $order_info['pay_time']);
} else {
$order_info['pay_time'] = '未支付';
}
if ($order_info['shipping_time'] != 0) {
$order_info['shipping_time'] = date('Y-m-d H:i:s', $order_info['shipping_time']);
} else {
$order_info['shipping_time'] = '未發貨';
}
$order_info['confirm_time'] = date('Y-m-d H:i:s', $order_info['confirm_time']);
if ($order_info['pay_id'] != 0) {
$order_info['pay_name'] = Db::name('payment')->where('pay_id', $order_info['pay_id'])->value('pay_name');
} else {
$order_info['pay_name'] = '貨到付款';
}
$order_info['shipping_name'] = Db::name('shipping')->where('shipping_id', $order_info['shipping_id'])->value('shipping_name');
$order_info['order_status_name'] = $SName['os'][$order_info['order_status']];
$order_info['pay_status_name'] = $SName['ps'][$order_info['pay_status']];
$order_info['shipping_status_name'] = $SName['ss'][$order_info['shipping_status']];
//取得上一筆訂單
$order_info['prev'] = Db::name('order_info')->where('order_id', '<', $id)
->order('order_id desc')
->value('order_id');
//取得下一筆訂單
$order_info['next'] = Db::name('order_info')->where('order_id', '>', $id)
->order('order_id asc')
->value('order_id');
//取得操作功能列表
$order_info['op_list'] = $this->getOperableList($order_info);
return $this->Success($order_info);
}
/**
* 取得訂單商品
* @param array $order
* @return array
*/
private function getOrderGoods($order_id)
{
$goods_list = Db::name('order_goods')
->alias('o')
->leftjoin('products p', 'o.product_id=p.product_id')
->leftjoin('goods g', 'o.goods_id=g.goods_id')
->leftjoin('brand b', 'g.brand_id=b.brand_id')
->field('o.*, g.suppliers_id AS suppliers_id,IF(o.product_id > 0, p.product_number, g.goods_number) AS storage, o.goods_attr, IFNULL(b.brand_name, \'\') AS brand_name, p.product_sn')
->where('order_id', $order_id)
->select()
->toArray();
foreach ($goods_list as $key => $value) {
$goods_list[$key]['subtotal'] = $value['goods_price'] * $value['goods_number'];
}
// while ($row = $GLOBALS['db']->fetchRow($res)) {
// // 虛擬商品支持
// if ($row['is_real'] == 0) {
// /* 取得語言項 */
// $filename = ROOT_PATH . 'plugins/' . $row['extension_code'] . '/languages/common_' . $GLOBALS['_CFG']['lang'] . '.php';
// if (file_exists($filename)) {
// include_once($filename);
// if (!empty($GLOBALS['_LANG'][$row['extension_code'] . '_link'])) {
// $row['goods_name'] = $row['goods_name'] . sprintf($GLOBALS['_LANG'][$row['extension_code'] . '_link'], $row['goods_id'], $order['order_sn']);
// }
// }
// }
// $row['formated_subtotal'] = price_format($row['goods_price'] * $row['goods_number']);
// $row['formated_goods_price'] = price_format($row['goods_price']);
// $goods_attr[] = explode(' ', trim($row['goods_attr'])); //將商品屬性拆分為一個數組
// if ($row['extension_code'] == 'package_buy') {
// $row['storage'] = '';
// $row['brand_name'] = '';
// $row['package_goods_list'] = get_package_goods_list($row['goods_id']);
// }
// //處理貨品id
// $row['product_id'] = empty($row['product_id']) ? 0 : $row['product_id'];
// $goods_list[] = $row;
// }
// $attr = array();
// $arr = array();
// foreach ($goods_attr as $index => $array_val) {
// foreach ($array_val as $value) {
// $arr = explode(':', $value); //以 : 號將屬性拆開
// $attr[$index][] = @array('name' => $arr[0], 'value' => $arr[1]);
// }
// }
// return array('goods_list' => $goods_list, 'attr' => $attr);
return $goods_list;
}
public function getOrderAction()
{
$SName = getStatusName();
$id = input('id');
$order_action = Db::name('order_action')
->where('order_id', $id)
->select()->toArray();
foreach ($order_action as $key => $value) {
$order_action[$key]['order_status'] = $SName['os'][$value['order_status']];
$order_action[$key]['shipping_status'] = $SName['ss'][$value['shipping_status']];
$order_action[$key]['pay_status'] = $SName['ps'][$value['pay_status']];
$order_action[$key]['log_time'] = date('Y-m-d H:i:s', $value['log_time']);
}
return $this->Success($order_action);
}
public function updateOrder()
{
$data = input('post.');
//更新order_info
$action['action_note'] = '';
$rtn = $this->updateStatus($data, $action);
if (!$rtn) {
return $this->Error('更新失敗');
}
return $this->Success('更新成功');
}
//變更訂單操作
public function updateOrderAction()
{
$params = input('post.');
$action['action_note'] = isset($params['action_note']) ? $params['action_note'] : '';
$order = Db::name('order_info')
->where('order_id', $params['order_id'])
->find();
if ($params['op'] == 'confirm') {
$arr = [
'order_id' => $params['order_id'],
'pay_status' => $order['pay_status'],
'shipping_status' => $order['shipping_status'],
'order_status' => 1,
];
$rtn = $this->updateStatus($arr, $action);
if (!$rtn) {
return $this->Error('更新失敗');
}
} elseif ($params['op'] == 'cancel') {
/* 標記訂單為“取消”,記錄取消原因 */
$arr = [
'order_id' => $params['order_id'],
'order_status' => OS_CANCELED,
'pay_status' => $order['pay_status'],
'shipping_status' => $order['shipping_status'],
'to_buyer' => $action['action_note'],
'pay_status' => PS_UNPAYED,
'pay_time' => 0,
];
$rtn = $this->updateStatus($arr, $action);
if (!$rtn) {
return $this->Error('更新失敗');
}
/* todo 處理退款 */
/* 記錄log */
/* 如果使用庫存,且下訂單時減庫存,則增加庫存 */
/* 退還用户餘額、積分、紅包 */
/* 發送郵件 */
} elseif ($params['op'] == 'invalid') {
/* 標記訂單為“無效”,記錄原因 */
$arr = [
'order_id' => $params['order_id'],
'order_status' => OS_INVALID,
'pay_status' => $order['pay_status'],
'shipping_status' => $order['shipping_status'],
'to_buyer' => $action['action_note'],
'pay_status' => PS_UNPAYED,
'pay_time' => 0,
];
$rtn = $this->updateStatus($arr, $action);
if (!$rtn) {
return $this->Error('更新失敗');
}
/* 如果使用庫存,且下訂單時減庫存,則增加庫存 */
/* 發送郵件 */
} elseif ($params['op'] == 'remove') {
/* 刪除訂單 */
Db::name('order_info')->where('order_id', $params['order_id'])->delete();
Db::name('order_goods')->where('order_id', $params['order_id'])->delete();
Db::name('order_action')->where('order_id', $params['order_id'])->delete();
// $action_array = array('delivery', 'back');
// del_delivery($order_id, $action_array);
/* todo 記錄日誌 */
// admin_log($order['order_sn'], 'remove', 'order');
/* 返回 */
} elseif ($params['op'] == 'pay') {
/* 標記訂單為已確認、已付款,更新付款時間和已支付金額 */
$arr['order_id'] = $order['order_id'];
$arr['order_status'] = $order['order_status'];
$arr['shipping_status'] = $order['shipping_status'];
if ($order['order_status'] != OS_CONFIRMED) {
$arr['order_status'] = OS_CONFIRMED;
$arr['confirm_time'] = time();
}
$arr['pay_status'] = PS_PAYED;
$arr['pay_time'] = time();
// $arr['money_paid'] = $order['money_paid'] + $order['order_amount'];
// $arr['order_amount'] = 0;
// $payment = payment_info($order['pay_id']);
//貨到付款
// if ($payment['is_cod']) {
// $arr['shipping_status'] = SS_RECEIVED;
// $order['shipping_status'] = SS_RECEIVED;
// }
$rtn = $this->updateStatus($arr, $action);
if (!$rtn) {
return $this->Error('更新失敗');
}
/* 記錄log */
// order_action($order['order_sn'], OS_CONFIRMED, $order['shipping_status'], PS_PAYED, $action_note);
} elseif ($params['op'] == 'unpay') {
/* 標記訂單為已確認、已付款,更新付款時間和已支付金額,如果是貨到付款,同時修改訂單為“收貨確認” */
$arr['order_id'] = $order['order_id'];
$arr['order_status'] = $order['order_status'];
$arr['shipping_status'] = SS_UNSHIPPED;
$arr['pay_status'] = PS_UNPAYED;
$arr['pay_time'] = 0;
// $arr['money_paid'] = $order['money_paid'] + $order['order_amount'];
// $arr['order_amount'] = 0;
// $payment = payment_info($order['pay_id']);
//貨到付款
// if ($payment['is_cod']) {
// $arr['shipping_status'] = SS_RECEIVED;
// $order['shipping_status'] = SS_RECEIVED;
// }
$rtn = $this->updateStatus($arr, $action);
if (!$rtn) {
return $this->Error('更新失敗');
}
/* 記錄log */
// order_action($order['order_sn'], OS_CONFIRMED, $order['shipping_status'], PS_PAYED, $action_note);
} elseif ($params['op'] == 'printcard') {
$arr['order_id'] = $order['order_id'];
$arr['order_status'] = $order['order_status'];
$arr['pay_status'] = $order['pay_status'];
if ($order['order_status'] != OS_CONFIRMED) {
$arr['order_status'] = OS_CONFIRMED;
$arr['confirm_time'] = time();
}
$arr['shipping_status'] = 5;
$arr['shipping_time'] = time();
//檢查是否貨到付款是的話更新card的資料
// if ($order['pay_id'] == 0) {
$updateSlashUSer = \app\common\SlashCard::updateUser($order);
if ($updateSlashUSer['code'] != 200 && $updateSlashUSer['code'] != 201) {
return $this->Error('更新SlashCard失敗');
} elseif ($updateSlashUSer['code'] == 200) {
$action['action_note'] = '配貨完成,更新Card為付費會員,到期日:'.date('Y-m-d',$updateSlashUSer['data']);
} elseif ($updateSlashUSer['code'] == 201) {
$action['action_note'] = '配貨完成,會員期限已更新過';
}
// }
$rtn = $this->updateStatus($arr, $action);
if (!$rtn) {
return $this->Error('更新失敗');
}
} elseif ($params['op'] == 'ship') {
$arr['order_id'] = $order['order_id'];
$arr['order_status'] = $order['order_status'];
$arr['pay_status'] = $order['pay_status'];
if ($order['order_status'] != OS_CONFIRMED) {
$arr['order_status'] = OS_CONFIRMED;
$arr['confirm_time'] = time();
}
$arr['shipping_status'] = SS_SHIPPED;
$arr['shipping_time'] = time();
$rtn = $this->updateStatus($arr, $action);
if (!$rtn) {
return $this->Error('更新失敗');
}
} elseif ($params['op'] == 'unship') {
$arr['order_id'] = $order['order_id'];
$arr['order_status'] = $order['order_status'];
$arr['pay_status'] = $order['pay_status'];
$arr['shipping_status'] = SS_UNSHIPPED;
$arr['shipping_time'] = 0;
$updateSlashUSer = \app\common\SlashCard::cancelUser($order);
if ($updateSlashUSer['code'] != 200 && $updateSlashUSer['code'] != 201) {
return $this->Error('更新SlashCard失敗');
} elseif ($updateSlashUSer['code'] == 200) {
$action['action_note'] = '取消配貨,更新Card會員資料,到期日:'.date('Y-m-d',$updateSlashUSer['data']);
} elseif ($updateSlashUSer['code'] == 201) {
$action['action_note'] = '取消配貨,會員期限未更新過';
}
$rtn = $this->updateStatus($arr, $action);
if (!$rtn) {
return $this->Error('更新失敗');
}
} elseif ($params['op'] == 'arrive') {
$arr['order_id'] = $order['order_id'];
$arr['order_status'] = $order['order_status'];
$arr['pay_status'] = $order['pay_status'];
$arr['shipping_status'] = SS_SHIPPED_ARRIVE;
// $arr['shipping_time'] = time();
$rtn = $this->updateStatus($arr, $action);
if (!$rtn) {
return $this->Error('更新失敗');
}
} elseif ($params['op'] == 'unarrive') {
$arr['order_id'] = $order['order_id'];
$arr['order_status'] = $order['order_status'];
$arr['pay_status'] = $order['pay_status'];
$arr['shipping_status'] = SS_SHIPPED_ING;
// $arr['shipping_time'] = 0;
$rtn = $this->updateStatus($arr, $action);
if (!$rtn) {
return $this->Error('更新失敗');
}
} elseif ($params['op'] == 'finish') {
$arr['order_id'] = $order['order_id'];
$arr['order_status'] = OS_FINISHED;
$arr['pay_status'] = PS_PAYED;
$arr['shipping_status'] = SS_RECEIVED;
$rtn = $this->updateStatus($arr, $action);
if (!$rtn) {
return $this->Error('更新失敗');
}
}
return $this->Success('更新成功');
}
/**
* 返回某個訂單可執行的操作列表,包括權限判斷
* @param array $order 訂單信息 order_status, shipping_status, pay_status
* @param bool $is_cod 支付方式是否貨到付款
* @return array 可執行的操作 confirm, pay, unpay, prepare, ship, unship, receive, cancel, invalid, return, drop
* 格式 array('confirm' => true, 'pay' => true)
*/
private function getOperableList($order)
{
/* 取得訂單狀態、發貨狀態、付款狀態 */
$os = $order['order_status'];
$ss = $order['shipping_status'];
$ps = $order['pay_status'];
// /* 取得訂單操作權限 */
// $actions = $_SESSION['action_list'];
// if ($actions == 'all') {
// $priv_list = array('os' => true, 'ss' => true, 'ps' => true, 'edit' => true);
// } else {
// $actions = ',' . $actions . ',';
// $priv_list = array(
// 'os' => strpos($actions, ',order_os_edit,') !== false,
// 'ss' => strpos($actions, ',order_ss_edit,') !== false,
// 'ps' => strpos($actions, ',order_ps_edit,') !== false,
// 'edit' => strpos($actions, ',order_edit,') !== false
// );
// }
$priv_list = [
'os' => true,
'ss' => true,
'ps' => true,
'edit' => true
];
// /* 取得訂單支付方式是否貨到付款 */
// $payment = payment_info($order['pay_id']);
// $is_cod = $payment['is_cod'] == 1;
$is_cod = 0;
/* 根據狀態返回可執行操作 */
$list = [];
if (OS_UNCONFIRMED == $os) {
/* 狀態:未確認 => 未付款、未發貨 */
$list[] = 'confirm';
$list[] = 'invalid';
$list[] = 'cancel';
// if ($is_cod) {
// /* 貨到付款 */
// if ($priv_list['ss']) {
// $list['prepare'] = true; // 配貨
// $list['split'] = true; // 分單
// }
// } else {
// /* 不是貨到付款 */
// if ($priv_list['ps']) {
// $list['pay'] = true; // 付款
// }
// }
} elseif (OS_CONFIRMED == $os) {
/* 狀態:已確認 */
if (PS_PAYED == $ps) {
/* 狀態:已確認、已付款 */
$list[] = 'unpay';
if (SS_UNSHIPPED == $ss || SS_PREPARING == $ss) {
/* 狀態:已確認、已付款、未發貨(配貨中)*/
$list[] = 'ship';
} elseif (SS_SHIPPED_ING == $ss) {
/* 狀態:已確認、未付款、發貨中 */
$list[] = 'unship';
$list[] = 'arrive';
} elseif (SS_SHIPPED_ARRIVE == $ss) {
/* 狀態:已確認、未付款、發貨中 */
$list[] = 'unship';
$list[] = 'unarrive';
} else {
/* 狀態:已確認、已付款和付款中、已發貨或已收貨 */
$list[] = 'unship';
$list[] = 'arrive';
}
$list[] = 'prepare';
} elseif (PS_UNPAYED == $ps) {
$list[] = 'pay';
if (SS_UNSHIPPED == $ss || SS_PREPARING == $ss) {
/* 狀態:已確認、已付款、未發貨(配貨中)*/
$list[] = 'ship';
} elseif (SS_SHIPPED_ING == $ss) {
/* 狀態:已確認、未付款、發貨中 */
$list[] = 'unship';
$list[] = 'arrive';
} elseif (SS_SHIPPED_ARRIVE == $ss) {
/* 狀態:已確認、未付款、發貨中 */
$list[] = 'unship';
$list[] = 'unarrive';
} else {
/* 狀態:已確認、已付款和付款中、已發貨或已收貨 */
$list[] = 'unship';
$list[] = 'arrive';
}
$list[] = 'prepare';
} else {
/* 狀態:已確認、付款中 */
$list[] = 'unpay';
$list[] = 'pay';
if (SS_UNSHIPPED == $ss || SS_PREPARING == $ss) {
/* 狀態:已確認、已付款、未發貨(配貨中)*/
$list[] = 'ship';
} elseif (SS_SHIPPED_ING == $ss) {
/* 狀態:已確認、未付款、發貨中 */
$list[] = 'unship';
$list[] = 'arrive';
} elseif (SS_SHIPPED_ARRIVE == $ss) {
/* 狀態:已確認、未付款、發貨中 */
$list[] = 'unship';
$list[] = 'unarrive';
} else {
/* 狀態:已確認、已付款和付款中、已發貨或已收貨 */
$list[] = 'unship';
$list[] = 'arrive';
}
$list[] = 'prepare';
}
if ($priv_list['os']) {
$list[] = 'finish'; //完成
$list[] = 'cancel'; // 取消
$list[] = 'invalid'; // 無效
}
} elseif (OS_CANCELED == $os) {
/* 狀態:取消 */
if ($priv_list['os']) {
$list[] = 'confirm';
}
if ($priv_list['edit']) {
$list[] = 'remove';
}
} elseif (OS_INVALID == $os) {
/* 狀態:無效 */
if ($priv_list['os']) {
$list[] = 'confirm';
}
if ($priv_list['edit']) {
$list[] = 'remove';
}
} elseif (OS_FINISHED == $os) {
/* 狀態:完成 */
$list[] = 'return';
$list[] = 'after_service';
} else {
$list[] = 'cancel';
$list[] = 'invalid';
}
// } elseif (OS_RETURNED == $os) {
// /* 狀態:退貨 */
// if ($priv_list['os']) {
// $list['confirm'] = true;
// }
// }
// /* 修正發貨操作 */
// if (!empty($list['split'])) {
// /* 如果是團購活動且未處理成功,不能發貨 */
// if ($order['extension_code'] == 'group_buy') {
// include_once(ROOT_PATH . 'includes/lib_goods.php');
// $group_buy = group_buy_info(intval($order['extension_id']));
// if ($group_buy['status'] != GBS_SUCCEED) {
// unset($list['split']);
// unset($list['to_delivery']);
// }
// }
// /* 如果部分發貨 不允許 取消 訂單 */
// if (order_deliveryed($order['order_id'])) {
// $list['return'] = true; // 退貨(包括退款)
// unset($list['cancel']); // 取消
// }
// }
// /* 售後 */
//操作排序
$sort_arr = ['confirm', 'pay', 'prepare', 'split', 'to_delivery', 'ship', 'receive', 'unship', 'arrive', 'unarrive', 'unpay', 'finish', 'return', 'cancel', 'invalid', 'remove', 'after_service'];
// 使用 array_intersect 函數找到兩個 array 的交集
$intersection = array_intersect($list, $sort_arr);
// 使用 array_uintersect 函數按照另一個 array 的順序排序交集
$result = array_uintersect($sort_arr, $intersection, 'strcasecmp');
$result = array_values($result);
return $result;
}
private function updateStatus($data, $action)
{
try {
if (!isset($data['user_id']) && isset($data['user_sn'])) {
$data['order_id'] = Db::name('order_info')->where('order_sn', $data['order_sn'])->value('order_id');
}
Db::name('order_info')
->where('order_id', $data['order_id'])
->update($data);
//更新order_action
Db::name('order_action')
->insert([
'order_id' => $data['order_id'],
'action_user' => 'admin',
'order_status' => $data['order_status'],
'pay_status' => $data['pay_status'],
'shipping_status' => $data['shipping_status'],
'action_note' => $action['action_note'],
'log_time' => time()
]);
} catch (\Exception $e) {
return false;
}
return true;
}
public function printlabel()
{
$order_id = input('order_id');
$order = Db::name('order_info')->where('order_id', $order_id)->find();
$shipping_data = json_decode($order['shipping_data'], true);
if (empty($shipping_data)) {
return;
}
$shipping = new ShippingStrategy('ecpay');
$data = [
'AllPayLogisticsID' => $shipping_data['AllPayLogisticsID'],
'CVSPaymentNo' => $shipping_data['CVSPaymentNo'],
'type' => $shipping_data['LogisticsSubType']
];
switch ($data['type']) {
case 'UNIMARTC2C':
$data['CVSValidationNo'] = $shipping_data['CVSValidationNo'];
break;
case 'FAMIC2C':
break;
case 'HILIFEC2C':
break;
case 'OKMARTC2C':
break;
default:
break;
}
$result = $shipping->printLabel($data);
return $result;
}
}