|
|
|
@ -38,7 +38,7 @@ class Order extends ApiController
|
|
|
|
->order('o.order_id', 'desc');
|
|
|
|
->order('o.order_id', 'desc');
|
|
|
|
|
|
|
|
|
|
|
|
if ($is_search) {
|
|
|
|
if ($is_search) {
|
|
|
|
if(!empty($search['user_id'])){
|
|
|
|
if (!empty($search['user_id'])) {
|
|
|
|
$do = $do->where('o.user_id', $search['user_id']);
|
|
|
|
$do = $do->where('o.user_id', $search['user_id']);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (!empty($search['order_sn'])) {
|
|
|
|
if (!empty($search['order_sn'])) {
|
|
|
|
@ -47,7 +47,7 @@ class Order extends ApiController
|
|
|
|
if (!empty($search['consignee'])) {
|
|
|
|
if (!empty($search['consignee'])) {
|
|
|
|
$do = $do->where('o.consignee', 'like', '%' . trim($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']);
|
|
|
|
$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]['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']];
|
|
|
|
// $result[$key]['status'] = $SName['os'][$value['order_status']] . ',' . $SName['ps'][$value['pay_status']] . ',' . $SName['ss'][$value['shipping_status']];
|
|
|
|
|
|
|
|
|
|
|
|
if($value['shipping_status']==7){
|
|
|
|
if ($value['shipping_status'] == 7) {
|
|
|
|
$ss_status = '<font color="blue">'.$SName['ss'][$value['shipping_status']].'</font>';
|
|
|
|
$ss_status = '<font color="blue">' . $SName['ss'][$value['shipping_status']] . '</font>';
|
|
|
|
}else{
|
|
|
|
} else {
|
|
|
|
$ss_status = $SName['ss'][$value['shipping_status']];
|
|
|
|
$ss_status = $SName['ss'][$value['shipping_status']];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$os_status = $SName['os'][$value['order_status']];
|
|
|
|
$os_status = $SName['os'][$value['order_status']];
|
|
|
|
|
|
|
|
|
|
|
|
if($value['pay_status']==3){
|
|
|
|
if ($value['pay_status'] == 3) {
|
|
|
|
$ps_status = '<font color="red">'.$SName['ps'][$value['pay_status']].'</font>';
|
|
|
|
$ps_status = '<font color="red">' . $SName['ps'][$value['pay_status']] . '</font>';
|
|
|
|
}else{
|
|
|
|
} else {
|
|
|
|
$ps_status = $SName['ps'][$value['pay_status']];
|
|
|
|
$ps_status = $SName['ps'][$value['pay_status']];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$result[$key]['status'] = $os_status .','. $ps_status .','. $ss_status;
|
|
|
|
$result[$key]['status'] = $os_status . ',' . $ps_status . ',' . $ss_status;
|
|
|
|
|
|
|
|
|
|
|
|
if($value['pay_id']==0){
|
|
|
|
if ($value['pay_id'] == 0) {
|
|
|
|
$result[$key]['pay_name'] = '貨到付款';
|
|
|
|
$result[$key]['pay_name'] = '貨到付款';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -124,7 +124,7 @@ class Order extends ApiController
|
|
|
|
$SName = getStatusName();
|
|
|
|
$SName = getStatusName();
|
|
|
|
|
|
|
|
|
|
|
|
$order_info = Db::name('order_info')
|
|
|
|
$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['goods_item'] = $this->getOrderGoods($id);
|
|
|
|
$order_info['add_time'] = date('Y-m-d H:i:s', $order_info['add_time']);
|
|
|
|
$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['shipping_time'] = '未發貨';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$order_info['confirm_time'] = date('Y-m-d H:i:s', $order_info['confirm_time']);
|
|
|
|
$order_info['confirm_time'] = date('Y-m-d H:i:s', $order_info['confirm_time']);
|
|
|
|
if($order_info['pay_id']!=0){
|
|
|
|
if ($order_info['pay_id'] != 0) {
|
|
|
|
$order_info['pay_name'] = Db::name('payment')->where('pay_id', $order_info['pay_id'])->value('pay_name');
|
|
|
|
$order_info['pay_name'] = Db::name('payment')->where('pay_id', $order_info['pay_id'])->value('pay_name');
|
|
|
|
}else{
|
|
|
|
} else {
|
|
|
|
$order_info['pay_name'] = '貨到付款';
|
|
|
|
$order_info['pay_name'] = '貨到付款';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$order_info['shipping_name'] = Db::name('shipping')->where('shipping_id', $order_info['shipping_id'])->value('shipping_name');
|
|
|
|
$order_info['shipping_name'] = Db::name('shipping')->where('shipping_id', $order_info['shipping_id'])->value('shipping_name');
|
|
|
|
@ -265,6 +265,7 @@ class Order extends ApiController
|
|
|
|
return $this->Success('更新成功');
|
|
|
|
return $this->Success('更新成功');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//變更訂單操作
|
|
|
|
public function updateOrderAction()
|
|
|
|
public function updateOrderAction()
|
|
|
|
{
|
|
|
|
{
|
|
|
|
$params = input('post.');
|
|
|
|
$params = input('post.');
|
|
|
|
@ -348,10 +349,12 @@ class Order extends ApiController
|
|
|
|
|
|
|
|
|
|
|
|
/* 返回 */
|
|
|
|
/* 返回 */
|
|
|
|
} elseif ($params['op'] == 'pay') {
|
|
|
|
} 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) {
|
|
|
|
if ($order['order_status'] != OS_CONFIRMED) {
|
|
|
|
$arr['order_status'] = OS_CONFIRMED;
|
|
|
|
$arr['order_status'] = OS_CONFIRMED;
|
|
|
|
$arr['confirm_time'] = time();
|
|
|
|
$arr['confirm_time'] = time();
|
|
|
|
@ -396,9 +399,9 @@ class Order extends ApiController
|
|
|
|
/* 記錄log */
|
|
|
|
/* 記錄log */
|
|
|
|
// order_action($order['order_sn'], OS_CONFIRMED, $order['shipping_status'], PS_PAYED, $action_note);
|
|
|
|
// order_action($order['order_sn'], OS_CONFIRMED, $order['shipping_status'], PS_PAYED, $action_note);
|
|
|
|
} elseif ($params['op'] == 'printcard') {
|
|
|
|
} elseif ($params['op'] == 'printcard') {
|
|
|
|
$arr['order_id'] = $order['order_id'];
|
|
|
|
$arr['order_id'] = $order['order_id'];
|
|
|
|
$arr['order_status'] = $order['order_status'];
|
|
|
|
$arr['order_status'] = $order['order_status'];
|
|
|
|
$arr['pay_status'] = $order['pay_status'];
|
|
|
|
$arr['pay_status'] = $order['pay_status'];
|
|
|
|
if ($order['order_status'] != OS_CONFIRMED) {
|
|
|
|
if ($order['order_status'] != OS_CONFIRMED) {
|
|
|
|
$arr['order_status'] = OS_CONFIRMED;
|
|
|
|
$arr['order_status'] = OS_CONFIRMED;
|
|
|
|
$arr['confirm_time'] = time();
|
|
|
|
$arr['confirm_time'] = time();
|
|
|
|
@ -407,16 +410,18 @@ class Order extends ApiController
|
|
|
|
$arr['shipping_time'] = time();
|
|
|
|
$arr['shipping_time'] = time();
|
|
|
|
|
|
|
|
|
|
|
|
//檢查是否貨到付款,是的話更新card的資料
|
|
|
|
//檢查是否貨到付款,是的話更新card的資料
|
|
|
|
if($order['pay_id']==0){
|
|
|
|
// if ($order['pay_id'] == 0) {
|
|
|
|
$updateSlashUSer = \app\common\SlashCard::updateUser($order);
|
|
|
|
$updateSlashUSer = \app\common\SlashCard::updateUser($order);
|
|
|
|
if($updateSlashUSer['code']!=200 && $updateSlashUSer['code']!=201){
|
|
|
|
|
|
|
|
|
|
|
|
if ($updateSlashUSer['code'] != 200 && $updateSlashUSer['code'] != 201) {
|
|
|
|
return $this->Error('更新SlashCard失敗');
|
|
|
|
return $this->Error('更新SlashCard失敗');
|
|
|
|
}elseif($updateSlashUSer['code']==200){
|
|
|
|
} elseif ($updateSlashUSer['code'] == 200) {
|
|
|
|
$action['action_note'] = '更新Card為付費會員';
|
|
|
|
$action['action_note'] = '配貨完成,更新Card為付費會員,到期日:'.date('Y-m-d',$updateSlashUSer['data']);
|
|
|
|
}elseif($updateSlashUSer['code']==201){
|
|
|
|
} elseif ($updateSlashUSer['code'] == 201) {
|
|
|
|
$action['action_note'] = 'Card重覆操作';
|
|
|
|
$action['action_note'] = '配貨完成,會員期限已更新過';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
$rtn = $this->updateStatus($arr, $action);
|
|
|
|
$rtn = $this->updateStatus($arr, $action);
|
|
|
|
if (!$rtn) {
|
|
|
|
if (!$rtn) {
|
|
|
|
return $this->Error('更新失敗');
|
|
|
|
return $this->Error('更新失敗');
|
|
|
|
@ -441,6 +446,16 @@ class Order extends ApiController
|
|
|
|
$arr['pay_status'] = $order['pay_status'];
|
|
|
|
$arr['pay_status'] = $order['pay_status'];
|
|
|
|
$arr['shipping_status'] = SS_UNSHIPPED;
|
|
|
|
$arr['shipping_status'] = SS_UNSHIPPED;
|
|
|
|
$arr['shipping_time'] = 0;
|
|
|
|
$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);
|
|
|
|
$rtn = $this->updateStatus($arr, $action);
|
|
|
|
if (!$rtn) {
|
|
|
|
if (!$rtn) {
|
|
|
|
return $this->Error('更新失敗');
|
|
|
|
return $this->Error('更新失敗');
|
|
|
|
@ -452,6 +467,8 @@ class Order extends ApiController
|
|
|
|
$arr['shipping_status'] = SS_SHIPPED_ARRIVE;
|
|
|
|
$arr['shipping_status'] = SS_SHIPPED_ARRIVE;
|
|
|
|
// $arr['shipping_time'] = time();
|
|
|
|
// $arr['shipping_time'] = time();
|
|
|
|
$rtn = $this->updateStatus($arr, $action);
|
|
|
|
$rtn = $this->updateStatus($arr, $action);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!$rtn) {
|
|
|
|
if (!$rtn) {
|
|
|
|
return $this->Error('更新失敗');
|
|
|
|
return $this->Error('更新失敗');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -468,13 +485,12 @@ class Order extends ApiController
|
|
|
|
} elseif ($params['op'] == 'finish') {
|
|
|
|
} elseif ($params['op'] == 'finish') {
|
|
|
|
$arr['order_id'] = $order['order_id'];
|
|
|
|
$arr['order_id'] = $order['order_id'];
|
|
|
|
$arr['order_status'] = OS_FINISHED;
|
|
|
|
$arr['order_status'] = OS_FINISHED;
|
|
|
|
$arr['pay_status'] = $order['pay_status'];
|
|
|
|
$arr['pay_status'] = PS_PAYED;
|
|
|
|
$arr['shipping_status'] = $order['shipping_status'];
|
|
|
|
$arr['shipping_status'] = SS_RECEIVED;
|
|
|
|
$rtn = $this->updateStatus($arr, $action);
|
|
|
|
$rtn = $this->updateStatus($arr, $action);
|
|
|
|
if (!$rtn) {
|
|
|
|
if (!$rtn) {
|
|
|
|
return $this->Error('更新失敗');
|
|
|
|
return $this->Error('更新失敗');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -562,7 +578,6 @@ class Order extends ApiController
|
|
|
|
$list[] = 'arrive';
|
|
|
|
$list[] = 'arrive';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$list[] = 'prepare';
|
|
|
|
$list[] = 'prepare';
|
|
|
|
|
|
|
|
|
|
|
|
} elseif (PS_UNPAYED == $ps) {
|
|
|
|
} elseif (PS_UNPAYED == $ps) {
|
|
|
|
$list[] = 'pay';
|
|
|
|
$list[] = 'pay';
|
|
|
|
|
|
|
|
|
|
|
|
@ -583,7 +598,6 @@ class Order extends ApiController
|
|
|
|
$list[] = 'arrive';
|
|
|
|
$list[] = 'arrive';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$list[] = 'prepare';
|
|
|
|
$list[] = 'prepare';
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
/* 狀態:已確認、付款中 */
|
|
|
|
/* 狀態:已確認、付款中 */
|
|
|
|
$list[] = 'unpay';
|
|
|
|
$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 的交集
|
|
|
|
// 使用 array_intersect 函數找到兩個 array 的交集
|
|
|
|
$intersection = array_intersect($list, $sort_arr);
|
|
|
|
$intersection = array_intersect($list, $sort_arr);
|
|
|
|
@ -714,7 +728,7 @@ class Order extends ApiController
|
|
|
|
$order = Db::name('order_info')->where('order_id', $order_id)->find();
|
|
|
|
$order = Db::name('order_info')->where('order_id', $order_id)->find();
|
|
|
|
$shipping_data = json_decode($order['shipping_data'], true);
|
|
|
|
$shipping_data = json_decode($order['shipping_data'], true);
|
|
|
|
|
|
|
|
|
|
|
|
if(empty($shipping_data)){
|
|
|
|
if (empty($shipping_data)) {
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$shipping = new ShippingStrategy('ecpay');
|
|
|
|
$shipping = new ShippingStrategy('ecpay');
|
|
|
|
|