dever 3 years ago
parent
commit
108038f777
3 changed files with 46 additions and 11 deletions
  1. 15 5
      app/card/lib/Code.php
  2. 30 6
      service/agent/lib/Manage.php
  3. 1 0
      service/agent/lib/Order.php

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

@@ -106,7 +106,7 @@ class Code
         }
     }
 
-    private function createCode($info, $update = false)
+    private function createCode($info, $update = false, $result = false)
     {
         # 生成卡号
         $card = $info['card_prefix'] . Dever::rand($info['card_len'], $info['card_type'] - 1);
@@ -119,18 +119,28 @@ class Code
             if ($update) {
             	$where = array_merge($where, $update);
             }
-            Dever::db('card/code')->insert($where);
+            $id = Dever::db('card/code')->insert($where);
 
-            return $card;
+            if ($result) {
+                return $id;
+            } else {
+                return $card;
+            }
         } else {
             return $this->createCode($info);
         }
     }
 
     # 直接创建已绑定的礼品卡
-    public function create($info, $type, $uid, $price, $num)
+    public function create($info, $type, $uid, $order_id, $price)
     {
-        
+        $update['status'] = 2;
+        $update['total_cash'] = $price;
+        $update['type'] = $type;
+        $update['uid'] = $uid;
+        $update['order_id'] = $order_id;
+        $update['bdate'] = time();
+        return $this->createCode($info, $update, true);
     }
 
     /**

+ 30 - 6
service/agent/lib/Manage.php

@@ -305,8 +305,17 @@ class Manage
 
         if ($goods) {
             $where = array();
+            $goods_cash = 0;
             foreach ($goods as $k => $v) {
-                $this->addGoods($order, $v);
+                $price = $this->addGoods($order, $v);
+                if ($price && $v['type'] < 3) {
+                    # 计算商品价值
+                    $goods_cash += $price;
+                }
+            }
+
+            if ($goods_cash) {
+                Dever::db('agent/order')->update(array('where_id' => $order['id'], 'goods_cash' => $goods_cash));
             }
         }
     }
@@ -314,17 +323,31 @@ class Manage
     # 新增权益
     private function addGoods($order, $v)
     {
-        $where['mid'] = $order['mid'];
-        $where['type'] = $v['type'];
-        $where['type_id'] = $v['type_id'];
-        $where['sku_id'] = $v['sku_id'];
-        $info = Dever::db('agent/member_goods')->find($where);
         $t = intval($order['price']/10000);
         if ($v['type'] == 1) {
             $v['num'] = $v['num'] * $t;
+            $goods_info = Dever::load('goods/lib/info')->getInfoBySku($type_id, $sku_id);
+            $price = $goods_info['price'] * $v['num'];
         } elseif ($v['type'] == 2) {
             # 生成一个电子券
+            $card = Dever::db('card/info')->find($v['type_id']);
+            if (!$card) {
+                return false;
+            }
+            $price = $card['price']*$v['num'] * $t;
+            $v['type_id'] = Dever::load('card/lib/code')->create($card, 2, $order['mid'], $order['id'], $price);
+            if (!$v['type_id']) {
+                return false;
+            }
         }
+        $price = 0;
+
+        $where['mid'] = $order['mid'];
+        $where['type'] = $v['type'];
+        $where['type_id'] = $v['type_id'];
+        $where['sku_id'] = $v['sku_id'];
+        $info = Dever::db('agent/member_goods')->find($where);
+        
         if ($info) {
             $up['where_id'] = $info['id'];
             $up['total_num'] = $info['total_num'] + $v['num'];
@@ -342,6 +365,7 @@ class Manage
                 Dever::load('agent/lib/member_set')->log($order['mid'], $order['order_num'], $v['type'], $v['type_id'], $v['sku_id'], $v['num'], 0, $up['total_num']);
             }
         }
+        return $price;
     }
 
     private function setCash($order)

+ 1 - 0
service/agent/lib/Order.php

@@ -458,6 +458,7 @@ class Order
                 (
                     array('代理费', '¥' . $info['agent_cash'] . '元'),
                     array('软件服务费', '¥' . $info['soft_cash'] . '元'),
+                    array('商品价值', '¥' . $info['goods_cash'] . '元'),
                 ),
 
                 array