rabin 2 years ago
parent
commit
e0e9368b30

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

@@ -183,6 +183,16 @@ return array
             'update'    => 'text',
         ),
 
+        'end_dh_day'        => array
+        (
+            'type'      => 'int-11',
+            'name'      => '兑换有效期-直接填写天数的数值',
+            'default'   => '0',
+            'desc'      => '兑换有效期',
+            'match'     => 'is_numeric',
+            'update'    => 'text',
+        ),
+
         'status'        => array
         (
             'type'      => 'int-11',

+ 5 - 2
app/card/lib/Code.php

@@ -132,14 +132,17 @@ class Code
     }
 
     # 直接创建已绑定的礼品卡
-    public function create($info, $type, $uid, $order_id, $price)
+    public function create($info, $type, $uid, $order_id, $price, $bdate = false)
     {
         $update['status'] = 2;
         $update['total_cash'] = $price;
         $update['type'] = $type;
         $update['uid'] = $uid;
         $update['order_id'] = $order_id;
-        $update['bdate'] = time();
+        if (!$bdate) {
+            $bdate = time();
+        }
+        $update['bdate'] = $bdate;
         return $this->createCode($info, $update, true);
     }
 

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

@@ -151,6 +151,26 @@ class Api extends Core
             if ($data['status'] > 2) {
                 Dever::alert('礼品卡卡号错误或礼品卡已兑换');
             }
+
+            $info['info'] = Dever::db('card/info')->find($data['card_id']);
+            if (!$info['info']) {
+                Dever::alert('兑换失败,礼品卡已下架');
+            }
+            if ($info['info']['status'] == 2) {
+                Dever::alert('兑换失败,礼品卡已下架');
+            }
+
+            if ($info['info']['end_dh_day'] && $info['info']['end_dh_day'] > 0) {
+                $data['eddate'] = $data['bdate'] + ($info['info']['end_dh_day'] * 86400);
+            }
+
+            if (isset($data['eddate']) && $data['eddate'] && $data['eddate'] > 0) {
+                $time = time();
+                if ($data['eddate'] <= $time) {
+                    Dever::alert('礼品卡已过兑换时间');
+                }
+            }
+
             $update['where_id'] = $data['id'];
             $update['dh_uid'] = $this->uid;
             $update['status'] = 3;

+ 14 - 2
service/agent/assets/pc/html/setMemberGoods.html

@@ -125,6 +125,11 @@
             }
             var id = $(this).parent().attr('value');
             goods[id].total = num;
+            if (goods[id].total == 0) {
+                get(id).find('.delete_btn').show();
+            } else {
+                get(id).find('.delete_btn').hide();
+            }
             setTotal();
         });
 
@@ -194,7 +199,7 @@
                 goods[key].price = parseFloat(goods[key].price);
                 goods[key].price_type = parseInt(goods[key].price_type);
                 goods[key].total = parseFloat(goods[key].total);
-                goods[key].total = goods[key].total > 0 ? goods[key].total : 1;
+                goods[key].total = goods[key].total >= 0 ? goods[key].total : 1;
                 goods[key].num = 0;
                 goods[key].del = 1;
                 create(node);
@@ -231,7 +236,7 @@
             if (node.total <= 0) {
                 addtr += '<td><a class="delete_btn" onclick="del(\''+node.id+'\')">删除</a></td>';
             } else {
-                addtr += '<td></td>';
+                addtr += '<td><a class="delete_btn" style="display:none" onclick="del(\''+node.id+'\')">删除</a></td>';
             }
                                   
             addtr += '</tr>';
@@ -242,6 +247,7 @@
     function add(id)
     {
         goods[id].total += 1;
+        get(id).find('.delete_btn').hide();
         get(id).find('.goods_num').val(goods[id].total);
         setTotal();
     }
@@ -261,6 +267,12 @@
             goods[id].total = 0;
         }
 
