public function profileGetAllDetails(Request $request) { $user_roll = $request->input('user_roll'); $users = User::where('user_roll', '!=', $user_roll)->select('user_id', 'user_roll', 'user_name', 'user_phone', 'user_type')->get(); foreach ($users as $user) { $teams = TeamMember::where('user_id', '=', $user->user_id)->lists('team_id'); $user->teams = $teams; } return JSONResponse::response(200, $users); }
public function create() { //获取所有分类 $getCate = Cate::all(); $cates = array(); foreach ($getCate as $k => $v) { $cates[$v->id] = $v->name; } $teams = array(); $teams[0] = '非团队博文'; $teamMembers = TeamMember::where('user_id', \Auth()->user()->id)->get(); foreach ($teamMembers as $teamMember) { $team = Team::findOrFail($teamMember->team_id); $teams[$team->id] = $team->title; } return view('member.articles.create', compact('cates', 'teams')); }
public function teamwork($id) { $action = 'teamwork'; $user = User::findOrFail($id); $teams = array(); $teamMembers = TeamMember::where('user_id', $id)->get(); foreach ($teamMembers as $teamMember) { $team = Team::findOrFail($teamMember->team_id); $team['role'] = $teamMember->role; array_push($teams, $team); } return view("member.users.teamwork", compact('action', 'user', 'teams')); }
public function countTeamMembers($teamId) { return TeamMember::where('team_id', $teamId)->count(); }
public function getAllTasks(Request $request) { $user_roll = $request->input('user_roll'); $user_id = User::where('user_roll', '=', $user_roll)->pluck('user_id'); $exported_fields = ['tasks.task_id', 'task_name', 'task_completed', 'teams.team_id', 'team_name']; $user = User::where('user_roll', '=', $user_roll)->first(); if ($user->user_type == 3) { $task_list = Assigned::where('user_id', '=', $user_id)->leftJoin('tasks', 'assigned.task_id', '=', 'tasks.task_id')->leftJoin('teams', 'tasks.team_id', '=', 'teams.team_id')->where('tasks.enabled', '=', true)->select($exported_fields)->get(); foreach ($task_list as $task_list_task) { $task_user_rolls = Assigned::where('task_id', '=', $task_list_task->task_id)->leftJoin('users', 'assigned.user_id', '=', 'users.user_id')->lists('user_roll'); $task_list_task->assigned = $task_user_rolls; } return JSONResponse::response(200, $task_list); } else { $team_list = TeamMember::where('user_id', '=', $user_id)->select('team_id')->lists('team_id'); $task_list = Task::leftJoin('teams', 'tasks.team_id', '=', 'teams.team_id')->where('tasks.enabled', '=', true)->whereIn('tasks.team_id', $team_list)->select($exported_fields)->get(); foreach ($task_list as $task_list_task) { $task_user_rolls = Assigned::where('task_id', '=', $task_list_task->task_id)->leftJoin('users', 'assigned.user_id', '=', 'users.user_id')->lists('user_roll'); $task_list_task->assigned = $task_user_rolls; } return JSONResponse::response(200, $task_list); } }
/** * 交换队员处理 * Case1:该当位置为空 * Case2:该当位置有队员,换人对象未入队 * Case3:该当位置有队员,换人对象入队 * Case4:该当位置有队员,换人对象为空 * @param $intPosition * @param null $objToOwnedCard * @return null */ public function changeMember($intPosition, $objToOwnedCard = null) { // 检查位置信息是否正确 if ($intPosition <= 0 || $intPosition > self::intTeamMemberCount) { // TODO Error return null; } // 取得该位置原队员 $objTeamMember = $this->getMember($intPosition); // Transaction DB::beginTransaction(); // 根据目标队员分析Case try { if ($objToOwnedCard) { /******* 目标队员不为空的情况 *******/ // 检查目标卡片的用户是否一致 if ($objToOwnedCard->player_id != $this->player_id) { // 目标卡片用户不同 throw new Exception('Wrong Player Id'); } // 检查目标卡片是否已在目标位置 if ($objToOwnedCard->id == $objTeamMember->owned_card_id) { // 目标卡片已在目标位置 throw new Exception('Wrong Player Id'); } // 检查目标卡片的入队情况 if ($objToOwnedCard->team_id > 0 && $objToOwnedCard->team_id != $this->id) { // 已经在其他队伍中 throw new Exception('Wrong Player Id'); } // 开始换人处理 if ($objTeamMember->owned_card_id > 0) { // 目标位置有玩家卡片的情况 // 目标卡片是否已经在当前队伍的其他位置上 if ($objToOwnedCard->team_id == $this->id) { // 目标卡片原本已在此队伍中 需要和目标位置原卡片互换情报 $objToOwnedCardTeamMember = TeamMember::where("owned_card_id", $objToOwnedCard->id)->first(); // 对象卡片原位置的玩家卡片ID更新为目标位置原玩家卡片ID $objToOwnedCardTeamMember->owned_card_id = $objTeamMember->owned_card_id; // 保存 if (!$objToOwnedCardTeamMember->save()) { throw new Exception('Save Failed'); } } else { // 目标玩家卡片原本未在队伍中 需要重置目标位置原玩家卡片的队伍ID $objFromOwnedCard = OwnedCard::find($objTeamMember->owned_card_id); $objFromOwnedCard->team_id = 0; if (!$objFromOwnedCard->save()) { throw new Exception('Save Failed'); } } // 更新目标队员情报 $objTeamMember->owned_card_id = $objToOwnedCard->id; // 更新目标用户卡片 $objToOwnedCard->team_id = $this->id; // 保存修改 if (!$objToOwnedCard->save() || !$objTeamMember->save()) { throw new Exception('Save Failed'); } } else { // 目标位置无卡片的情况 // 目标卡片是否已经在当前队伍的其他位置上 if ($objToOwnedCard->team_id == $this->id) { $objToOwnedCardTeamMember = TeamMember::where("owned_card_id", $objToOwnedCard->id)->first(); // 对象卡片原位置重置 $objToOwnedCardTeamMember->owned_card_id = 0; // 保存 if (!$objToOwnedCardTeamMember->save()) { throw new Exception('Save Failed'); } } // 更新队员情报 $objTeamMember->owned_card_id = $objToOwnedCard->id; // 更新目标用户卡片 $objToOwnedCard->team_id = $this->id; // 保存修改 if (!$objToOwnedCard->save() || !$objTeamMember->save()) { throw new Exception('Save Failed'); } } } else { /******* 目标队员为空的情况下 *******/ // 检查目前队伍人数,若等于1 则不可换为空 $intTeamMemberCount = TeamMember::where("team_id", $this->id)->where("owned_card_id", ">", 0)->count(); if ($intTeamMemberCount <= 1) { throw new Exception('Last Member'); } // 目标位置是否有玩家卡片 if ($objTeamMember->owned_card_id <= 0) { throw new Exception('Null Member To Null Member'); } // 清空目标位置原卡片数据 $objFromOwnedCard = OwnedCard::find($objTeamMember->owned_card_id); $objFromOwnedCard->team_id = 0; $objTeamMember->owned_card_id = 0; if (!$objFromOwnedCard->save() || !$objTeamMember->save()) { throw new Exception('Save Failed'); } } // 2016/11/10 队伍信息更新 switch ($intPosition) { case 1: if ($objToOwnedCard) { $this->position_1_owned_card_id = $objToOwnedCard->id; } else { $this->position_1_owned_card_id = 0; } break; case 2: if ($objToOwnedCard) { $this->position_2_owned_card_id = $objToOwnedCard->id; } else { $this->position_2_owned_card_id = 0; } break; case 3: if ($objToOwnedCard) { $this->position_3_owned_card_id = $objToOwnedCard->id; } else { $this->position_3_owned_card_id = 0; } break; case 4: if ($objToOwnedCard) { $this->position_4_owned_card_id = $objToOwnedCard->id; } else { $this->position_4_owned_card_id = 0; } break; case 5: if ($objToOwnedCard) { $this->position_5_owned_card_id = $objToOwnedCard->id; } else { $this->position_5_owned_card_id = 0; } break; case 6: if ($objToOwnedCard) { $this->position_6_owned_card_id = $objToOwnedCard->id; } else { $this->position_6_owned_card_id = 0; } break; } $this->save(); DB::commit(); } catch (Exception $e) { // TODO Dev Log DB::rollback(); } }
/** * 更换玩家目标队伍的目标位置 */ public function changeMember() { $intTeamId = Input::get("team_id"); $intPositionId = Input::get("position_id"); // 取得队伍对象 $objTeam = Team::find($intTeamId); if (!$objTeam) { // 无该当队伍 返回队伍首页 redirect("team/"); } // 取得原位置队员 $objTeamMember = $objTeam->getMember($intPositionId); echo "更换位置[{$intPositionId}]的队员<br />"; if ($objTeamMember->owned_card_id <= 0) { // 原位置无队员 echo "当前无队员<br />"; echo "<br />"; echo "从下列卡片中选择新队员:<br />"; } else { // 取得队员玩家卡片信息 $objOwnedCard = OwnedCard::find($objTeamMember->owned_card_id); echo "当前队员为[Lv.{$objOwnedCard->level}]{$objOwnedCard->getName()}<br />"; echo "<br />"; echo "从下列卡片中选择新队员:<br />"; $intTeamMemberCount = TeamMember::where("team_id", $intTeamId)->where("owned_card_id", ">", 0)->count(); if ($intTeamMemberCount > 1) { echo "<a href='change-member-exec?player_id={$this->_intPlayerId}&team_id={$intTeamId}&position_id={$intPositionId}&owned_card_id=0'>空位</a><br />"; } } // 取得后补玩家卡片列表 $lstOwnedCards = OwnedCard::where("player_id", $this->_intPlayerId)->where("id", "!=", $objTeamMember->owned_card_id)->whereIn("team_id", array(0, $intTeamId))->get()->toArray(); if (!empty($lstOwnedCards)) { foreach ($lstOwnedCards as $lstOwnedCard) { $objOwnedCard = OwnedCard::find($lstOwnedCard["id"]); echo "<a href='change-member-exec?player_id={$this->_intPlayerId}&team_id={$intTeamId}&position_id={$intPositionId}&owned_card_id={$objOwnedCard->id}'>[Lv.{$objOwnedCard->level}]{$objOwnedCard->getName()}</a> "; } } }
public function deleteMember(Request $request) { $r1 = TeamMember::where(['team_id' => $request->get('teamId'), 'user_id' => $request->get('userId')])->delete(); $r2 = $this->createTeamTrace($request->get('teamId'), '移除成员', $this->getUserNameById($request->get('userId'))); if ($r1 && $r2) { $this->succeed(true); } else { $this->fail(true); } }