dever 3 years ago
parent
commit
bcd540900d

+ 27 - 0
app/card/assets/manage/html/order_card.html

@@ -0,0 +1,27 @@
+
+<form class="layui-form form10" action="" target="f10" method="post">
+<iframe id="f10" name="f10" style="display:none;"></iframe>
+<div class="layui-form-item" id="show">
+    <table class="layui-table">
+      <thead>
+        <tr>
+          <th>昵称</th>
+          <th>加入时间</th>
+          <th>签名</th>
+        </tr> 
+      </thead>
+      <tbody>
+        <tr>
+          <td>贤心</td>
+          <td>2016-11-29</td>
+          <td>人生就像是一场修行</td>
+        </tr>
+        <tr>
+          <td>许闲心</td>
+          <td>2016-11-28</td>
+          <td>于千万人之中遇见你所遇见的人,于千万年之中,时间的无涯的荒野里…</td>
+        </tr>
+      </tbody>
+    </table>
+</div>
+</form>

+ 34 - 4
app/card/database/add.php

@@ -1,5 +1,9 @@
 <?php
-
+$type = array
+(
+    1 => '自动生成',
+    2 => '手动生成',
+);
 return array
 (
     # 表名
@@ -26,7 +30,7 @@ return array
             'value'     => Dever::input('where_id'),
         ),
 
-        'info_id'        => array
+        'card_id'        => array
         (
             'type'      => 'int-11',
             'name'      => '礼品卡',
@@ -34,8 +38,21 @@ return array
             'desc'      => '礼品卡',
             'match'     => 'is_numeric',
             'update'    => 'hidden',
-            'value'     => Dever::input('search_option_info_id'),
-            'list'      => 'Dever::load("card/info-find#name", "{info_id}")',
+            'value'     => Dever::input('search_option_card_id'),
+            'list'      => 'Dever::load("card/info-find#name", "{card_id}")',
+        ),
+
+        'type'        => array
+        (
+            'type'      => 'int-11',
+            'name'      => '生成方式',
+            'default'   => '1',
+            'desc'      => '生成方式',
+            'match'     => 'is_numeric',
+            'update'    => 'radio',
+            'value'     => '1',
+            'option'    => $type,
+            'control'   => 'type',
         ),
         
         'num'       => array
@@ -47,6 +64,19 @@ return array
             'match'     => 'is_string',
             'update'    => 'text',
             'value'     => '',
+            'show'      => 'type=1',
+        ),
+
+        'content'       => array
+        (
+            'type'      => 'text-255',
+            'name'      => '填写卡号-多个换行隔开,如卡号重复将不会录入到库中',
+            'default'   => '',
+            'desc'      => '填写卡号',
+            'match'     => 'is_string',
+            'update'    => 'textarea',
+            'value'     => '',
+            'show'      => 'type=2',
         ),
 
         'cdate'     => array

+ 1 - 0
app/card/database/code.php

@@ -15,6 +15,7 @@ return array
     # 显示给用户看的名称
     'lang' => '礼品卡卡号',
     'status' => $status,
+    'check' => 'card',
     # 后台菜单排序
     'order' => 99,
     'menu'  => false,

+ 4 - 0
app/card/database/info.php

@@ -69,6 +69,7 @@ return array
             'desc'      => '面值',
             'match'     => 'is_numeric',
             'update'    => 'text',
+            'list'      => true,
         ),
 
         'price'        => array
@@ -79,6 +80,7 @@ return array
             'desc'      => '售价',
             'match'     => 'is_numeric',
             'update'    => 'text',
+            'list'      => true,
         ),
 
         'card_type'        => array
@@ -90,6 +92,8 @@ return array
             'match'     => 'is_numeric',
             'update'    => 'select',
             'option'    => $card_type,
+            'list_name' => '数量',
+            'list'      => 'Dever::load("card/lib/manage.getNum", "{id}")',
         ),
 
         'card_prefix'        => array

+ 9 - 5
app/card/database/order.php

@@ -136,7 +136,7 @@ return array
             'search'    => 'select',
             'update'    => 'select',
             'list'      => true,
-            //'mul'       => array(1 => '恢复使用', 4 => '已作废'),
+            'mul'       => array(4 => '批量完成'),
         ),
 
         'fdate'     => array
