generated from liutk/owl-admin-base
处理首页今日竞猜接口
parent
1d6a2ab0b3
commit
c83110984a
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Arr;
|
||||
use App\Models\Activity;
|
||||
use App\Http\Resources\Api\ActivityGameResource;
|
||||
|
||||
class ActivityGameController extends ApiController
|
||||
{
|
||||
public function latestGame(Request $request)
|
||||
{
|
||||
//获取最新的活动;
|
||||
$activity = Activity::show()->sort()->first();
|
||||
$game = $activity?->games()->show()
|
||||
->whereDate('game_at', now())
|
||||
->where('game_at', '>', now())
|
||||
->where('state', 1)
|
||||
->orderBy('game_at', 'asc')->first();
|
||||
|
||||
//若已经没有最新的活动了, 则拿取当天最后一个
|
||||
if(!$game){
|
||||
$activity?->games()->show()
|
||||
->whereDate('game_at', now())
|
||||
->orderBy('game_at', 'desc')->first();
|
||||
}
|
||||
|
||||
if($game){
|
||||
$game->load(['logs'=> function($q){
|
||||
$q->where('user_id', auth('api')->user()?->id ?? 0);
|
||||
}]);
|
||||
|
||||
return ActivityGameResource::make($game);
|
||||
}
|
||||
|
||||
return $this->success(null);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Resources\Api;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
use Illuminate\Http\Response;
|
||||
|
||||
class ActivityGameResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'activity_id' => $this->activity_id,
|
||||
'name' => $this->name,
|
||||
'home_field' => $this->home_field ??'',
|
||||
'home_logo' => $this->home_logo ??'',
|
||||
'away' => $this->away ??'',
|
||||
'away_logo' => $this->away_logo ??'',
|
||||
'game_at' => $this->game_at->format('Y-m-d H:i'),
|
||||
'has_guess' => !$this->logs->isEmpty() ? ($this->logs[0]->score):false,
|
||||
];
|
||||
}
|
||||
|
||||
public function with($request)
|
||||
{
|
||||
return ['code' => Response::HTTP_OK, 'message' => ''];
|
||||
}
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
namespace App\Http\Resources\Api;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
use Illuminate\Http\Response;
|
||||
|
||||
class UserResource extends JsonResource
|
||||
{
|
||||
|
|
|
|||
|
|
@ -10,6 +10,11 @@ class Activity extends Model
|
|||
{
|
||||
use HasFactory,Filterable;
|
||||
|
||||
public function scopeShow($q){
|
||||
$q->where('state', '>' ,0)
|
||||
->where('start_at', '<', now());
|
||||
}
|
||||
|
||||
public function scopeSort($q)
|
||||
{
|
||||
$q->orderBy('state', 'asc')
|
||||
|
|
@ -17,6 +22,11 @@ class Activity extends Model
|
|||
->orderBy('created_at', 'desc');
|
||||
}
|
||||
|
||||
public function games()
|
||||
{
|
||||
return $this->hasMany(ActivityGame::class, 'activity_id');
|
||||
}
|
||||
|
||||
public function gifts()
|
||||
{
|
||||
return $this->hasMany(ActivityGift::class, 'activity_id');
|
||||
|
|
|
|||
|
|
@ -10,10 +10,19 @@ class ActivityGame extends Model
|
|||
{
|
||||
use HasFactory,Filterable;
|
||||
|
||||
protected $casts = [
|
||||
'game_at' => 'datetime'
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'state', 'score',
|
||||
];
|
||||
|
||||
public function scopeShow($q)
|
||||
{
|
||||
$q->where('state', '>' ,0);
|
||||
}
|
||||
|
||||
public function scopeSort($q)
|
||||
{
|
||||
$q->orderBy('game_at', 'desc');
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@ Route::group(['prefix' => 'miniprogram', 'namespace' => 'Api\Miniprogram'], func
|
|||
Route::middleware('auth:sanctum')->group(function(){
|
||||
// 令牌刷新
|
||||
Route::post('refresh-token', [App\Http\Controllers\Api\AuthController::class, 'refreshToken']);
|
||||
// 首页接口
|
||||
Route::get('latest-game', [App\Http\Controllers\Api\ActivityGameController::class, 'latestGame']);
|
||||
// 已授权绑定手机号
|
||||
Route::middleware([HasBindPhone::class])->group(function(){
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue