dever 3 år sedan
förälder
incheckning
c9f647cd7d
4 ändrade filer med 27 tillägg och 18 borttagningar
  1. 2 2
      database/city.php
  2. 2 2
      database/county.php
  3. 2 2
      database/town.php
  4. 21 12
      src/Api.php

+ 2 - 2
database/city.php

@@ -116,8 +116,8 @@ return array
 		'price'      => array
         (
             'type'      => 'varchar-15',
-            'name'      => '城市价值-城市代理价格,以万为单位',
-            'default'   => '0',
+            'name'      => '城市价值-城市代理价格,以万为单位,-1表示继承城市等级里的价值规则',
+            'default'   => '-1',
             'desc'      => '城市价值',
             'match'     => 'is_string',
             'update'    => 'text',

+ 2 - 2
database/county.php

@@ -154,8 +154,8 @@ return array
         'price'      => array
         (
             'type'      => 'varchar-15',
-            'name'      => '区县价值-区县代理价格,以万为单位',
-            'default'   => '0',
+            'name'      => '区县价值-区县代理价格,以万为单位,-1表示继承城市等级里的价值规则',
+            'default'   => '-1',
             'desc'      => '区县价值',
             'match'     => 'is_string',
             'update'    => 'text',

+ 2 - 2
database/town.php

@@ -143,8 +143,8 @@ return array
         'price'      => array
         (
             'type'      => 'varchar-15',
-            'name'      => '街道价值-街道代理价格,以万为单位',
-            'default'   => '0',
+            'name'      => '街道价值-街道代理价格,以万为单位,-1表示继承城市等级里的价值规则',
+            'default'   => '-1',
             'desc'      => '街道价值',
             'match'     => 'is_string',
             'update'    => 'text',

+ 21 - 12
src/Api.php

@@ -250,40 +250,46 @@ class Api
             $num = 10000;
             if ($type == 1) {
                 # 城市
-                $city_price = 0;
-                if ($city['price'] && $city['price'] > 0) {
+                $city_price = -1;
+                if ($city['price'] && $city['price'] >= 0) {
                     $city_price = $city['price'];
-                } elseif ($level) {
+                }
+                if ($city_price < 0 && $level) {
                     $city_price = $level['city_price'];
+                } else {
+                    $city_price = 0;
                 }
                 $price = $city_price * $num;
             } elseif ($type == 2) {
                 # 区县
-                $county_price = 0;
+                $county_price = -1;
                 $county = $area[2];
                 $county = Dever::db('area/county')->find($county);
                 if ($county) {
-                    if ($county['price'] && $county['price'] > 0) {
+                    if ($county['price'] && $county['price'] >= 0) {
                         $county_price = $county['price'];
-                    } elseif ($level && $county['level'] == 2) {
+                    } elseif ($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) {
+                    } elseif ($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'];
                     }
                 }
+                if ($county_price < 0 && $level) {
+                    $county_price = $level['county_price'];
+                } else {
+                    $county_price = 0;
+                }
                 
                 $price = $county_price * $num;
             } elseif ($type == 3) {
                 # 街道
-                $town_price = 0;
+                $town_price = -1;
                 $town = $area[3];
                 $town = Dever::db('area/town')->find($town);
                 if ($town) {
@@ -291,10 +297,13 @@ class Api
                         $town_price = $town['price'];
                     } elseif ($level && $town['type'] > 1) {
                         $town_price = $level['county_price'];
-                    } elseif ($level) {
-                        $town_price = $level['town_price'];
                     }
                 }
+                if ($town_price < 0 && $level) {
+                    $town_price = $level['town_price'];
+                } else {
+                    $town_price = 0;
+                }
                 $price = $town_price * $num;
             }
         }