@@ -180,19 +180,23 @@ return array
 
     'manage' => array
     (
-        'excel' => true,
+        //'excel' => true,
         'delete' => false,
         'edit' => false,
         'insert' => false,
-       // 'mul' => '{type} == 1 || {type} == 4',
+        'mul' => '{status} == 3',
 
         'list_button' => array
         (
+            'list' => array('查看详情', '"order_card&project=card&order_id={id}&page_type=1"'),
+
+            'new' => array('手动查单', 'https://www.kuaidi100.com/?from=openv'),
+
             'fast1' => array('发货', '"order_ps&where_id={id}&search_option_order_id={id}&oper_save_jump=order&oper_table=order&oper_parent=order"', '{status} == 2'),
 
-            'oper1'  => array('已收货', '"card/lib/manage.send?order_id={id}"', '{status} == 3'),
+            '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'),
 

+ 1 - 1
app/card/database/order_card.php

@@ -150,7 +150,7 @@ return array
     (
         'insert' => false,
         'delete' => false,
-        //'page_list' => 'sell_order_goods',
+        'page_list' => 'order_card',
     ),
 
     'request' => array

+ 60 - 112
app/card/lib/Buy.php

@@ -505,8 +505,6 @@ class Buy
 
         $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']);
@@ -537,7 +535,7 @@ class Buy
         }
 
         if ($fdate) {
-            $time[] = array('完成时间', $fdate);
+            $time[] = array('完成时间', $fdate);
         }
 
         $result = array();
@@ -547,32 +545,11 @@ class Buy
             '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']),
+                    array('订单状态', $status),
                 ),
 
                 $time,
@@ -605,122 +582,85 @@ class Buy
             }
         }
 
-        
-        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']),
-                        ),
+        $info['ps_info'] = Dever::db('card/order_ps')->find(array('order_id' => $info['id']));
+        if ($info['ps_info']) {
+            $info['ps_info']['service_name'] = '平台配送';
+            $info['ps_info']['cdate'] = date('Y-m-d H:i', $info['ps_info']['cdate']);
+            if ($info['ps_info']['qu_date']) {
+                $info['ps_info']['qu_date'] = date('Y-m-d H:i', $info['ps_info']['qu_date']);
+            } else {
+                $info['ps_info']['qu_date'] = '无';
+            }
 
-                        array
-                        (
-                            array('手机号', $invoice['mobile']),
-                            array('邮箱', $invoice['email']),
-                        ),
-                    ),
-                );
+            if ($info['ps_info']['qs_date']) {
+                $info['ps_info']['qs_date'] = date('Y-m-d H:i', $info['ps_info']['qs_date']);
+            } else {
+                $info['ps_info']['qs_date'] = '无';
             }
-        }
 
+            $status = Dever::db('card/order_ps')->config['status'];
+            $info['ps_info']['status_name'] = $status[$info['ps_info']['status']];
+            
+            if ($info['ps_info']['service_id'] > 0) {
+                $service = Dever::db('shop/service')->find($info['ps_info']['service_id']);
+                $info['ps_info']['service_name'] = $service['name'];
+            }
 
-        if (!$info['refund_cash']) {
-            $info['refund_cash'] = 0;
-        }
+            $info['ps_info']['order_num'] = str_replace("\r\n", ',', $info['ps_info']['order_num']);
 
-        if ($info['refund_cash'] > 0 && $tk) {
-            $process = $tk_process[$tk['process']];
-            $tk['cdate'] = date('Y-m-d H:i', $tk['cdate']);
-            $result['退款信息'] = array
+            $info['ps_info']['order_num'] .= '(<a href="https://www.kuaidi100.com/?from=openv" target="_blank">点此手动查单)</a>';
+            $result['物流信息'] = array
             (
                 'type' => 'info',
                 'content' => array
                 (
                     array
                     (
-                        array('退款金额', $info['refund_cash']),
-                        array('数量', $info['num']),
-                        array('退款进度', $process),
+                        array('名称', $info['ps_info']['service_name']),
+                        array('单号', $info['ps_info']['order_num']),
+                        array('费用', $info['ps_info']['price']),
                     ),
 
                     array
                     (
-                        array('申请时间', $tk['cdate']),
-                        array('退款原因', $tk['desc']),
+                        array('发货时间', $info['ps_info']['cdate']),
+                        array('取件时间', $info['ps_info']['qu_date']),
+                        array('签收时间', $info['ps_info']['qs_date']),
                     ),
                 ),
             );
         }
 
-        $body = $refund_body = array();
+        $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;
+        $order_card = Dever::db('card/order_card')->select(array('order_id' => $info['id']));
+        $order_card_status = Dever::db('card/order_card')->config['status'];
 
