Pārlūkot izejas kodu

updating: update carousel server-side

joe 4 gadi atpakaļ
vecāks
revīzija
012cd488b6

+ 8 - 0
app/admin/controller/Test.php

@@ -8,6 +8,7 @@ use crmeb\services\async\ClearanceCalc;
 use crmeb\utils\Redis;
 use think\facade\Log;
 use app\api\controller\board\UserBoardController;
+use app\models\redis\SystemCarousel;
 
 class Test
 {
@@ -31,7 +32,14 @@ class Test
         }
     }
 
+    protected function test_carousel() {
+        SystemCarousel::add('good test', '/pages/leader_board/index');
+        print_r(SystemCarousel::getFirst(20));
+        SystemCarousel::removeTrash();
+    }
+
     public function test()
     {
+        $this->test_carousel();
     }
 }

+ 2 - 1
app/api/controller/PublicController.php

@@ -21,6 +21,7 @@ use crmeb\services\UtilService;
 use crmeb\services\workerman\ChannelService;
 use think\facade\Cache;
 use crmeb\services\upload\Upload;
+use app\models\redis\SystemCarousel;
 
 /**
  * 公共类
@@ -41,7 +42,7 @@ class PublicController
         $filing_info = sys_config('filing_info') ?? '';
         $banner = sys_data('routine_home_banner') ?: [];//TODO 首页banner图
         $menus = sys_data('routine_home_menus') ?: [];//TODO 首页按钮
-        $roll = sys_data('routine_home_roll_news') ?: [];//TODO 首页滚动新闻
+        $roll = SystemCarousel::getFirst(20); // sys_data('routine_home_roll_news') ?: [];//TODO 首页滚动新闻 update to carousel
         $activity = sys_data('routine_home_activity', 3) ?: [];//TODO 首页活动区域图片
         $explosive_money = sys_data('index_categy_images') ?: [];//TODO 首页超值爆款
         $site_name = sys_config('site_name');

+ 10 - 7
app/models/redis/SystemCarousel.php

@@ -19,13 +19,16 @@ class SystemCarousel {
             }
      uri 为客户端路由, 用于客户端跳转
      */
-    public static function add($text, $uri='') {
+    public static function add($text, $uri='', $h5uri='') {
         $val = json_encode([
-            'text'=> $text,
-            'uri' => $uri,
+            'id' => 0, // compatible
+            'info'=> $text,
+            'url' => $uri,
+            'wap_url' => $h5uri,
+            'show' => '2',  // compatible
         ]);
-
-        return Redis::lPush(self::$KEY, $val);
+        $redis = Redis::instance();
+        return $redis->lpush(self::$KEY, $val);
     }
 
     public static function getFirst($n) {
@@ -37,7 +40,7 @@ class SystemCarousel {
         return $rv;
     }
 
-    public static function removeTrash($start) {
-        return Redis::lTrim(self::$KEY, 0, $start);
+    public static function removeTrash($start=10) {
+        return Redis::lTrim(self::$KEY, 0, $start - 1);
     }
 }

+ 7 - 1
crmeb/subscribes/TimerSubscribe.php

@@ -8,6 +8,7 @@ use app\models\store\StoreBargainUser;
 use app\models\store\StoreOrder;
 use app\models\store\StorePink;
 use app\models\user\UserToken;
+use app\models\redis\SystemCarousel;
 use crmeb\services\async\ClearanceCalc;
 use crmeb\services\async\LuckyCalc;
 use think\facade\Db;
@@ -90,13 +91,15 @@ class TimerSubscribe
     public function onTimer_60()
     {
         $tm = localtime(time(), true);
-
+        
         // 缓存排行榜
         Log::warning("onTimer_60()" . $tm['tm_hour'] . ':' . $tm['tm_min']);
         if (intval($tm['tm_min']) % 5 == 0) {
             Log::warning("board updated.");
             $ctl = new UserBoardController();
             $ctl->cache_board();
+            // TODO: for testing, remove line below
+            SystemCarousel::add('who will win next race?', '/pages/leader_board/index');
         }
 
         if (intval($tm['tm_min']) == 0) {
@@ -105,6 +108,9 @@ class TimerSubscribe
             foreach($activities as $activity) {
                 $activity->calc();
             }
+            
+            SystemCarousel::removeTrash();
+
             Log::warning('onTimer_60() activities calculated.');
             // 每日 24
             if (intval($tm['tm_hour']) == 0) {

+ 7 - 7
docs/通信协议/global.md

@@ -18,12 +18,12 @@ noauth
 returns
 ```json
 {
-  "carousel": {
-    "interval": 3,
-    "items": [{
-      "text": "<span style=\"color:2343;\"></span>",
-      "uri": "page/boards",
-    }]      // 跑马灯
-  }
+  "carousel": [{  // compatible with current protocol
+    "id": 1,
+    "info": "<span style=\"color:2343;\"></span>",
+    "uri": "page/boards",
+    "wap_url": "/boards",
+    "show": "1"
+  }]      // 跑马灯
 }
 ```

+ 6 - 4
route/api/route.php

@@ -27,6 +27,11 @@ Route::post('register', 'AuthController/register')->name('register')
 Route::post('register/reset', 'AuthController/reset')->name('registerReset')
     ->middleware(\app\http\middleware\AllowOriginMiddleware::class);
 
+/**
+ * 排行榜 api
+ */
+Route::get('boards', 'board.UserBoardController/boards')->name('board');
+
 // 模拟推送 (不需要登录)
 Route::get('notifications', 'AuthController/notifications')->name('notifications');
 
@@ -171,10 +176,7 @@ Route::group(function () {
     Route::get('user/messages', 'user.UserNoticeController/messages')->name('userMessages');
     Route::post('user/messages', 'user.UserNoticeController/read')->name('userRead');
     Route::post('user/messages/del', 'user.UserNoticeController/del')->name('userDel');
-    /**
-     * 排行榜 api
-     */
-    Route::get('boards', 'board.UserBoardController/boards')->name('board');
+    
     /**
      * 挖矿类 api
      */