|
@@ -47,6 +47,10 @@ class Order
|
|
|
$info['address'] = Dever::load('address', 'place')->getInfo($info['address_id'], $info['uid']);
|
|
|
# 运费
|
|
|
$info['yun'] = Dever::load('price', 'place')->getText(0, 3);
|
|
|
+ if (in_array($info['status'], array(3,4,5))) {
|
|
|
+ $info = Dever::load('express', 'goods')->getInfo($info, $info['address_id']);
|
|
|
+ $info['status_name'] = Dever::db('order', 'goods')->value('status', $info['status']);
|
|
|
+ }
|
|
|
$info['status_list'] = array
|
|
|
(
|
|
|
1 => array
|
|
@@ -98,6 +102,88 @@ class Order
|
|
|
} elseif ($info['status'] > 6) {
|
|
|
$info['status_msg'] = '订单已取消';
|
|
|
}
|
|
|
+
|
|
|
+ $info['refund'] = false;
|
|
|
+ $info['refund_list'] = Dever::db('order_refund', 'goods')->select(array('order_id' => $info['id']));
|
|
|
+ if ($info['refund_list']) {
|
|
|
+ foreach ($info['refund_list'] as $k => $v) {
|
|
|
+ if ($v['status'] < 4) {
|
|
|
+ $info['refund'] = $v;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ($info['refund']) {
|
|
|
+ if ($info['refund']['status'] > 2) {
|
|
|
+ $info['refund'] = Dever::load('express', 'goods')->getInfo($info['refund'], $info['address_id'], 2);
|
|
|
+ }
|
|
|
+ $info['refund']['cdate_str'] = date('Y-m-d H:i:s', $info['refund']['cdate']);
|
|
|
+ if (isset($info['refund']['sdate']) && $info['refund']['sdate']) {
|
|
|
+ $info['refund']['sdate_str'] = date('Y-m-d H:i:s', $info['refund']['sdate']);
|
|
|
+ }
|
|
|
+ if (isset($info['refund']['ddate']) && $info['refund']['ddate']) {
|
|
|
+ $info['refund']['ddate_str'] = date('Y-m-d H:i:s', $info['refund']['ddate']);
|
|
|
+ }
|
|
|
+ if (isset($info['refund']['fdate']) && $info['refund']['fdate']) {
|
|
|
+ $info['refund']['fdate_str'] = date('Y-m-d H:i:s', $info['refund']['fdate']);
|
|
|
+ }
|
|
|
+ if ($info['refund']['type'] == 1) {
|
|
|
+ $info['refund_status_list'] = array
|
|
|
+ (
|
|
|
+ 1 => array
|
|
|
+ (
|
|
|
+ 'selected' => false,
|
|
|
+ 'name' => '退货退款',
|
|
|
+ 'time' => $info['refund']['cdate_str'],
|
|
|
+ ),
|
|
|
+ 2 => array
|
|
|
+ (
|
|
|
+ 'selected' => false,
|
|
|
+ 'name' => '已审核',
|
|
|
+ 'time' => $info['refund']['sdate_str'] ?? '',
|
|
|
+ ),
|
|
|
+ 3 => array
|
|
|
+ (
|
|
|
+ 'selected' => false,
|
|
|
+ 'name' => '买家已发货',
|
|
|
+ 'time' => $info['refund']['ddate_str'] ?? '',
|
|
|
+ ),
|
|
|
+ 4 => array
|
|
|
+ (
|
|
|
+ 'selected' => false,
|
|
|
+ 'name' => '已完成',
|
|
|
+ 'time' => $info['refund']['fdate_str'] ?? '',
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ if ($info['refund']['type'] == 2) {
|
|
|
+ $info['refund_status_list'] = array
|
|
|
+ (
|
|
|
+ 1 => array
|
|
|
+ (
|
|
|
+ 'selected' => false,
|
|
|
+ 'name' => '仅退款',
|
|
|
+ 'time' => $info['cdate_str'],
|
|
|
+ ),
|
|
|
+ 2 => array
|
|
|
+ (
|
|
|
+ 'selected' => false,
|
|
|
+ 'name' => '已审核',
|
|
|
+ 'time' => $info['sdate_str'] ?? '',
|
|
|
+ ),
|
|
|
+ 4 => array
|
|
|
+ (
|
|
|
+ 'selected' => false,
|
|
|
+ 'name' => '已完成',
|
|
|
+ 'time' => $info['fdate_str'] ?? '',
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ foreach ($info['refund_status_list'] as $k => $v) {
|
|
|
+ if ($info['refund']['status'] >= $k) {
|
|
|
+ $info['refund_status_list'][$k]['selected'] = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
# 取消订单
|
|
@@ -118,11 +204,15 @@ class Order
|
|
|
{
|
|
|
if ($status == 1) {
|
|
|
$update['status'] = 2;
|
|
|
+ $msg = '支付成功';
|
|
|
+
|
|
|
} else {
|
|
|
$update['status'] = 7;
|
|
|
+ $msg = '支付失败';
|
|
|
}
|
|
|
$update['pdate'] = time();
|
|
|
$state = Dever::db('order', 'goods')->update($order['id'], $update);
|
|
|
+ Dever::load('log', 'goods')->up(1, $order['uid'], $data['order_id'], $msg);
|
|
|
if ($state && $update['status'] == 7) {
|
|
|
# 恢复库存
|
|
|
$this->resell($order['id']);
|
|
@@ -130,6 +220,27 @@ class Order
|
|
|
return $state;
|
|
|
}
|
|
|
|
|
|
+ # 确认收货
|
|
|
+ public function finish_commit(){}
|
|
|
+ public function finish($type = 1, $order)
|
|
|
+ {
|
|
|
+ if ($order['status'] >= 3 && $order['status'] <= 6) {
|
|
|
+ if ($type == 1) {
|
|
|
+ $uid = $order['uid'];
|
|
|
+ } else {
|
|
|
+ $uid = '';
|
|
|
+ }
|
|
|
+ # 检查有没有退款
|
|
|
+ $refund = Dever::db('order_refund', 'goods')->find(array('order_id' => $order['id'], 'refund_status' => 1));
|
|
|
+ $status = 5;
|
|
|
+ if ($refund) {
|
|
|
+ $status = 6;
|
|
|
+ }
|
|
|
+ Dever::db('order', 'goods')->update($order['id'], array('status' => $status, 'fdate' => time()));
|
|
|
+ Dever::load('log', 'goods')->up($type, $uid, $order['id'], '确认收货,订单完成');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
# 恢复库存
|
|
|
public function resell($id)
|
|
|
{
|
|
@@ -174,16 +285,16 @@ class Order
|
|
|
if ($k == 1) {
|
|
|
$v['name'] .= ' 下单人:' . $user['name'] . '('.$user['mobile'].')' . ' 付款:' . $page->info['cash'] . '元 '. $desc;
|
|
|
} elseif ($k == 2) {
|
|
|
- $v['name'] .= ' 收货地址:' . $address['name'] . ',' . $address['phone'] . ',' . $address['area_string'] . ',' . $address['address'];
|
|
|
+ $v['name'] .= ' 收货地址:' . $address['full'];
|
|
|
} elseif ($k == 3) {
|
|
|
- $express = Dever::db('order_express', 'goods')->find(array('order_id' => $page->info['id']));
|
|
|
- if ($express) {
|
|
|
- $express_info = Dever::db('express', 'sector')->find($express['express_id']);
|
|
|
- $v['name'] .= ' 已发货:' . $express_info['name'] . ',' . $express['number'];
|
|
|
+ if (isset($page->info['express'])) {
|
|
|
+ $v['name'] .= ' 已发货:' . $page->info['express']['name'] . ',' . $page->info['express']['number'];
|
|
|
}
|
|
|
-
|
|
|
- }
|
|
|
- if ($k == 5 && $page->info['status'] > 6) {
|
|
|
+ } elseif ($k == 4) {
|
|
|
+ if (isset($page->info['express']['log'])) {
|
|
|
+ $v['name'] .= ' ' . $page->info['express']['log'][0]['status'];
|
|
|
+ }
|
|
|
+ } elseif ($k == 5 && $page->info['status'] > 6) {
|
|
|
$v['name'] .= ' 订单'.$status.'';
|
|
|
}
|
|
|
if ($v['selected']) {
|
|
@@ -194,15 +305,6 @@ class Order
|
|
|
}
|
|
|
$timeline[] = $v;
|
|
|
}
|
|
|
- $content = array
|
|
|
- (
|
|
|
- array
|
|
|
- (
|
|
|
- 'name' => '订单进度',
|
|
|
- 'type' => 'timeline',
|
|
|
- 'content' => $timeline,
|
|
|
- ),
|
|
|
- );
|
|
|
|
|
|
$button = array();
|
|
|
|
|
@@ -249,8 +351,76 @@ class Order
|
|
|
),
|
|
|
);
|
|
|
}
|
|
|
+ if (!$page->info['refund'] && $page->info['status'] >= 2 && $page->info['status'] < 7) {
|
|
|
+ $button[] = array
|
|
|
+ (
|
|
|
+ 'name' => '退款',
|
|
|
+ 'type' => 'fastadd',
|
|
|
+ 'path' => 'sector_place_order/goods_order_refund',
|
|
|
+ 'row' => array
|
|
|
+ (
|
|
|
+ 'id' => $page->info['id'],
|
|
|
+ ),
|
|
|
+ 'param' => array
|
|
|
+ (
|
|
|
+ 'order_id' => $page->info['id'],
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ $desc = '';
|
|
|
+ if ($page->info['refund']) {
|
|
|
+ $desc = '[退款中]';
|
|
|
+ $refund = array();
|
|
|
+ foreach ($page->info['refund_status_list'] as $k => $v) {
|
|
|
+ $v['name'] = '['.$v['name'].']';
|
|
|
+ if ($k == 1) {
|
|
|
+ $v['name'] .= ' 申请原因:' . Dever::db('order_refund', 'goods')->value('desc_type', $page->info['refund']['desc_type']) . ' 申请说明:' . $page->info['refund']['desc'];
|
|
|
+ } elseif ($k == 2) {
|
|
|
+ $v['name'] .= ' 审核备注:' . $page->info['refund']['audit_desc'];
|
|
|
+ } elseif ($k == 3) {
|
|
|
+ if (isset($page->info['refund']['express'])) {
|
|
|
+ $v['name'] .= ' 已发货:' . $page->info['refund']['express']['name'] . ',' . $page->info['refund']['express']['number'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ($v['selected']) {
|
|
|
+ $v['hollow'] = true;
|
|
|
+ $v['color'] = 'red';
|
|
|
+ $v['type'] = 'primary';
|
|
|
+ $v['size'] = 'large';
|
|
|
+ }
|
|
|
+ $refund[] = $v;
|
|
|
+ }
|
|
|
+ $content[] = array
|
|
|
+ (
|
|
|
+ 'name' => '退款进度',
|
|
|
+ 'type' => 'timeline',
|
|
|
+ 'content' => $refund,
|
|
|
+ );
|
|
|
+ $button = array();
|
|
|
+ if ($page->info['refund']['status'] == 1) {
|
|
|
+ $button[] = array
|
|
|
+ (
|
|
|
+ 'name' => '退款审核',
|
|
|
+ 'type' => 'fastedit',
|
|
|
+ 'path' => 'sector_place_order/goods_order_refund_audit',
|
|
|
+ 'row' => array
|
|
|
+ (
|
|
|
+ 'id' => $page->info['refund']['id'],
|
|
|
+ ),
|
|
|
+ 'param' => array
|
|
|
+ (
|
|
|
+ 'order_id' => $page->info['id'],
|
|
|
+ ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
-
|
|
|
+ $content[] = array
|
|
|
+ (
|
|
|
+ 'name' => '订单进度' . $desc,
|
|
|
+ 'type' => 'timeline',
|
|
|
+ 'content' => $timeline,
|
|
|
+ );
|
|
|
|
|
|
$info[] = array
|
|
|
(
|
|
@@ -270,30 +440,25 @@ class Order
|
|
|
);
|
|
|
|
|
|
$detail = Dever::db('order_detail', 'goods')->select(array('order_id' => $page->info['id']));
|
|
|
- foreach ($detail as &$v) {
|
|
|
-
|
|
|
+ if ($detail) {
|
|
|
+ foreach ($detail as &$v) {
|
|
|
+ $v['status'] = '正常';
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- $detail_button = array();
|
|
|
- if ($page->info['status'] >= 2 && $page->info['status'] <= 6) {
|
|
|
- $detail_button[] = array
|
|
|
- (
|
|
|
- 'name' => '退款',
|
|
|
- 'type' => 'fastedit',
|
|
|
- 'load' => 'platform/role',
|
|
|
- );
|
|
|
- }
|
|
|
+ $log = Dever::load('log', 'goods')->getList($page->info['id']);
|
|
|
+
|
|
|
$tab = array
|
|
|
(
|
|
|
- 'active' => 'tab2',
|
|
|
+ 'active' => 't1',
|
|
|
'content' => array
|
|
|
(
|
|
|
- 'tab2' => array
|
|
|
+ 't1' => array
|
|
|
(
|
|
|
'name' => '商品清单',
|
|
|
'type' => 'table',
|
|
|
'border' => true,
|
|
|
- 'height' => '200',
|
|
|
+ #'height' => '200',
|
|
|
'head' => array
|
|
|
(
|
|
|
array
|
|
@@ -320,18 +485,58 @@ class Order
|
|
|
'name' => '数量',
|
|
|
'fixed' => 'fixed',
|
|
|
),
|
|
|
+ array
|
|
|
+ (
|
|
|
+ 'key' => 'status',
|
|
|
+ 'name' => '状态',
|
|
|
+ 'fixed' => 'fixed',
|
|
|
+ ),
|
|
|
),
|
|
|
- 'button' => $detail_button,
|
|
|
+ 'button' => array(),
|
|
|
'body' => $detail,
|
|
|
),
|
|
|
|
|
|
- 'table1' => array
|
|
|
+ 't2' => array
|
|
|
(
|
|
|
- # 这里跟desc一样
|
|
|
'name' => '操作记录',
|
|
|
- 'type' => 'text',
|
|
|
- 'content' => '内容',
|
|
|
- 'style' => 'primary',
|
|
|
+ 'type' => 'table',
|
|
|
+ 'border' => true,
|
|
|
+ #'height' => '200',
|
|
|
+ 'head' => array
|
|
|
+ (
|
|
|
+ array
|
|
|
+ (
|
|
|
+ 'key' => 'type',
|
|
|
+ 'name' => '身份',
|
|
|
+ 'fixed' => 'fixed',
|
|
|
+ ),
|
|
|
+ array
|
|
|
+ (
|
|
|
+ 'key' => 'name',
|
|
|
+ 'name' => '名称',
|
|
|
+ 'fixed' => 'fixed',
|
|
|
+ ),
|
|
|
+ array
|
|
|
+ (
|
|
|
+ 'key' => 'mobile',
|
|
|
+ 'name' => '联系电话',
|
|
|
+ 'fixed' => 'fixed',
|
|
|
+ ),
|
|
|
+ array
|
|
|
+ (
|
|
|
+ 'key' => 'desc',
|
|
|
+ 'name' => '详情',
|
|
|
+ 'fixed' => 'fixed',
|
|
|
+ ),
|
|
|
+ array
|
|
|
+ (
|
|
|
+ 'key' => 'cdate_str',
|
|
|
+ 'name' => '时间',
|
|
|
+ 'fixed' => 'fixed',
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ 'button' => array(),
|
|
|
+ 'body' => $log,
|
|
|
),
|
|
|
)
|
|
|
);
|