Преглед изворни кода

Merge branch 'master' of http://47.76.126.2:3000/seven/bot-28

Ken пре 6 дана
родитељ
комит
1bb1ddaa9a
3 измењених фајлова са 65 додато и 46 уклоњено
  1. 59 43
      app/Services/BaseService.php
  2. 1 1
      app/Services/BetService.php
  3. 5 2
      app/Services/IssueService.php

+ 59 - 43
app/Services/BaseService.php

@@ -221,59 +221,75 @@ class BaseService
         if (empty($separator)) $separator = "\n";
         $array = explode($separator, $text);
 
-
-        foreach ($array as $key => $line) {
-            if (empty(str_ireplace(" ", "", str_ireplace("\n", '', $line)))) {
-                unset($array[$key]);
-            } else {
-                $array[$key] .= $separator;
-            }
-        }
-        $texts = [];
-        $len = !empty($image) ? 1024 : 4096;
-        foreach ($array as $item) {
-            if (count($texts) > 1) $len = 4096;
-            if (count($texts) == 0 || strlen($texts[count($texts) - 1] . $item) > $len) {
-                $texts[] = $item;
-            } else {
-                $texts[count($texts) - 1] .= $item;
-            }
-        }
-
         $res = [];
-        foreach ($texts as $index => $item) {
-            $botMsg = [
+        // 为空只发图片
+        if(empty($text) && !empty($image)) {
+             $botMsg = [
                 'chat_id' => "@{$bettingGroup}",
-                'text' => $item,
             ];
-            if ($index > 0) {
-                $res[] = $botMsg;
-                self::telegram()->sendMessage($botMsg);
-            } else {
-                if (count($keyboard) > 0) {
-                    $botMsg['reply_markup'] = json_encode(['inline_keyboard' => $keyboard]);
-                }
-                if (!empty($image)) {
-                    unset($botMsg['text']);
-                    $botMsg['photo'] = InputFile::create($image);
-                    $botMsg['caption'] = $item;
-                    $botMsg['protect_content'] = true;
-                    $res[] = $botMsg;
-                    $response = self::telegram()->sendPhoto($botMsg);
+            $botMsg['photo'] = InputFile::create($image);
+            $botMsg['caption'] = $text;
+            $botMsg['protect_content'] = true;  // 防止转发
+            if (count($keyboard) > 0) {
+                $botMsg['reply_markup'] = json_encode(['inline_keyboard' => $keyboard]);
+            }
+            $response = self::telegram()->sendPhoto($botMsg);
+        } else {
+            foreach ($array as $key => $line) {
+                if (empty(str_ireplace(" ", "", str_ireplace("\n", '', $line)))) {
+                    unset($array[$key]);
                 } else {
-                    $res[] = $botMsg;
-                    $response = self::telegram()->sendMessage($botMsg);
+                    $array[$key] .= $separator;
                 }
-                if ($isTop === true) {
-                    self::telegram()->pinChatMessage([
-                        'chat_id' => "@{$bettingGroup}",
-                        'message_id' => $response->get('message_id')
-                    ]);
+            }
+            $texts = [];
+            $len = !empty($image) ? 1024 : 4096;
+            foreach ($array as $item) {
+                if (count($texts) > 1) $len = 4096;
+                if (count($texts) == 0 || strlen($texts[count($texts) - 1] . $item) > $len) {
+                    $texts[] = $item;
+                } else {
+                    $texts[count($texts) - 1] .= $item;
                 }
             }
 
+            
+            foreach ($texts as $index => $item) {
+                $botMsg = [
+                    'chat_id' => "@{$bettingGroup}",
+                    'text' => $item,
+                ];
+                if ($index > 0) {
+                    $res[] = $botMsg;
+                    self::telegram()->sendMessage($botMsg);
+                } else {
+                    if (count($keyboard) > 0) {
+                        $botMsg['reply_markup'] = json_encode(['inline_keyboard' => $keyboard]);
+                    }
+                    if (!empty($image)) {
+                        unset($botMsg['text']);
+                        $botMsg['photo'] = InputFile::create($image);
+                        $botMsg['caption'] = $item;
+                        $botMsg['protect_content'] = true;
+                        $res[] = $botMsg;
+                        $response = self::telegram()->sendPhoto($botMsg);
+                    } else {
+                        $res[] = $botMsg;
+                        $response = self::telegram()->sendMessage($botMsg);
+                    }
+                    if ($isTop === true) {
+                        self::telegram()->pinChatMessage([
+                            'chat_id' => "@{$bettingGroup}",
+                            'message_id' => $response->get('message_id')
+                        ]);
+                    }
+                }
 
+
+            }
         }
+
+        
         return $res;
     }
 

+ 1 - 1
app/Services/BetService.php

@@ -388,7 +388,7 @@ class BetService extends BaseService
                 $betMini = $betFakeRandAmount[0] ?? 10;
                 $betMax = $betFakeRandAmount[1] ?? 10000;
 
-                $now_date = date('Y-m-d H:i:s', time() + 45); // 提前45秒
+                $now_date = date('Y-m-d H:i:s', time() + 38); // 提前45秒
                 if ($issueInfo['end_time'] > $now_date) {
                     $fake_bet_list = Cache::get('fake_bet_' . $issueInfo->issue_no, []);
 

+ 5 - 2
app/Services/IssueService.php

@@ -220,6 +220,10 @@ class IssueService extends BaseService
             // self::bettingGroupNotice($text, $buttons, $image);
             self::asyncBettingGroupNotice($text, $buttons, $image);
         }
+
+        // 投注情况通知
+        BetService::statNotice($info->issue_no);
+
         $replyInfo = KeyboardService::findOne(['button' => '封盘开奖']);
         if ($replyInfo) {
             $text = $replyInfo->reply;
@@ -232,8 +236,7 @@ class IssueService extends BaseService
             self::asyncBettingGroupNotice($text, $buttons, $image);
         }
 
-        // 投注情况通知
-        BetService::statNotice($info->issue_no);
+        
 
         return ['code' => self::YES, 'msg' => '封盘成功'];
     }