|
|
@@ -13,12 +13,30 @@ class ActivityReward extends BaseController
|
|
|
public function index()
|
|
|
{
|
|
|
try {
|
|
|
+ request()->validate([
|
|
|
+ 'member_id' => ['nullable', 'integer'],
|
|
|
+ ]);
|
|
|
+ $memberId = request()->input('member_id');
|
|
|
$time = time();
|
|
|
- $list = ActivityRewardModel::where(ActivityRewardService::getWhere([
|
|
|
+ $query = ActivityRewardModel::where(ActivityRewardService::getWhere([
|
|
|
'start_time' => ['<=', $time],
|
|
|
'end_time' => ['>=', $time],
|
|
|
'status' => ActivityRewardModel::STATUS_UP
|
|
|
- ]))->orderByDesc('id')->get()->toArray();
|
|
|
+ ]));
|
|
|
+
|
|
|
+ if (!empty($memberId)) {
|
|
|
+ $query->with(['userActivities' => function ($query1) use ($memberId) {
|
|
|
+ $query1->where('user_id', $memberId);
|
|
|
+ }]);
|
|
|
+ $list = $query->orderByDesc('id')->get();
|
|
|
+ $list->transform(function ($activity) {
|
|
|
+ $activity->is_claimed = $activity->userActivities->isNotEmpty();
|
|
|
+ return $activity;
|
|
|
+ })->toArray();
|
|
|
+ } else {
|
|
|
+ $list = $query->orderByDesc('id')->get()->toArray();
|
|
|
+ }
|
|
|
+
|
|
|
} catch (ValidationException $e) {
|
|
|
return $this->error($e->validator->errors()->first());
|
|
|
} catch (Exception $e) {
|