|
@@ -13,7 +13,9 @@ use Illuminate\Support\Facades\Log;
|
|
|
|
|
|
|
|
use App\Services\GameplayRuleService;
|
|
use App\Services\GameplayRuleService;
|
|
|
use App\Constants\GameplayRuleEnum;
|
|
use App\Constants\GameplayRuleEnum;
|
|
|
|
|
+use App\Http\Controllers\admin\Lottery;
|
|
|
use App\Services\KeyboardService;
|
|
use App\Services\KeyboardService;
|
|
|
|
|
+use App\Services\LotteryImageService;
|
|
|
use Telegram\Bot\FileUpload\InputFile;
|
|
use Telegram\Bot\FileUpload\InputFile;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -232,6 +234,7 @@ class IssueService extends BaseService
|
|
|
$awards = self::award(explode(',',$winning_numbers));
|
|
$awards = self::award(explode(',',$winning_numbers));
|
|
|
DB::beginTransaction();
|
|
DB::beginTransaction();
|
|
|
try {
|
|
try {
|
|
|
|
|
+ self::lotteryImage($info->issue_no);
|
|
|
$info->status = self::model()::STATUS_DRAW;
|
|
$info->status = self::model()::STATUS_DRAW;
|
|
|
$info->winning_numbers = $winning_numbers;
|
|
$info->winning_numbers = $winning_numbers;
|
|
|
$info->combo = $combo;
|
|
$info->combo = $combo;
|
|
@@ -548,79 +551,79 @@ class IssueService extends BaseService
|
|
|
*/
|
|
*/
|
|
|
public static function currentLotteryResults($memberId)
|
|
public static function currentLotteryResults($memberId)
|
|
|
{
|
|
{
|
|
|
- $result = self::model()::where('status', self::model()::STATUS_DRAW)->orderBy('id','desc')->take(16)->get();
|
|
|
|
|
- $text = "📅 近期开奖记录\n";
|
|
|
|
|
- $text .= "====================\n";
|
|
|
|
|
- if($result){
|
|
|
|
|
- foreach($result as $k => $v){
|
|
|
|
|
|
|
+ // $result = self::model()::where('status', self::model()::STATUS_DRAW)->orderBy('id','desc')->take(16)->get();
|
|
|
|
|
+ // $text = "📅 近期开奖记录\n";
|
|
|
|
|
+ // $text .= "====================\n";
|
|
|
|
|
+ // if($result){
|
|
|
|
|
+ // foreach($result as $k => $v){
|
|
|
|
|
|
|
|
|
|
|
|
|
- $winArr = explode(',',$v->winning_numbers);
|
|
|
|
|
|
|
+ // $winArr = explode(',',$v->winning_numbers);
|
|
|
|
|
|
|
|
- // 组合
|
|
|
|
|
- $sum = array_sum($winArr);
|
|
|
|
|
|
|
+ // // 组合
|
|
|
|
|
+ // $sum = array_sum($winArr);
|
|
|
|
|
|
|
|
- $combo = [];
|
|
|
|
|
|
|
+ // $combo = [];
|
|
|
|
|
|
|
|
- $sumOddEven = self::calculateOddEven($sum); // 总和单双
|
|
|
|
|
|
|
+ // $sumOddEven = self::calculateOddEven($sum); // 总和单双
|
|
|
|
|
|
|
|
- $sumSize = self::calculateSumSize($sum); // 总和大小
|
|
|
|
|
|
|
+ // $sumSize = self::calculateSumSize($sum); // 总和大小
|
|
|
|
|
|
|
|
- $sumExtremeSize = self::calculateSumExtremeSize($sum); // 总和极值
|
|
|
|
|
- if(empty($sumExtremeSize)){
|
|
|
|
|
- $sumExtremeSize = "-";
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // $sumExtremeSize = self::calculateSumExtremeSize($sum); // 总和极值
|
|
|
|
|
+ // if(empty($sumExtremeSize)){
|
|
|
|
|
+ // $sumExtremeSize = "-";
|
|
|
|
|
+ // }
|
|
|
|
|
|
|
|
|
|
|
|
|
- $tail = self::getLastDigit($sum); // 总和尾数
|
|
|
|
|
- if($tail == 0){
|
|
|
|
|
- $tail = '-'; // 尾数
|
|
|
|
|
- }else{
|
|
|
|
|
- $tail = '尾'.$tail; // 尾数
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // $tail = self::getLastDigit($sum); // 总和尾数
|
|
|
|
|
+ // if($tail == 0){
|
|
|
|
|
+ // $tail = '-'; // 尾数
|
|
|
|
|
+ // }else{
|
|
|
|
|
+ // $tail = '尾'.$tail; // 尾数
|
|
|
|
|
+ // }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- $text .= "回合:{$v->issue_no}期 \n";
|
|
|
|
|
- $text .= "结果:".implode('+',explode(',',$v->winning_numbers))."=".array_sum(explode(',',$v->winning_numbers))." \n";
|
|
|
|
|
- $text .= "组合:{$sumSize} {$sumOddEven} \n";
|
|
|
|
|
- $text .= "极值:{$sumExtremeSize} \n";
|
|
|
|
|
- $text .= "尾数:{$tail} \n";
|
|
|
|
|
- $text .= "---------------------------\n";
|
|
|
|
|
- }
|
|
|
|
|
- self::telegram()->sendMessage([
|
|
|
|
|
- 'chat_id' => $memberId,
|
|
|
|
|
- 'text' => $text,
|
|
|
|
|
- ]);
|
|
|
|
|
- }else{
|
|
|
|
|
- self::telegram()->sendMessage([
|
|
|
|
|
- 'chat_id' => $memberId,
|
|
|
|
|
- 'text' => "暂无开奖记录",
|
|
|
|
|
- ]);
|
|
|
|
|
- }
|
|
|
|
|
- // $result = self::model()::where('status', self::model()::STATUS_DRAW)->orderBy('id','desc')->first();
|
|
|
|
|
- // if($result){
|
|
|
|
|
- // if($result->image){
|
|
|
|
|
- // self::telegram()->sendPhoto([
|
|
|
|
|
|
|
+ // $text .= "回合:{$v->issue_no}期 \n";
|
|
|
|
|
+ // $text .= "结果:".implode('+',explode(',',$v->winning_numbers))."=".array_sum(explode(',',$v->winning_numbers))." \n";
|
|
|
|
|
+ // $text .= "组合:{$sumSize} {$sumOddEven} \n";
|
|
|
|
|
+ // $text .= "极值:{$sumExtremeSize} \n";
|
|
|
|
|
+ // $text .= "尾数:{$tail} \n";
|
|
|
|
|
+ // $text .= "---------------------------\n";
|
|
|
|
|
+ // }
|
|
|
|
|
+ // self::telegram()->sendMessage([
|
|
|
// 'chat_id' => $memberId,
|
|
// 'chat_id' => $memberId,
|
|
|
- // 'photo' => InputFile::create(url($result->image)),
|
|
|
|
|
|
|
+ // 'text' => $text,
|
|
|
// ]);
|
|
// ]);
|
|
|
- // }else{
|
|
|
|
|
- // // if($result->combo){
|
|
|
|
|
- // // self::telegram()->sendMessage([
|
|
|
|
|
- // // 'chat_id' => $memberId,
|
|
|
|
|
- // // 'text' => "",
|
|
|
|
|
- // // ]);
|
|
|
|
|
- // // }else{
|
|
|
|
|
- // self::telegram()->sendMessage([
|
|
|
|
|
- // 'chat_id' => $memberId,
|
|
|
|
|
- // 'text' => "暂无开奖记录",
|
|
|
|
|
- // ]);
|
|
|
|
|
- // // }
|
|
|
|
|
|
|
+ // }else{
|
|
|
|
|
+ // self::telegram()->sendMessage([
|
|
|
|
|
+ // 'chat_id' => $memberId,
|
|
|
|
|
+ // 'text' => "暂无开奖记录",
|
|
|
|
|
+ // ]);
|
|
|
|
|
+ // }
|
|
|
|
|
+ $result = self::model()::where('status', self::model()::STATUS_DRAW)->orderBy('id','desc')->first();
|
|
|
|
|
+ if($result){
|
|
|
|
|
+ if($result->image){
|
|
|
|
|
+ self::telegram()->sendPhoto([
|
|
|
|
|
+ 'chat_id' => $memberId,
|
|
|
|
|
+ 'photo' => InputFile::create(url($result->image)),
|
|
|
|
|
+ ]);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ // if($result->combo){
|
|
|
|
|
+ // self::telegram()->sendMessage([
|
|
|
|
|
+ // 'chat_id' => $memberId,
|
|
|
|
|
+ // 'text' => "",
|
|
|
|
|
+ // ]);
|
|
|
|
|
+ // }else{
|
|
|
|
|
+ self::telegram()->sendMessage([
|
|
|
|
|
+ 'chat_id' => $memberId,
|
|
|
|
|
+ 'text' => "暂无开奖记录",
|
|
|
|
|
+ ]);
|
|
|
|
|
+ // }
|
|
|
|
|
|
|
|
- // }
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // }
|
|
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 获取最新的开奖数据
|
|
// 获取最新的开奖数据
|
|
@@ -739,4 +742,47 @@ class IssueService extends BaseService
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // 生成开奖图片
|
|
|
|
|
+ public static function lotteryImage($issue_no)
|
|
|
|
|
+ {
|
|
|
|
|
+ $list = self::model()::where('issue_no','<',$issue_no)->where(self::getWhere(['status' => self::model()::STATUS_DRAW]))->orderBy('issue_no','desc')->take(20)->get();
|
|
|
|
|
+ $records = $list->toArray();
|
|
|
|
|
+
|
|
|
|
|
+ foreach($records as $k => $v){
|
|
|
|
|
+ $winning_numbers = explode(',',$v['winning_numbers']);
|
|
|
|
|
+ $v['winning_numbers'] = $winning_numbers;
|
|
|
|
|
+
|
|
|
|
|
+ // 组合
|
|
|
|
|
+ $sum = array_sum($winning_numbers);
|
|
|
|
|
+
|
|
|
|
|
+ $v['sum'] = $sum;
|
|
|
|
|
+ $sumOddEven = self::calculateOddEven($sum); // 总和单双
|
|
|
|
|
+
|
|
|
|
|
+ $sumSize = self::calculateSumSize($sum); // 总和大小
|
|
|
|
|
+ $v['combo'] = $sumSize . ' ' . $sumOddEven;
|
|
|
|
|
+
|
|
|
|
|
+ $sumExtremeSize = self::calculateSumExtremeSize($sum); // 总和极值
|
|
|
|
|
+ if(!$sumExtremeSize){
|
|
|
|
|
+ $sumExtremeSize = '-';
|
|
|
|
|
+ }
|
|
|
|
|
+ $v['extreme'] = $sumExtremeSize;
|
|
|
|
|
+
|
|
|
|
|
+ $tail = self::getLastDigit($sum); // 总和尾数
|
|
|
|
|
+ if($tail === 0){
|
|
|
|
|
+ $tailStr = '-';
|
|
|
|
|
+ }else{
|
|
|
|
|
+ $tailStr = '尾' . $tail;
|
|
|
|
|
+ }
|
|
|
|
|
+ $v['tail'] = $tailStr;
|
|
|
|
|
+
|
|
|
|
|
+ $records[$k] = $v;
|
|
|
|
|
+ }
|
|
|
|
|
+ $service = new LotteryImageService();
|
|
|
|
|
+ $url = $service->generate($records);
|
|
|
|
|
+
|
|
|
|
|
+ self::model()::where('issue_no', $issue_no)->update(['image' => $url]);
|
|
|
|
|
+ return $url;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|