-        $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 .= '&nbsp;&nbsp;[' . $tk_process[$tk['process']] . ']';
-            }
-            if (isset($goods_info['sku'])) {
-                $sku = $goods_info['sku']['string'];
-            } else {
-                $sku = '无';
-            }
+        foreach ($order_card as $k => $v) {
+            $card = Dever::db('card/info')->find($v['card_id']);
+            $card_type = Dever::db('card/type')->find($card['type_id']);
+            $status = $order_card_status[$v['status']];
 
             $d = array
             (
-                'pic' => $goods_info['cover'],
-                'name' => $goods_info['name'],
-                'sku' => $sku,
+                'name' => $card_type['name'] . ' / ' . $card['name'],
+                'sku' => $v['cards'],
                 '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'];
-            }
+            $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
+            $result['礼品卡清单'] = array
             (
                 'type' => 'list',
                 'content' => $body,
@@ -728,20 +668,28 @@ class Buy
             );
         }
 
-        if ($refund_body) {
-            $result['退款商品'] = array
+        $button = array();
+        if ($info['status'] == 2) {
+            $url = Dever::load('manage/database')->url('edit', $info['id'], 'order_ps&where_id='.$info['id'].'&search_option_order_id='.$info['id'].'&oper_save_jump=order&oper_table=order&oper_parent=order');
+            $button[] = array
             (
-                'type' => 'list',
-                'content' => $refund_body,
-                'total' => $refund_body_total,
+                'type' => 'edit',
+                'link' => $url,
+                'name' => '发货',
+            );
+        } elseif ($info['status'] == 3) {
+            $button[] = array
+            (
+                'type' => 'action',
+                'link' => Dever::url('lib/manage.send?order_id=' . $info['id'], 'card'),
+                'name' => '确认收货',
             );
         }
-        
 
         $head = array
         (
             'name' => '基本信息',
-            'btn' => array(),
+            'btn' => $button,
         );
         $html = Dever::show($head, $result);
 

+ 30 - 6
app/card/lib/Code.php

@@ -66,15 +66,39 @@ class Code
      */
     public function createCard($id, $name, $param)
     {
+    	$type = Dever::param('type', $param);
+    	$content = Dever::param('content', $param);
         $num = Dever::param('num', $param);
-        $info_id = Dever::param('info_id', $param);
+        $card_id = Dever::param('card_id', $param);
 
-        $info = Dever::db('card/info')->find($info_id);
+        $info = Dever::db('card/info')->find($card_id);
+        if ($info) {
+        	if ($type == 1 && $num > 0) {
+        		for ($i = 0; $i< $num;$i++) {
+	                $this->createCode($info);
+	            }
+        	} elseif ($type == 2 && $content) {
+        		$data = Dever::split($content);
+        		foreach ($data as $k => $v) {
+        			$this->upCode($info, $v);
+        		}
+        	}
+        }
+    }
 
-        if ($info && $num > 0) {
-            for ($i = 0; $i< $num;$i++) {
-                $this->createCode($info);
-            }
+    private function upCode($info, $card)
+    {
+        $where['clear'] = true;
+        $where['card'] = $card;
+        $state = Dever::db('card/code')->find($where);
+
+        if (!$state) {
+            $where['card_id'] = $info['id'];
+            Dever::db('card/code')->insert($where);
+
+            return $card;
+        } else {
+            return false;
         }
     }
 

+ 12 - 0
app/card/lib/Manage.php

@@ -6,6 +6,18 @@ use Dever;
 
 class Manage
 {
+    /**
+     * 获取礼品卡数量
+     *
+     * @return mixed
+     */
+    public function getNum($id)
+    {
+        //$info = Dever::db('card/info')->find($id);
+        $where['card_id'] = $id;
+        return Dever::db('card/code')->total($where);
+    }
+
     /**
      * 显示用户信息
      *

+ 1 - 0
app/card/src/Api.php

@@ -155,6 +155,7 @@ class Api extends Core
     public function card()
     {
         $config = Dever::db('main/sell_config')->find();
+        $this->data['card_pic'] = $config['card'];
         $this->data['card_name'] = $config['card_name'];
 
         $this->data['card'] = Dever::db('card/code')->getPageData(array('dh_uid' => $this->uid));

+ 5 - 0
app/card/template/manage/order_card.php

@@ -0,0 +1,5 @@
+<?php
+
+$view
+->fetch('#show', 'card/lib/buy.show')
+->display();

+ 2 - 0
app/mshop/lib/Buy.php

@@ -848,6 +848,8 @@ class Buy
             }
 
             $info['ps_info']['order_num'] = str_replace("\r\n", ',', $info['ps_info']['order_num']);
+
+            $info['ps_info']['order_num'] .= '(<a href="https://www.kuaidi100.com/?from=openv" target="_blank">点此手动查单)</a>';
             if ($noprice == 1) {
                 $result['物流信息'] = array
                 (