dever 3 år sedan
förälder
incheckning
8acb2aa1e0
2 ändrade filer med 256 tillägg och 0 borttagningar
  1. 2 0
      app/card/database/order.php
  2. 254 0
      app/card/lib/Buy.php

+ 2 - 0
app/card/database/order.php

@@ -192,6 +192,8 @@ return array
 
             'oper1'  => array('已收货', '"card/lib/manage.send?order_id={id}"', '{status} == 3'),
 
+            'list' => array('查看详情', '"order_card&project=shop&order_id={id}&page_type=1"'),
+
             //'oper' => array('作废', 'goods/lib/manage.drop?id={id}', '{type} == 1'),
 
             //'oper2' => array('恢复使用', 'goods/lib/manage.recovery?id={id}', '{type} == 4'),

+ 254 - 0
app/card/lib/Buy.php

@@ -493,4 +493,258 @@ class Buy
 
         return 'reload';
     }
+
+    # 展示订单详情
+    public function show()
+    {
+        $id = Dever::input('order_id');
+
+        $config = Dever::db('card/order')->config;
+
+        $info = Dever::db('card/order')->one($id);
+
+        $status = $config['status'][$info['status']];
+
+        $card = Dever::db('card/info')->find($info['shop_id']);
+
+        $user = Dever::db('passport/user')->find($info['uid']);
+
+        $cdate = date('Y-m-d H:i', $info['cdate']);
+        if ($info['operdate']) {
+            $opertime = date('Y-m-d H:i', $info['operdate']);
+        } else {
+            $opertime = '';
+        }
+
+        if ($info['fdate']) {
+            $fdate = date('Y-m-d H:i', $info['fdate']);
+        } else {
+            $fdate = '';
+        }
+
+        if (!$user) {
+            $user['username'] = '无';
+        }
+        if (!isset($user['truename'])) {
+            $user['truename'] = $user['username'];
+        }
+
+        $time = array();
+        $time[] = array('下单时间', $cdate);
+
+        if ($opertime) {
+            $time[] = array('操作时间', $opertime);
+        }
+
+        if ($fdate) {
+            $time[] = array('完成时间:', $fdate);
+        }
+
+        $result = array();
+
+        $result[$info['order_num']] = array
+        (
+            'type' => 'info',
+            'content' => array
+            (
+                array
+                (
+                    array('订单状态', $status),
+                    array('支付方式', $config['pay_method'][$info['pay_method']]),
+                    array('配送方式', $config['method'][$info['method']]),
+                ),
+                
+                array
+                (
+                    array('门店名称', $shop['name']),
+                    array('联系人', $shop['truename']),
+                    array('联系电话', $shop['mobile']),
+                ),
+
+                array
+                (
+                    array('下单用户', $user['username']),
+                    array('联系电话', $info['mobile']),
+                    array('订单备注', $info['info']),
+                ),
+
+                array
+                (
+                    array('优惠券满减', '¥ ' . $info['coupon_cash']),
+                    array('抹零', '¥ ' . $info['kou_cash']),
+                    array('配送费', '¥ ' . $info['ps_cash']),
+                ),
+
+                $time,
+            )
+        );
+
+        if ($info['address_id'] > 0) {
+            $address = Dever::load('passport/address')->getOne($info['uid'], $info['address_id']);
+
+            if ($address) {
+
+                $result['收货地址'] = array
+                (
+                    'type' => 'info',
+                    'content' => array
+                    (
+                        array
+                        (
+                            array('联系人', $address['contact']),
+                            array('联系电话', $address['mobile']),
+                        ),
+
+                        array
+                        (
+                            array('收货地址', $address['address']),
+                            array('门牌号', $address['house_number']),
+                        ),
+                    ),
+                );
+            }
+        }
+
+        
+        if ($info['invoice_id'] > 0) {
+            $invoice = Dever::load('passport/invoice')->getOne($info['uid'], $info['invoice_id']);
+
+            if ($invoice) {
+
+                $result['发票信息'] = array
+                (
+                    'type' => 'info',
+                    'content' => array
+                    (
+                        array
+                        (
+                            array('发票类型', $invoice['title_type_name']),
+                            array('抬头', $invoice['title']),
+                            array('税号', $invoice['number']),
+                        ),
+
+                        array
+                        (
+                            array('手机号', $invoice['mobile']),
+                            array('邮箱', $invoice['email']),
+                        ),
+                    ),
+                );
+            }
+        }
+
+
+        if (!$info['refund_cash']) {
+            $info['refund_cash'] = 0;
+        }
+
+        if ($info['refund_cash'] > 0 && $tk) {
+            $process = $tk_process[$tk['process']];
+            $tk['cdate'] = date('Y-m-d H:i', $tk['cdate']);
+            $result['退款信息'] = array
+            (
+                'type' => 'info',
+                'content' => array
+                (
+                    array
+                    (
+                        array('退款金额', $info['refund_cash']),
+                        array('数量', $info['num']),
+                        array('退款进度', $process),
+                    ),
+
+                    array
+                    (
+                        array('申请时间', $tk['cdate']),
+                        array('退款原因', $tk['desc']),
+                    ),
+                ),
+            );
+        }
+
+        $body = $refund_body = array();
+        $body_total = array();
+        $body_total['price'] = 0;
+        $body_total['num'] = 0;
+
+        $refund_body_total = array();
+        $refund_body_total['price'] = 0;
+        $refund_body_total['num'] = 0;
+
+        $goods = Dever::db('shop/sell_order_goods')->select(array('order_id' => $info['id']));
+        $goods_status = Dever::db('shop/sell_order_goods')->config['status'];
+
+        foreach ($goods as $k => $v) {
+            $goods_info = Dever::load('goods/lib/info')->getInfoBySku($v['goods_id'], $v['sku_id']);
+            $status = $goods_status[$v['status']];
+            $tk = Dever::db('shop/sell_order_refund')->find(array('order_id' => $info['id'], 'order_goods_id' => $v['id'], 'type' => 2));
+            if ($tk && $tk['process'] == 1) {
+                $status = '申请' . $tk_status[$tk['status']];
+                //$status .= '  [' . $tk_process[$tk['process']] . ']';
+            }
+            if (isset($goods_info['sku'])) {
+                $sku = $goods_info['sku']['string'];
+            } else {
+                $sku = '无';
+            }
+
+            $d = array
+            (
+                'pic' => $goods_info['cover'],
+                'name' => $goods_info['name'],
+                'sku' => $sku,
+                'price' => $v['price'],
+                'num' => $v['num'],
+                'status' => $status,
+            );
+
+            if ($tk && $v['status'] == 3) {
+                $d['status'] = $tk_status[$tk['status']];
+                $refund_body[] = $d;
+                $price = $v['price']*$v['num'];
+                $refund_body_total['price'] += $price;
+                $refund_body_total['num'] += $v['num'];
+            } else {
+                $body[] = $d;
+                $price = $v['price']*$v['num'];
+                $body_total['price'] += $price;
+                $body_total['num'] += $v['num'];
+            }
+        }
+
+        if ($body) {
+            if ($refund_body_total['price']) {
+                $body_total['set_price'] = $body_total['price'] - $refund_body_total['price'];
+            }
+            if ($refund_body_total['num']) {
+                $body_total['set_num'] = $body_total['num'] - $refund_body_total['num'];
+            }
+
+            $result['商品清单'] = array
+            (
+                'type' => 'list',
+                'content' => $body,
+                'total' => $body_total,
+            );
+        }
+
+        if ($refund_body) {
+            $result['退款商品'] = array
+            (
+                'type' => 'list',
+                'content' => $refund_body,
+                'total' => $refund_body_total,
+            );
+        }
+        
+
+        $head = array
+        (
+            'name' => '基本信息',
+            'btn' => array(),
+        );
+        $html = Dever::show($head, $result);
+
+        return $html;
+    }
 }