orderBy('id', 'desc'); $keyword = $request->input('keyword'); if ($keyword) { $keyword = trim($keyword); $arenas = $arenas->where('title', 'like', '%'.$keyword.'%'); } $arenas = $arenas->paginate(); return $this->success('ok', $arenas); } /** * 竞技场详情 */ public function arena(Request $request, Arena $arena, ArenaGroup $group) { $group = $group->where('id', $arena->group_id)->first(); $arena->group = $group; return $this->success('ok', $arena); } /** * 创建竞技场 */ public function storeArena(Request $request, Arena $arena) { $data['title'] = $request->input('title'); if (empty($data['title'])) { return $this->failure('请输入标题'); } $data['sub_title'] = $request->input('sub_title'); if (empty($data['sub_title'])) { return $this->failure('请输入子标题'); } $data['group_id'] = $request->input('group_id'); if (empty($data['group_id'])) { return $this->failure('请选择分类'); } $data['male_team_name'] = $request->input('male_team_name'); if (empty($data['male_team_name'])) { return $this->failure('请输入男队队名'); } $data['female_team_name'] = $request->input('female_team_name'); if (empty($data['female_team_name'])) { return $this->failure('请输入女队队名'); } $data['start_time'] = $request->input('start_time'); if (empty($data['start_time'])) { return $this->failure('请选择开始时间'); } $data['end_time'] = $request->input('end_time'); if (empty($data['end_time'])) { return $this->failure('请选择结束时间'); } $data['intro'] = $request->input('intro', []); $data['intro'] = json_encode($data['intro']); $data['play_url'] = $request->input('play_url'); $data['playback_url'] = $request->input('playback_url'); $data['qrcode'] = $request->input('qrcode'); $datap['qrcode_intro'] = $request->input('qrcode_intro'); $data['guest_name'] = $request->input('guest_name'); $data['guest_avatar'] = $request->input('guest_avatar'); $arena_obj = $arena->create($data); return $this->success('ok', $arena_obj); } /** * 修改竞技场 */ public function updateArena(Request $request, Arena $arena) { if ($request->input('title') && $request->title != $arena->title) { $arena->title = $request->input('title'); } if ($request->input('sub_title') && $request->sub_title != $arena->sub_title) { $arena->sub_title = $request->input('sub_title'); } if ($request->input('group_id') && $request->group_id != $arena->group_id) { $arena->group_id = $request->input('group_id'); } if ($request->input('male_team_name') && $request->male_team_name != $arena->male_team_name) { $arena->male_team_name = $request->input('male_team_name'); } if ($request->input('female_team_name') && $request->female_team_name != $arena->female_team_name) { $arena->female_team_name = $request->input('female_team_name'); } if ($request->input('start_time') && $request->start_time != $arena->start_time) { $arena->start_time = $request->input('start_time'); } if ($request->input('end_time') && $request->end_time != $arena->end_time) { $arena->end_time = $request->input('end_time'); } if ($request->has('intro') && json_encode($request->intro) != $arena->intro) { $arena->intro = json_encode($request->input('intro', [])); } if ($request->input('play_url') && $request->play_url != $arena->play_url) { $arena->play_url = $request->input('play_url'); } if ($request->input('playback_url') && $request->playback_url != $arena->playback_url) { $arena->playback_url = $request->input('playback_url'); } if ($request->input('qrcode') && $request->qrcode != $arena->qrcode) { $arena->qrcode = $request->input('qrcode'); } if ($request->input('qrcode_intro') && $request->qrcode_intro != $arena->qrcode_intro) { $arena->qrcode_intro = $request->input('qrcode_intro'); } if ($request->input('guest_name') && $request->guest_name != $arena->guest_name) { $arena->guest_name = $request->input('guest_name'); } if ($request->input('guest_avatar') && $request->guest_avatar != $arena->guest_avatar) { $arena->guest_avatar = $request->input('guest_avatar'); } $arena->save(); return $this->success('ok'); } /** * 删除竞技场 */ public function deleteArena(Request $request, Arena $arena) { $arena->delete(); return $this->success('ok'); } /** * 竞技场成员列表 */ public function arenaMembers(Request $request, Arena $arena) { $members = $arena->members()->with('user')->orderBy('id', 'desc')->paginate(); return $this->success('ok', $members); } /** * 竞技场分类 */ public function arenaGroups(Request $request, ArenaGroup $arena_group) { $groups = $arena_group->orderBy('id', 'desc'); $nopage = $request->input('nopage', 0); if ($nopage) { $groups = $groups->get(); }else{ $groups = $groups->paginate(); } return $this->success('ok', $groups); } /** * 分类详情 */ public function arenaGroup(Request $request, ArenaGroup $arena_group) { return $this->success('ok', $arena_group); } /** * 创建分类 */ public function storeArenaGroup(Request $request, ArenaGroup $arena_group) { $data['title'] = $request->input('title'); if (empty($data['title'])) { return $this->failure('请输入标题'); } $data['image_url'] = $request->input('image_url'); if (empty($data['image_url'])) { return $this->failure('请上传图片'); } $data['label_id'] = $request->input('label_id'); if (empty($data['label_id'])) { return $this->failure('请选择标签'); } $group = $arena_group->create($data); return $this->success('ok', $group); } /** * 修改分类 */ public function updateArenaGroup(Request $request, ArenaGroup $arena_group) { if ($request->input('title') && $request->title != $arena_group->title) { $arena_group->title = $request->title; } if ($request->input('image_url') && $request->image_url != $arena_group->image_url) { $arena_group->image_url = $request->image_url; } if ($request->input('label_id') && $request->label_id != $arena_group->label_id) { $arena_group->label_id = $request->label_id; } $arena_group->save(); return $this->success("ok"); } /** * 删除分类 */ public function deleteArenaGroup(Request $request, ArenaGroup $arena_group) { $arena_group->delete(); return $this->success('ok'); } /** * 标签列表 */ public function arenaLabels(Request $request, ArenaLabel $arena_label) { $nopage = $request->input('nopage', 0); if ($nopage) { $labels = $arena_label->orderBy('id', 'desc')->get(); }else{ $labels = $arena_label->orderBy('id', 'desc')->paginate(); } return $this->success('ok', $labels); } /** * 标签详情 */ public function arenaLabel(Request $request, ArenaLabel $arena_label) { return $this->success('ok', $arena_label); } /** * 添加标签 */ public function storeArenaLabel(Request $request, ArenaLabel $arena_label) { $title = $request->input('title'); if (empty($title)) { return $this->failure('请输入标题'); } $label = $arena_label->create([ 'title'=>$title ]); return $this->success('ok', $label); } /** * 修改标签 */ public function updateArenaLabel(Request $request, ArenaLabel $arena_label) { if ($request->input('title') && $request->title != $arena_label->title) { $arena_label->title = $request->input('title'); $arena_label->save(); } return $this->success('ok'); } /** * 删除标签 */ public function deleteArenaLabel(Request $request, ArenaLabel $arena_label) { $arena_label->delete(); return $this->success('ok'); } /** * 设置竞技场标签 */ public function linkArenaLabel(Request $request, Arena $arena, ArenaLabelLink $arena_label_link) { $label_ids = $request->input('label_ids', []); if (count($label_ids) == 0) { return $this->failure('请选择标签'); } $link = $arena_label_link->with('label')->where('arena_id', $arena->id)->whereIn('label_id', $label_ids)->first(); if ($link) { // dd($link->label->title); return $this->failure('已存在标签【'.$link->label->title.'】'); } $data = []; foreach ($label_ids as $label_id) { $link['label_id'] = $label_id; $link['arena_id'] = $arena->id; $link['created_at'] = date('Y-m-d H:i:s'); $link['updated_at'] = date('Y-m-d H:i:s'); $data[] = $link; } $arena_label_link->insert($data); return $this->success('ok'); } /** * 删除竞技场标签 */ public function deleteArenaLabelLink(Request $request, ArenaLabelLink $arena_label_link) { $arena_label_link->delete(); return $this->success('ok'); } public function arenaFromLabels(Request $request, Arena $arena, ArenaLabelLink $arena_label_link) { $labels = $arena_label_link->where('arena_id', $arena->id)->with('label')->paginate(); return $this->success('ok', $labels); } //推荐竞技场 public function recommendArea(Request $request, Arena $arena) { $arena->is_recommend = $arena->is_recommend?0:1; $arena->save(); return $this->success('ok'); } }