dever 3 jaren geleden
bovenliggende
commit
0e84395888
6 gewijzigde bestanden met toevoegingen van 125 en 55 verwijderingen
  1. 2 9
      app/mshop/src/Data.php
  2. 13 0
      app/mshop/src/My.php
  3. 15 0
      app/shop/database/coupon.php
  4. 36 0
      app/shop/lib/Coupon.php
  5. 57 23
      app/shop/lib/Sell.php
  6. 2 23
      app/shop/src/My.php

+ 2 - 9
app/mshop/src/Data.php

@@ -191,21 +191,14 @@ class Data extends Core
             foreach ($this->data as $k => $v) {
                 $this->data[$k]['info'] = Dever::db('goods/coupon')->find($v['coupon_id']);
                 $this->data[$k]['shop'] = array();
-                $coupon = Dever::db('shop/coupon')->select(array('coupon_id' => $v['coupon_id'], 'city' => $v['city']));
-
-                foreach ($coupon as $k1 => $v1) {
-                    $shop = Dever::db('shop/info')->getOne(array('id' => $v1['shop_id'], 'city' => $v['city'], 'coupon_city' => 1));
-                    if ($shop) {
-                        $this->data[$k]['shop'][] = $shop;
-                    }
-                }
+                $shop_num = Dever::db('shop/coupon')->total(array('coupon_id' => $v['coupon_id'], 'city' => $v['city']));
 
                 $shop = Dever::db('shop/info')->getOne($v['shop_id']);
                 if ($this->data[$k]['info']['method'] == 1) {
                     $this->data[$k]['shop_name'] = '平台通用';
                 } elseif ($this->data[$k]['info']['method'] == 2) {
                     $this->data[$k]['shop_name'] = $shop['name'];
-                    if (count($this->data[$k]['shop']) > 1) {
+                    if ($shop_num > 1) {
                         $this->data[$k]['shop_name'] .= '多店通用';
                     }
                 } elseif ($this->data[$k]['info']['method'] == 3) {

+ 13 - 0
app/mshop/src/My.php

@@ -414,4 +414,17 @@ class My extends Core
         return $this->data;
     }
 
+    # 门店物料
+    public function info()
+    {
+        $config = Dever::db('main/manage_config')->find();
+        $this->data['file'] = $config['file'];
+        $param['project'] = 1;
+        $param['width'] = 150;
+        $param['path'] = 'pages/app/shop/shop';
+        $param['send'] = $this->shop_id;
+        $this->data['ercode'] = Dever::load('wechat_applet/code')->get($param);
+        return $this->data;
+    }
+
 }

+ 15 - 0
app/shop/database/coupon.php

@@ -185,6 +185,21 @@ return array
             'col' => '*',
         ),
 
+        # 列表
+        'getAll' => array
+        (
+            # 匹配的正则或函数 选填项
+            'option' => array
+            (
+                'shop_id' => 'yes',
+                'method' => 'yes',
+                'state' => 1,
+            ),
+            'type' => 'all',
+            'order' => array('id' => 'desc'),
+            'col' => '*',
+        ),
+
         'getData' => array
         (
             # 匹配的正则或函数 选填项

+ 36 - 0
app/shop/lib/Coupon.php

@@ -120,4 +120,40 @@ class Coupon
 
         return $id;
     }
+
+    # 获取能用的优惠券的店铺名称
+    public function getShop($data, $shop = false, $shop_list = false)
+    {
+        $data['shop_name'] = '门店专属';
+        if ($shop) {
+            $data['shop_name'] = $shop['name'];
+        } elseif (isset($data['shop_id'])) {
+            $shop = Dever::db('shop/info')->getOne($data['shop_id']);
+            $data['shop_name'] = $shop['name'];
+        }
+        if ($data['method'] == 1) {
+            $data['shop_name'] = '平台通用';
+        } elseif ($data['method'] == 2) {
+            $where = array('coupon_id' => $data['coupon_id'], 'city' => $data['city']);
+            if ($shop_list) {
+                $shop_coupon = Dever::db('shop/coupon')->select($where);
+                $data['shop'] = array();
+                foreach ($shop_coupon as $k1 => $v1) {
+                    $shop = Dever::db('shop/info')->getOne(array('id' => $v1['shop_id'], 'city' => $data['city']));
+                    if ($shop) {
+                        $data['shop'][] = $shop;
+                    }
+                }
+                $shop_coupon = count($data['shop']);
+            } else {
+                $shop_coupon = Dever::db('shop/coupon')->total($where);
+            }
+            if ($shop_coupon > 1) {
+                $city = Dever::db('area/city')->find($data['city']);
+                $data['shop_name'] = $city['name'] . '多店通用';
+            }
+        }
+
+        return $data;
+    }
 }

+ 57 - 23
app/shop/lib/Sell.php

@@ -290,22 +290,60 @@ class Sell
         $data['coupon_id'] = 0;
         $data['coupon_cash'] = 0;
 
