补充竞猜记录

main
liutk 2024-05-19 20:53:36 +08:00
parent 4601be715e
commit 3cfdae17e3
7 changed files with 48 additions and 12 deletions

View File

@ -20,9 +20,16 @@ class ActivityController extends ApiController
return $this->success(['activities' => ActivityResource::collection($activities)->resolve()]);
}
public function show(Activity $activity)
public function show(Activity $activity, Request $request)
{
return ActivityResource::make($activity);
$resource = ActivityResource::make($activity);
//判断当前用户是否在该活动有奖品
$resource->offsetSet('has_gift', UserActivity::where([
'user_id' => $request->user()->id,
'activity_id' => $activity->id
])->value('has_gift') ?? 0);
return $resource;
}
public function rankList(Request $request)

View File

@ -4,15 +4,18 @@ namespace App\Http\Controllers\Api;
use Cache;
use Carbon\Carbon;
use Illuminate\Http\Request;
use App\Http\Requests\CodeRequest;
use App\Http\Requests\UserInfoRequest;
use App\Services\Api\UserService;
use App\Http\Resources\Api\UserResource;
use Slowlyo\OwlAdmin\Admin;
use Overtrue\LaravelWeChat\EasyWeChat;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Storage;
use Slowlyo\OwlAdmin\Admin;
use App\Services\Api\UserService;
use App\Http\Requests\CodeRequest;
use App\Http\Requests\UserInfoRequest;
use App\Models\Activity;
use App\Models\UserActivity;
use App\Http\Resources\Api\UserResource;
use App\Http\Resources\Api\UserActivityResource;
class UserController extends ApiController
{
@ -51,6 +54,18 @@ class UserController extends ApiController
}
}
public function activityList(Request $request)
{
$userActivities = UserActivity::with(['activity' => function($q) {
$q->show();
}])
->where(['user_id'=>$request->user()->id])
->orderBy('created_at', 'desc')
->simplePaginate($request->query('per_page', 20));
return $this->success(['activities' => UserActivityResource::collection($userActivities)->resolve()]);
}
public function updateUserInfo(UserInfoRequest $request)
{
$user = $request->user();

View File

@ -23,6 +23,8 @@ class ActivityResource extends JsonResource
'start_at' => $this->start_at->format('Y-m-d H:i'),
'end_at' => $this->end_at->format('Y-m-d H:i'),
'state' => $this->state,
'has_gift' => $this->when($this->has_gift !== null, $this->has_gift),
];
}

View File

@ -16,12 +16,19 @@ class UserActivityResource extends JsonResource
public function toArray($request)
{
return [
'nick_name' => $this->user?->nick_name ?? '',
'avatar' => $this->user?->avatar ?? '',
'nick_name' => $this->whenLoaded('user', function () {
return $this->user?->nick_name ?? '';
}, ''),
'avatar' => $this->whenLoaded('user', function () {
return $this->user?->avatar ?? '';
}, ''),
'join_times' => $this->join_times,
'right_times' => $this->right_times,
'mark' => $this->mark,
'has_gift' => $this->has_gift,
'activity' => ActivityResource::make($this->whenLoaded('activity'))
];
}

View File

@ -16,8 +16,7 @@ class Activity extends Model
];
public function scopeShow($q){
$q->where('state', '>' ,0)
->where('start_at', '<', now());
$q->where('state', '>' ,0);
}
public function scopeSort($q)

View File

@ -23,6 +23,11 @@ class UserActivity extends Model
->orderBy('last_join_at', 'asc');
}
public function activity()
{
return $this->belongsTo(Activity::class, 'activity_id');
}
public function user()
{
return $this->belongsTo(User::class, 'user_id');

View File

@ -47,6 +47,7 @@ Route::group(['prefix' => 'miniprogram', 'namespace' => 'Api\Miniprogram'], func
//更新头像昵称
Route::post('user/update-info', [App\Http\Controllers\Api\UserController::class, 'updateUserInfo']);
//竞猜记录
Route::get('user-activities', [App\Http\Controllers\Api\UserController::class, 'activityList']);
//中奖记录
//领奖
//中奖记录详情;