diff --git a/app/adminapi/controller/v1/Order.php b/app/adminapi/controller/v1/Order.php
index ab93375d..591f9d58 100644
--- a/app/adminapi/controller/v1/Order.php
+++ b/app/adminapi/controller/v1/Order.php
@@ -38,7 +38,7 @@ class Order extends ApiController
->order('o.order_id', 'desc');
if ($is_search) {
- if(!empty($search['user_id'])){
+ if (!empty($search['user_id'])) {
$do = $do->where('o.user_id', $search['user_id']);
}
if (!empty($search['order_sn'])) {
@@ -47,7 +47,7 @@ class Order extends ApiController
if (!empty($search['consignee'])) {
$do = $do->where('o.consignee', 'like', '%' . trim($search['consignee']) . '%');
}
- if(!empty($search['status'])){
+ if (!empty($search['status'])) {
$do = $do->where('o.order_status', '=', $search['status']);
}
}
@@ -60,23 +60,23 @@ class Order extends ApiController
$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 = ''.$SName['ss'][$value['shipping_status']].'';
- }else{
- $ss_status = $SName['ss'][$value['shipping_status']];
+ if ($value['shipping_status'] == 7) {
+ $ss_status = '' . $SName['ss'][$value['shipping_status']] . '';
+ } else {
+ $ss_status = $SName['ss'][$value['shipping_status']];
}
$os_status = $SName['os'][$value['order_status']];
- if($value['pay_status']==3){
- $ps_status = ''.$SName['ps'][$value['pay_status']].'';
- }else{
+ if ($value['pay_status'] == 3) {
+ $ps_status = '' . $SName['ps'][$value['pay_status']] . '';
+ } else {
$ps_status = $SName['ps'][$value['pay_status']];
}
-
- $result[$key]['status'] = $os_status .','. $ps_status .','. $ss_status;
-
- if($value['pay_id']==0){
+
+ $result[$key]['status'] = $os_status . ',' . $ps_status . ',' . $ss_status;
+
+ if ($value['pay_id'] == 0) {
$result[$key]['pay_name'] = '貨到付款';
}
}
@@ -124,7 +124,7 @@ class Order extends ApiController
$SName = getStatusName();
$order_info = Db::name('order_info')
- ->where('order_id', $id)->find();
+ ->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']);
@@ -139,9 +139,9 @@ class Order extends ApiController
$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{
+ 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');
@@ -245,7 +245,7 @@ class Order extends ApiController
$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']);
}
@@ -265,6 +265,7 @@ class Order extends ApiController
return $this->Success('更新成功');
}
+ //變更訂單操作
public function updateOrderAction()
{
$params = input('post.');
@@ -348,10 +349,12 @@ class Order extends ApiController
/* 返回 */
} elseif ($params['op'] == 'pay') {
- /* 標記訂單為已確認、已付款,更新付款時間和已支付金額,如果是貨到付款,同時修改訂單為“收貨確認” */
- $arr['order_id'] = $order['order_id'];
- $arr['order_status'] = $order['order_status'];
- $arr['shipping_status'] = $order['shipping_status'];
+
+ /* 標記訂單為已確認、已付款,更新付款時間和已支付金額 */
+
+ $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();
@@ -396,27 +399,29 @@ class Order extends ApiController
/* 記錄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_id'] = $order['order_id'];
$arr['order_status'] = $order['order_status'];
- $arr['pay_status'] = $order['pay_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){
+ // if ($order['pay_id'] == 0) {
$updateSlashUSer = \app\common\SlashCard::updateUser($order);
- if($updateSlashUSer['code']!=200 && $updateSlashUSer['code']!=201){
+
+ if ($updateSlashUSer['code'] != 200 && $updateSlashUSer['code'] != 201) {
return $this->Error('更新SlashCard失敗');
- }elseif($updateSlashUSer['code']==200){
- $action['action_note'] = '更新Card為付費會員';
- }elseif($updateSlashUSer['code']==201){
- $action['action_note'] = 'Card重覆操作';
+ } 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('更新失敗');
@@ -441,6 +446,16 @@ class Order extends ApiController
$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('更新失敗');
@@ -452,6 +467,8 @@ class Order extends ApiController
$arr['shipping_status'] = SS_SHIPPED_ARRIVE;
// $arr['shipping_time'] = time();
$rtn = $this->updateStatus($arr, $action);
+
+
if (!$rtn) {
return $this->Error('更新失敗');
}
@@ -468,13 +485,12 @@ class Order extends ApiController
} elseif ($params['op'] == 'finish') {
$arr['order_id'] = $order['order_id'];
$arr['order_status'] = OS_FINISHED;
- $arr['pay_status'] = $order['pay_status'];
- $arr['shipping_status'] = $order['shipping_status'];
+ $arr['pay_status'] = PS_PAYED;
+ $arr['shipping_status'] = SS_RECEIVED;
$rtn = $this->updateStatus($arr, $action);
if (!$rtn) {
return $this->Error('更新失敗');
}
-
}
@@ -562,7 +578,6 @@ class Order extends ApiController
$list[] = 'arrive';
}
$list[] = 'prepare';
-
} elseif (PS_UNPAYED == $ps) {
$list[] = 'pay';
@@ -583,7 +598,6 @@ class Order extends ApiController
$list[] = 'arrive';
}
$list[] = 'prepare';
-
} else {
/* 狀態:已確認、付款中 */
$list[] = 'unpay';
@@ -666,7 +680,7 @@ class Order extends ApiController
// /* 售後 */
//操作排序
- $sort_arr = ['confirm', 'pay', 'prepare', 'split', 'to_delivery', 'ship', 'receive', 'unship', 'arrive','unarrive', 'unpay', 'finish' ,'return', 'cancel', 'invalid', 'remove', 'after_service'];
+ $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);
@@ -713,8 +727,8 @@ class Order extends ApiController
$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)){
+
+ if (empty($shipping_data)) {
return;
}
$shipping = new ShippingStrategy('ecpay');
diff --git a/app/common/SlashCard.php b/app/common/SlashCard.php
index a47cdf40..b8f204a4 100644
--- a/app/common/SlashCard.php
+++ b/app/common/SlashCard.php
@@ -13,12 +13,14 @@ class SlashCard
->where('order_id', $order['order_id'])
->where('goods_id', 1)
->find();
+
if ($is_main) {
- $rtn = \app\service\Card::addUser([
+ $params = [
'order_sn' => $order['order_sn'],
'user_id' => Db::name('users')->where('user_id', $order['user_id'])->value('sso_user_id'),
- ]);
+ ];
+ $rtn = \app\service\Card::addUser($params);
if ($rtn['code'] != 200) {
return ['code' => $rtn['code'], 'msg' => '更新slashcard失敗'];
}
@@ -27,4 +29,31 @@ class SlashCard
return ['code' => 201, 'msg' => '訂單無slashcard商品'];
}
}
+
+ public static function cancelUser($order)
+ {
+ //判斷是否為SlashCard商品
+ $is_main = Db::name('order_goods')
+ ->where('order_id', $order['order_id'])
+ ->where('goods_id', 1)
+ ->find();
+
+ if ($is_main){
+
+ $params = [
+ 'order_sn' => $order['order_sn'],
+ 'user_id' => Db::name('users')->where('user_id', $order['user_id'])->value('sso_user_id'),
+ ];
+
+ $rtn = \app\service\Card::cancelUser($params);
+
+ if ($rtn['code'] != 200 && $rtn['code'] != 201) {
+ return ['code' => $rtn['code'], 'msg' => '更新slashcard失敗'];
+ }
+ return $rtn;
+ }else{
+ return ['code' => 201, 'msg' => '訂單無slashcard商品'];
+ }
+ }
+
}
diff --git a/app/common/shipping/EcpayShipping.php b/app/common/shipping/EcpayShipping.php
index 5ffb7305..25983544 100644
--- a/app/common/shipping/EcpayShipping.php
+++ b/app/common/shipping/EcpayShipping.php
@@ -547,6 +547,7 @@ class EcpayShipping implements Ishipping
return FALSE;
}
+ // $result['redirect_url'] = 'http://localhost:5173/m/order/shipping?is_return=1';
$result['redirect_url'] = getUrl() . '/m/order/shipping?is_return=1';
return $result;