dever 3 years ago
parent
commit
0c5aa8cbdc
2 changed files with 70 additions and 32 deletions
  1. 59 24
      app/shop/lib/Sell.php
  2. 11 8
      app/shop/src/My.php

+ 59 - 24
app/shop/lib/Sell.php

@@ -290,6 +290,9 @@ class Sell
         $data['coupon_id'] = 0;
         $data['coupon_cash'] = 0;
 
+        if ($data['pay_method'] == 3) {
+            return $data;
+        }
         if ($type == 1) {
             if (isset($data['uid']) && $data['uid'] > 0) {
                 # 默认选择优惠券
@@ -448,43 +451,74 @@ class Sell
         return $data;
     }
 
-    # 得到商品和总价
-    public function goods(&$data)
+    # 获取礼品卡
+    public function card($uid, $shop)
     {
-        # 1自提,2配送
-        $data['method'] = Dever::input('method', 1);
-        $data['pay_method'] = Dever::input('pay_method');
         $card = Dever::input('card');
         $pwd = Dever::input('pwd');
+        if (!$card) {
+            Dever::alert('卡号/密码错误');
+        }
+        if (!$pwd) {
+            Dever::alert('卡号/密码错误');
+        }
+        $data = Dever::db('goods/card_code')->find(array('card' => $card, 'pwd' => $pwd));
+        if (!$data) {
+            Dever::alert('卡号/密码错误');
+        }
+        $info = Dever::db('goods/card')->find($data['card_id']);
+        if (!$info || ($info && $info['status'] != 1)) {
+            Dever::alert('卡号/密码错误');
+        }
 
-        if ($data['pay_method'] == 3 && $card && $pwd) {
-            $data['card'] = Dever::db('goods/card_code')->find(array('card' => $card, 'pwd' => $pwd, 'status' => 1));
-            if (!$data['card']) {
-                Dever::alert('卡号/密码错误');
+        if ($data['uid'] && $data['uid'] > 0) {
+            if ($data['uid'] != $uid) {
+                Dever::alert('礼品卡已被领取');
             }
-            if (time() > $data['card']['edate']) {
+            if (time() > $data['edate']) {
                 # 更新礼品卡状态
-                $card_update['where_id'] = $data['card']['id'];
-                $card_update['uid'] = $data['uid'];
-                $card_update['shop_id'] = $data['shop']['id'];
+                $card_update['where_id'] = $data['id'];
                 $card_update['status'] = 5;
                 Dever::db('goods/card_code')->update($card_update);
                 Dever::alert('礼品卡已失效');
             }
-            $card_info = Dever::db('goods/card')->find($data['card']['card_id']);
-            if (!$card_info) {
-                Dever::alert('卡号/密码错误');
+
+        } else {
+            if (time() > $data['edate']) {
+                # 更新礼品卡状态
+                $card_update['where_id'] = $data['id'];
+                $card_update['uid'] = $uid;
+                $card_update['status'] = 5;
+                Dever::db('goods/card_code')->update($card_update);
+                Dever::alert('礼品卡已失效');
+            } else {
+                # 更新礼品卡状态
+                $card_update['where_id'] = $data['id'];
+                $card_update['status'] = 2;
+                $card_update['uid'] = $uid;
+                $card_update['ddate'] = time();
+                Dever::db('goods/card_code')->update($card_update);
             }
+        }
+
+        $data = Dever::db('goods/card_code')->find($data['id']);
+        $data['goods'] = $info['goods'];
+
+        return $data;
+    }
+
+    # 得到商品和总价
+    public function goods(&$data)
+    {
+        # 1自提,2配送
+        $data['method'] = Dever::input('method', 1);
+        $data['pay_method'] = Dever::input('pay_method');
+
+        if ($data['pay_method'] == 3) {
 
-            # 更新礼品卡状态
-            $card_update['where_id'] = $data['card']['id'];
-            $card_update['status'] = 2;
-            $card_update['uid'] = $data['uid'];
-            $card_update['shop_id'] = $data['shop']['id'];
-            $card_update['ddate'] = time();
-            Dever::db('goods/card_code')->update($card_update);
+            $data['card'] = $this->card($data['uid'], $data['shop']);
 
-            $goods = Dever::array_decode($card_info['goods']);
+            $goods = Dever::array_decode($data['card']['goods']);
 
             $goods_id = array();
             $num = array();
@@ -658,6 +692,7 @@ class Sell
                 $card_update['where_id'] = $card['id'];
                 $card_update['status'] = 3;
                 $card_update['order_id'] = $id;
+                $card_update['shop_id'] = $shop['id'];
                 Dever::db('goods/card_code')->update($card_update);
             }
         	return array

+ 11 - 8
app/shop/src/My.php

@@ -90,18 +90,21 @@ class My extends Core
 		return $this->data;
 	}
 
-	# 兑换礼品卡
+	# 检测礼品卡
 	public function dh_card()
 	{
-		$where['card'] = Dever::input('card');
-		$where['pwd'] = Dever::input('pwd');
-		$info = Dever::db('goods/card_code')->find($where);
+		$city = Dever::input('city');
+        $lng = Dever::input('lng');
+        $lat = Dever::input('lat');
 
-		if ($info && $info['status'] == 1) {
-			# 可以兑换
-		} else {
-			return "该礼品卡过有效期\r\n无法兑换";
+		$data['shop'] = Dever::load('shop/lib/info')->get($city, $lng, $lat);
+		if (!$data['shop']) {
+			Dever::alert('没有门店');
 		}
+
+		$data['card'] = Dever::load('shop/lib/sell')->set(1, 1)->card($this->uid, $data['shop']);
+		
+		return $data;
 	}
 
 	# 我的订单列表