rabin преди 3 дни
родител
ревизия
8b35d7bd62

+ 12 - 2
src/place/interface/app/Api/Source.php

@@ -227,11 +227,21 @@ class Source extends Core
         return $data;
     }
 
-    # 资源sku
+    # 资源规格
+    public function spec()
+    {
+        $source_id = Dever::input('id', 'is_numeric', '资源ID');
+        $data['spec'] = Dever::load(\Psource\Lib\Info::class)->getSpec($source_id);
+        return $data;
+    }
+
+    # 根据资源规格获取价格
     public function sku()
     {
         $source_id = Dever::input('id', 'is_numeric', '资源ID');
-        $data['sku'] = Dever::load(\Psource\Lib\Info::class)->getSku($source_id);
+        $spec = Dever::input('spec');
+        $sku_id = Dever::input('sku_id');
+        $data['sku'] = Dever::load(\Psource\Lib\Info::class)->getSku($source_id, $spec, $sku_id);
         return $data;
     }
 

+ 0 - 1
src/place/order/app/Lib/Source/Pay.php

@@ -14,7 +14,6 @@ class Pay extends Core
         if ($this->set['id'] != $source['cate_id']) {
             Dever::error('资源不存在');
         }
-        //$detail = Dever::load(\Api\Lib\Sku::class)->getList(['info_id' => $source['id']], $info['sku_id'], 'psource');
         $detail = Dever::load(\Api\Lib\Sku::class)->getInfo(['id' => $info['sku_id'], 'info_id' => $source['id']], 'psource');
         if (!$detail) {
             Dever::error('规格不存在');

+ 41 - 10
src/place/source/app/Lib/Info.php

@@ -108,26 +108,57 @@ class Info
         return $info;
     }
 
-    # 获取资源sku信息
-    public function getSku($id)
+    # 获取资源规格信息
+    public function getSpec($id)
     {
         $info = Dever::db('psource/info')->find(['id' => $id, 'status' => 1], ['col' => 'id,sku_id,cate_id']);
         if (!$info) {
             Dever::error('资源不存在');
         }
+        return Dever::load(\Api\Lib\Spec::class)->getList(['info_id' => $info['id']], $info['sku_id'], 'psource');
+    }
 
-        # 分类
-        $cate = Dever::load(Cate::class)->getInfo($info['cate_id']);
+    # 根据资源规格获取价格
+    public function getSku($id, $spec = '', $default_sku_id = 0)
+    {
+        $info = Dever::db('psource/info')->find(['id' => $id, 'status' => 1], ['col' => 'id,sku_id,cate_id,pic']);
+        if (!$info) {
+            Dever::error('资源不存在');
+        }
 
-        $sku = Dever::load(\Api\Lib\Sku::class)->getList(['info_id' => $info['id']], $info['sku_id'], 'psource');
+        if (!$spec) {
+            $where = ['id' => $info['sku_id'], 'info_id' => $info['id']];
+        } else {
+            $where = ['info_id' => $info['id'], 'key' => $spec];
+        }
 
-        if ($sku['info']) {
-            $sku['info'] = Dever::load(Price::class)->get($sku['info'], $cate, -1);
+        $sku = $this->getSkuPrice($where, $info);
+        if ((!$sku && $default_sku_id) || ($sku['price'] == null && $sku['code'] == null)) {
+            # 如果没有,获取默认值
+            $where = ['id' => $default_sku_id, 'info_id' => $info['id']];
+            $sku = $this->getSkuPrice($where, $info);
+            if ($sku) {
+                $sku['stock']['num'] = 0;
+            }
         }
-        if ($sku['price']) {
-            foreach ($sku['price'] as &$price) {
-                $price = Dever::load(Price::class)->get($price, $cate, -1);
+        return $sku;
+    }
+
+    # 获取价格
+    public function getSkuPrice($where, $info)
+    {
+        $sku = Dever::load(\Api\Lib\Sku::class)->getInfo($where, 'psource');
+        if ($sku) {
+            if ($sku['price'] === '') {
+                return false;
+            }
+            if (!$sku['pic']) {
+                $pic = explode(',', $info['pic']);
+                $sku['pic'] = $pic[0];
             }
+            # 分类
+            $cate = Dever::load(Cate::class)->getInfo($info['cate_id']);
+            $sku = Dever::load(Price::class)->get($sku, $cate, -1);
         }
         return $sku;
     }

+ 1 - 1
src/place/user/app/Lib/Address.php

@@ -81,7 +81,7 @@ class Address
     }
 
     # 添加或者更新地址
-    public function update($id, $type = 1, $phone, $name, $province = '', $city = '', $county = '', $town = '', $address = '')
+    public function update($id, $type = 1, $phone = '', $name = '', $province = '', $city = '', $county = '', $town = '', $address = '')
     {
         $update['uid'] = $this->uid;
         if ($name) {

+ 1 - 1
src/sector/app/Api/Cron.php

@@ -71,7 +71,7 @@ class Cron
             $ql = \QL\QueryList::get($link);
             $name = $ql->find('.yupoo-crumbs-span')->eq(1)->title;
             if (strstr($name, '】')) {
-                $temp = explode('】', $temp);
+                $temp = explode('】', $name);
                 $name = $temp[1];
             }
             $price = 488;