Kaynağa Gözat

天气查询接口改为双appKey

shensong 5 yıl önce
ebeveyn
işleme
ced9f8dac3
2 değiştirilmiş dosya ile 38 ekleme ve 2 silme
  1. 19 1
      app/FxOrder.php
  2. 19 1
      app/Order.php

+ 19 - 1
app/FxOrder.php

@@ -30,7 +30,7 @@ class FxOrder extends Model
30 30
     /*更新城市天气信息*/
31 31
     public static function updateWeather($order_id) {
32 32
         $redisKey = 'seafood_order_city_weather';
33
-        $appKey = '32c8f844f8055f70f702fc28ec930e52';
33
+        $appKey = self::getAppKey();
34 34
         //查询订单收件人所在的城市(过滤关键字 市)
35 35
         $city = self::where('id', $order_id)->pluck('receiverCity');
36 36
         $city = str_replace('市','',$city);
@@ -69,9 +69,27 @@ class FxOrder extends Model
69 69
                 $sellerMemo = self::where('id', $order_id)->pluck('sellerMemo');
70 70
                 $sellerMemo = $sellerMemo.'  '.$city.'天气状况:'.$weather;
71 71
                 self::where('id', $order_id)->update(['sellerMemo'=>$sellerMemo]);
72
+            } else if($result['error_code'] == '10012'){
73
+                //超过100次/天上限 更换APPKey
74
+                RedisModel::set('seafood_order_city_weather_key', '1');
75
+                self::updateWeather($order_id);
72 76
             }
73 77
         }
74 78
 
75 79
         return true;
76 80
     }
81
+
82
+    public static function getAppKey() {
83
+        $redisKey = 'seafood_order_city_weather_key';
84
+        $appKeyArr = ['32c8f844f8055f70f702fc28ec930e52', '85bfc19adb25998b2559d7ceba950e13'];
85
+        $appKey = RedisModel::get($redisKey);
86
+        if($appKey) {
87
+            return $appKeyArr[$appKey];
88
+        } else {
89
+            RedisModel::set($redisKey, '0');
90
+            $endTime = strtotime(date('Y-m-d 00:00:00',strtotime('+1 days'))) -1;
91
+            $expire = $endTime - time();
92
+            RedisModel::expire($redisKey, $expire);
93
+        }
94
+    }
77 95
 }

+ 19 - 1
app/Order.php

@@ -310,7 +310,7 @@ class Order extends Model
310 310
     /*更新城市天气信息*/
311 311
     public static function updateWeather($order_id) {
312 312
         $redisKey = 'seafood_order_city_weather';
313
-        $appKey = '32c8f844f8055f70f702fc28ec930e52';
313
+        $appKey = self::getAppKey();
314 314
         //查询订单收件人所在的城市(过滤关键字 市)
315 315
         $city = self::where('id', $order_id)->pluck('receiverCity');
316 316
         $city = str_replace('市','',$city);
@@ -349,9 +349,27 @@ class Order extends Model
349 349
                 $sellerMemo = self::where('id', $order_id)->pluck('sellerMemo');
350 350
                 $sellerMemo = $sellerMemo.'  '.$city.'天气状况:'.$weather;
351 351
                 self::where('id', $order_id)->update(['sellerMemo'=>$sellerMemo]);
352
+            } else if($result['error_code'] == '10012'){
353
+                //超过100次/天上限 更换APPKey
354
+                RedisModel::set('seafood_order_city_weather_key', '1');
355
+                self::updateWeather($order_id);
352 356
             }
353 357
         }
354 358
 
355 359
         return true;
356 360
     }
361
+
362
+    public static function getAppKey() {
363
+        $redisKey = 'seafood_order_city_weather_key';
364
+        $appKeyArr = ['32c8f844f8055f70f702fc28ec930e52', '85bfc19adb25998b2559d7ceba950e13'];
365
+        $appKey = RedisModel::get($redisKey);
366
+        if($appKey) {
367
+            return $appKeyArr[$appKey];
368
+        } else {
369
+            RedisModel::set($redisKey, '0');
370
+            $endTime = strtotime(date('Y-m-d 00:00:00',strtotime('+1 days'))) -1;
371
+            $expire = $endTime - time();
372
+            RedisModel::expire($redisKey, $expire);
373
+        }
374
+    }
357 375
 }