dever 3 年之前
父節點
當前提交
c4ccb9a797
共有 4 個文件被更改,包括 71 次插入18 次删除
  1. 12 0
      database/city.php
  2. 12 0
      database/county.php
  3. 12 0
      database/town.php
  4. 35 18
      src/Api.php

+ 12 - 0
database/city.php

@@ -113,6 +113,18 @@ return array
 			'edit'		=> true,
 		),
 
+		'price'      => array
+        (
+            'type'      => 'varchar-15',
+            'name'      => '城市价值-城市代理价格,以万为单位',
+            'default'   => '0',
+            'desc'      => '城市价值',
+            'match'     => 'is_string',
+            'update'    => 'text',
+            'list'      => true,
+            'edit'		=> true,
+        ),
+
 		'reorder'		=> array
 		(
 			'type' 		=> 'int-11',

+ 12 - 0
database/county.php

@@ -151,6 +151,18 @@ return array
             'edit'		=> true,
         ),
 
+        'price'      => array
+        (
+            'type'      => 'varchar-15',
+            'name'      => '区县价值-区县代理价格,以万为单位',
+            'default'   => '0',
+            'desc'      => '区县价值',
+            'match'     => 'is_string',
+            'update'    => 'text',
+            'list'      => true,
+            'edit'		=> true,
+        ),
+
 		'reorder'		=> array
 		(
 			'type' 		=> 'int-11',

+ 12 - 0
database/town.php

@@ -140,6 +140,18 @@ return array
             'edit'		=> true,
         ),
 
+        'price'      => array
+        (
+            'type'      => 'varchar-15',
+            'name'      => '街道价值-街道代理价格,以万为单位',
+            'default'   => '0',
+            'desc'      => '街道价值',
+            'match'     => 'is_string',
+            'update'    => 'text',
+            'list'      => true,
+            'edit'		=> true,
+        ),
+
 		'reorder'		=> array
 		(
 			'type' 		=> 'int-11',

+ 35 - 18
src/Api.php

@@ -246,39 +246,56 @@ class Api
         $city = Dever::db('area/city')->find($city);
         if ($city && $city['level_id'] > 0) {
             $level = Dever::db('area/level')->find($city['level_id']);
-            if (!$level) {
-                return $price;
-            }
 
             $num = 10000;
             if ($type == 1) {
                 # 城市
-                $price = $level['city_price'] * $num;
+                $city_price = 0;
+                if ($city['price'] && $city['price'] > 0) {
+                    $city_price = $city['price'];
+                } elseif ($level) {
+                    $city_price = $level['city_price'];
+                }
+                $price = $city_price * $num;
             } elseif ($type == 2) {
                 # 区县
+                $county_price = 0;
                 $county = $area[2];
                 $county = Dever::db('area/county')->find($county);
-                if ($county && $county['level'] == 2) {
-                    $up_level = Dever::db('area/level')->find(array('level' => $level['level'] - 1));
-                    if ($up_level) {
-                        $level['county_price'] = $up_level['county_price'];
-                    }
-                }
-                if ($county && $county['level'] == 3) {
-                    $up_level = Dever::db('area/level')->find(array('level' => $level['level'] - 2));
-                    if ($up_level) {
-                        $level['county_price'] = $up_level['county_price'];
+                if ($county) {
+                    if ($county['price'] && $county['price'] > 0) {
+                        $county_price = $county['price'];
+                    } elseif ($level && $county['level'] == 2) {
+                        $up_level = Dever::db('area/level')->find(array('level' => $level['level'] - 1));
+                        if ($up_level) {
+                            $county_price = $up_level['county_price'];
+                        }
+                    } elseif ($level && $county['level'] == 3) {
+                        $up_level = Dever::db('area/level')->find(array('level' => $level['level'] - 2));
+                        if ($up_level) {
+                            $county_price = $up_level['county_price'];
+                        }
+                    } elseif ($level) {
+                        $county_price = $level['county_price'];
                     }
                 }
-                $price = $level['county_price'] * $num;
+                
+                $price = $county_price * $num;
             } elseif ($type == 3) {
                 # 街道
+                $town_price = 0;
                 $town = $area[3];
                 $town = Dever::db('area/town')->find($town);
-                if ($town && $town['type'] > 1) {
-                    $level['town_price'] = $level['county_price'];
+                if ($town) {
+                    if ($town['price'] && $town['price'] > 0) {
+                        $town_price = $town['price'];
+                    } elseif ($level && $town['type'] > 1) {
+                        $town_price = $level['county_price'];
+                    } else ($level) {
+                        $town_price = $level['town_price'];
+                    }
                 }
-                $price = $level['town_price'] * $num;
+                $price = $town_price * $num;
             }
         }