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;