generated from liutk/owl-admin-base
补充竞猜记录
parent
4601be715e
commit
3cfdae17e3
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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'))
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
|
|
|
|||
|
|
@ -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']);
|
||||
//中奖记录
|
||||
//领奖
|
||||
//中奖记录详情;
|
||||
|
|
|
|||
Loading…
Reference in New Issue