+        if (goods[id].total == 0) {
+            get(id).find('.delete_btn').show();
+        } else {
+            get(id).find('.delete_btn').hide();
+        }
+
         e.val(goods[id].total);
         setTotal();
     }

+ 6 - 3
service/agent/lib/Member_set.php

@@ -33,7 +33,7 @@ class Member_set
         return Dever::render('setMemberGoods', $data);
     }
 
-    # 设置生产能力
+    # 设置
     public function action_commit_api()
     {
         $search_api_mid = Dever::input('search_api_mid');
@@ -65,7 +65,7 @@ class Member_set
                 $sku_id = $temp[1];
             }
             
-            if ($v['total'] <= 0) {
+            if ($v['total'] < 0) {
                 continue;
             }
             $w = array();
@@ -78,6 +78,9 @@ class Member_set
                 $info = Dever::db('agent/member_goods')->one($w);
                 if ($info) {
                     Dever::db('agent/member_goods')->update(array('where_id' => $info['id'], 'state' => 2));
+
+                    $name = $info['name'] ? $info['name'] : Dever::load("agent/lib/manage.getGoods#name", $info['type'], $info['type_id'], $info['sku_id']);
+                    Dever::load('agent/lib/member_set')->log($w['mid'], '', $w['type'], $w['type_id'], $w['sku_id'], -1*$info['total_num'], $info['total_num'], 0, $name, $desc . '[删除]');
                 }
             } else {
                 $total = $v['total'];
@@ -199,7 +202,7 @@ class Member_set
                     $w['state'] = 1;
                     $state = Dever::db('agent/member_goods')->update($w);
                     $num = $w['total_num']-$info['total_num'];
-                    if ($state && $num > 0) {
+                    if ($state) {
                     	Dever::load('agent/lib/member_set')->log($w['mid'], '', $w['type'], $w['type_id'], $w['sku_id'], $num, $info['total_num'], $w['total_num'], $name, $desc);
                     }
                 }

+ 3 - 2
service/agent/lib/Order_set.php

@@ -26,9 +26,10 @@ class Order_set
         $data['link'] = Dever::decode(Dever::input('refer'));
         $data['total'] = Dever::input('total', 1);
         $data['order_id'] = Dever::input('order_id');
+        $data['type'] = Dever::input('type');
         $data['role_id'] = Dever::input('role_id', 1);
-        $data['host'] = Dever::url('lib/order_set.home?id=' . $data['role_id'] . '&order_id=' . $data['order_id'], 'agent');
-        $data['url'] = Dever::url('lib/order_set.goods?total='.$data['total'].'&role_id=' . $data['role_id'] . '&order_id=' . $data['order_id'], 'agent');
+        $data['host'] = Dever::url('lib/order_set.home?type='.$data['type'].'&id=' . $data['role_id'] . '&order_id=' . $data['order_id'], 'agent');
+        $data['url'] = Dever::url('lib/order_set.goods?type='.$data['type'].'&total='.$data['total'].'&role_id=' . $data['role_id'] . '&order_id=' . $data['order_id'], 'agent');
         $data['submit'] = Dever::url('lib/order_set.action_commit?json=1', 'agent');
 
         return Dever::render('setOrderGoods', $data);

+ 2 - 2
service/agent/lib/Set.php

@@ -71,8 +71,8 @@ class Set
                     $info = Dever::db($table)->find(array('type' => 3, 'type_id' => $v['id'], $col => $value));
                     if ($info) {
                         if ($table == 'agent/member_goods') {
-                            //$info['num'] = $info['total_num'] - $info['sell_num'];
-                            $info['num'] = $info['total_num'];
+                            $info['num'] = $info['total_num'] - $info['sell_num'];
+                            //$info['num'] = $info['total_num'];
                         }
                         $data[0]['children'][$k]['select'] = 1;
                         $data[0]['children'][$k]['total'] = $info['num'] * $total;