-        if ($type == 1 && isset($data['uid']) && $data['uid'] > 0) {
-            # 默认选择优惠券
-            if ($data['price'] <= 0) {
-                Dever::alert('付款价格错误');
-            }
-            # 查找符合要求的优惠券
-            $coupon = Dever::db('shop/user_coupon')->getAll(array('uid' => $data['uid'], 'city' => $data['shop']['city'], 'status' => 1, 'edate' => time()));
+        if ($type == 1) {
+            if (isset($data['uid']) && $data['uid'] > 0) {
+                # 默认选择优惠券
+                if ($data['price'] <= 0) {
+                    Dever::alert('付款价格错误');
+                }
+                # 查找符合要求的优惠券
+                $coupon = Dever::db('shop/user_coupon')->getAll(array('uid' => $data['uid'], 'city' => $data['shop']['city'], 'status' => 1, 'edate' => time()));
+
+                if ($coupon) {
+                    foreach ($coupon as $k => $v) {
+                        $coupon_info = Dever::db('goods/coupon')->find($v['coupon_id']);
+                        if ($coupon_info) {
+                            if ($v['shop_id'] != $data['shop']['id'] && $coupon_info['method'] == 3) {
+                                # 门店专属券 不能给别的门店用
+                                continue;
+                            }
+
+                            $kou = false;
+                            if ($coupon_info['type'] == 1) {
+                                # 满减券
+                                if ($data['price'] >= $coupon_info['total_cash']) {
+                                    $kou = true;
+                                }
+                            } else {
+                                $kou = true;
+                            }
 
-            if ($coupon) {
-                foreach ($coupon as $k => $v) {
-                    $coupon_info = Dever::db('goods/coupon')->find($v['coupon_id']);
-                    if ($coupon_info) {
-                        if ($v['shop_id'] != $data['shop']['id'] && $coupon_info['method'] == 3) {
-                            # 门店专属券 不能给别的门店用
-                            continue;
+                            if ($kou) {
+                                $coupon_info['user_coupon_id'] = $v['id'];
+                                $coupon_info['uid'] = $v['uid'];
+                                $coupon_info['edate'] = date('Y-m-d', $v['edate']);
+                                
+                                $coupon_info['shop_id'] = $v['shop_id'];
+                                $coupon_info['coupon_id'] = $v['coupon_id'];
+                                $coupon_info['city'] = $v['city'];
+                                $coupon_info = Dever::load('shop/lib/coupon')->getShop($coupon_info, $data['shop'], false);
+                                $data['coupon'][] = $coupon_info;
+
+                                if (!$user_coupon_id && $data['coupon_cash'] <= $coupon_info['cash']) {
+                                    $data['user_coupon_id'] = $v['id'];
+                                    $data['coupon_id'] = $coupon_info['id'];
+                                    $data['coupon_cash'] = $coupon_info['cash'];
+                                }
+                            }
                         }
+                    }
+                }
+            } else {
+                $coupon = Dever::db('shop/coupon')->getAll(array('shop_id' => $data['shop']['id']));
+                if ($coupon) {
+                    $time = time();
+                    foreach ($coupon as $k => $v) {
+                        $coupon_info = Dever::db('goods/coupon')->find($v['coupon_id']);
 
                         $kou = false;
                         if ($coupon_info['type'] == 1) {
@@ -318,17 +356,13 @@ class Sell
                         }
 
                         if ($kou) {
-                            $coupon_info['user_coupon_id'] = $v['id'];
-                            $coupon_info['uid'] = $v['uid'];
                             $coupon_info['shop_id'] = $v['shop_id'];
-                            $coupon_info['edate'] = date('Y-m-d', $v['edate']);
-                            $data['coupon'][] = $coupon_info;
+                            $coupon_info['coupon_id'] = $v['coupon_id'];
+                            $coupon_info['city'] = $v['city'];
 
-                            if (!$user_coupon_id && $data['coupon_cash'] <= $coupon_info['cash']) {
-                                $data['user_coupon_id'] = $v['id'];
-                                $data['coupon_id'] = $coupon_info['id'];
-                                $data['coupon_cash'] = $coupon_info['cash'];
-                            }
+                            $coupon_info = Dever::load('shop/lib/coupon')->getShop($coupon_info, $data['shop'], false);
+
+                            $data['coupon'][] = $coupon_info;
                         }
                     }
                 }

+ 2 - 23
app/shop/src/My.php

@@ -45,29 +45,8 @@ class My extends Core
 				$this->data[$k]['edate'] = date('Y-m-d', $v['edate']);
 				$this->data[$k]['info'] = Dever::db('goods/coupon')->find($v['coupon_id']);
 				$this->data[$k]['shop'] = array();
-
-				$city = Dever::db('area/city')->find($v['city']);
-
-				$coupon = Dever::db('shop/coupon')->select(array('coupon_id' => $v['coupon_id'], 'city' => $v['city']));
-
-				foreach ($coupon as $k1 => $v1) {
-					$shop = Dever::db('shop/info')->getOne(array('id' => $v1['shop_id'], 'city' => $v['city'], 'coupon_city' => 1));
-					if ($shop) {
-						$this->data[$k]['shop'][] = $shop;
-					}
-				}
-
-				$shop = Dever::db('shop/info')->getOne($v['shop_id']);
-				if ($this->data[$k]['info']['method'] == 1) {
-					$this->data[$k]['shop_name'] = '平台通用';
-				} elseif ($this->data[$k]['info']['method'] == 2) {
-					$this->data[$k]['shop_name'] = $shop['name'];
-					if (count($this->data[$k]['shop']) > 1) {
-						$this->data[$k]['shop_name'] .= '多店通用';
-					}
-				} elseif ($this->data[$k]['info']['method'] == 3) {
-					$this->data[$k]['shop_name'] = $shop['name'];
-				}
+				$this->data[$k]['method'] = $this->data[$k]['info']['method'];
+				$this->data[$k] = Dever::load('shop/lib/coupon')->getShop($this->data[$k], false, true);
 			}
 		}