public function setTeamOrder(Request $request)
 {
     if (!$request->user()->hasRole('admin')) {
         return abort(403, 'You do not have permission to perform that action');
     }
     $this->validate($request, ['order' => 'required|array']);
     TeamMember::setNewOrder($request->order);
     return response()->json('ok');
 }
 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);
 }
 /**
  *@test
  */
 public function the_ordering_of_the_team_members_can_be_set_by_posting_array_of_ids_in_req_order()
 {
     $members = factory(TeamMember::class, 5)->create();
     $this->withoutMiddleware();
     $this->asAnAdminUser();
     $response = $this->call('POST', '/admin/team/order', ['order' => [3, 2, 5, 1, 4]]);
     $this->assertEquals(200, $response->status());
     $members = TeamMember::ordered()->get();
     $this->assertEquals(3, $members->first()->id);
     $this->assertEquals(4, $members->last()->id);
     $this->assertEquals(2, $members[1]->id);
     $this->assertEquals(5, $members[2]->id);
 }
Exemple #4
0
 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'));
 }
Exemple #5
0
 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'));
 }
Exemple #6
0
 public function countTeamMembers($teamId)
 {
     return TeamMember::where('team_id', $teamId)->count();
 }
 public function initTeam()
 {
     $intPlayerId = Input::get('player_id', 0);
     // 目前已经生成Team数量确认
     /* 玩家可用Team数量确认
      * Lv.1 ~ Lv.10   1Team
      * Lv.11 ~ Lv.20  2Team
      * Lv.21 ~ Lv.50  3Team
      * Lv.51 ~ Lv.100 4Team
      * 氪金玩家        +1Team
      */
     $objTeam = new Team();
     $objTeam->player_id = $intPlayerId;
     $objTeam->team_no = 1;
     // 该用户的第一个队伍
     $objTeam->team_name = "Team01";
     $firstCard = OwnedCard::where('player_id', $intPlayerId)->orderBy('id', 'ASC')->first();
     $objTeam->position_1_owned_card_id = $firstCard->id;
     $objTeam->total_cost = $firstCard->getCost();
     $objTeam->save();
     $objTeamBk = Team::find($objTeam->id);
     // 20151012 TeamMember Table 初始化
     for ($intPosition = 1; $intPosition <= 6; $intPosition++) {
         $objTeamMember = new TeamMember();
         $objTeamMember->team_id = $objTeamBk->id;
         $objTeamMember->position = $intPosition;
         $objTeamMember->player_id = $objTeamBk->player_id;
         if ($intPosition == 1) {
             $objTeamMember->card_id = $firstCard->card_id;
             $objTeamMember->owned_card_id = $firstCard->id;
         }
         $objTeamMember->save();
         switch ($intPosition) {
             case 1:
                 $objTeamBk->position_1_member_id = $objTeamMember->id;
                 break;
             case 2:
                 $objTeamBk->position_2_member_id = $objTeamMember->id;
                 break;
             case 3:
                 $objTeamBk->position_3_member_id = $objTeamMember->id;
                 break;
             case 4:
                 $objTeamBk->position_4_member_id = $objTeamMember->id;
                 break;
             case 5:
                 $objTeamBk->position_5_member_id = $objTeamMember->id;
                 break;
             case 6:
                 $objTeamBk->position_6_member_id = $objTeamMember->id;
                 break;
             default:
                 # code...
                 break;
         }
         // 20151103 追加
         $firstCard->team_id = $objTeam->id;
         $firstCard->save();
     }
     $objTeamBk->save();
     return Response::json($objTeamBk->toArray());
 }
 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);
     }
 }
Exemple #9
0
 /**
  * 交换队员处理
  * 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 addTeam()
 {
     $lstTeams = Team::where("player_id", $this->_intPlayerId)->get()->toArray();
     $intTeamCount = count($lstTeams);
     // TODO Team数量限定
     $intNewTeamNo = $intTeamCount + 1;
     $objNewTeam = new Team();
     $objNewTeam->team_name = "Team" . $intNewTeamNo;
     $objNewTeam->team_no = $intNewTeamNo;
     $objNewTeam->player_id = $this->_intPlayerId;
     $objNewTeam->save();
     $objTeamBk = Team::find($objNewTeam->id);
     // 20151012 TeamMember Table 初始化
     for ($intPosition = 1; $intPosition <= 6; $intPosition++) {
         $objTeamMember = new TeamMember();
         $objTeamMember->team_id = $objTeamBk->id;
         $objTeamMember->position = $intPosition;
         $objTeamMember->player_id = $objTeamBk->player_id;
         $objTeamMember->save();
         switch ($intPosition) {
             case 1:
                 $objTeamBk->position_1_member_id = $objTeamMember->id;
                 break;
             case 2:
                 $objTeamBk->position_2_member_id = $objTeamMember->id;
                 break;
             case 3:
                 $objTeamBk->position_3_member_id = $objTeamMember->id;
                 break;
             case 4:
                 $objTeamBk->position_4_member_id = $objTeamMember->id;
                 break;
             case 5:
                 $objTeamBk->position_5_member_id = $objTeamMember->id;
                 break;
             case 6:
                 $objTeamBk->position_6_member_id = $objTeamMember->id;
                 break;
             default:
                 # code...
                 break;
         }
     }
     $objTeamBk->save();
 }
 public function edit($id)
 {
     $expedition = Expedition::findOrFail($id);
     $profiles = TeamMember::all();
     return view('admin.expeditions.teammembers')->with(compact('expedition', 'profiles'));
 }
Exemple #12
0
 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);
     }
 }
Exemple #13
0
 /**
  * 玩家创建时初始化第一套队伍
  */
 public function firstTeam()
 {
     // Transaction
     DB::beginTransaction();
     try {
         $objTeam = new Team();
         $intPlayerId = $this->id;
         $objTeam->player_id = $intPlayerId;
         $objFirstCard = OwnedCard::where('player_id', $intPlayerId)->orderBy('id', 'ASC')->first();
         $objTeam->position_1_owned_card_id = $objFirstCard->id;
         $objTeam->total_cost = $objFirstCard->getCost();
         $objTeam->save();
         // TODO 是否需要
         $objTeamBk = Team::find($objTeam->id);
         // 20151012 TeamMember Table 初始化
         for ($intPosition = 1; $intPosition <= 6; $intPosition++) {
             $objTeamMember = new TeamMember();
             $objTeamMember->team_id = $objTeamBk->id;
             $objTeamMember->position = $intPosition;
             $objTeamMember->player_id = $objTeamBk->player_id;
             if ($intPosition == 1) {
                 $objTeamMember->card_id = $objFirstCard->card_id;
                 $objTeamMember->owned_card_id = $objFirstCard->id;
             }
             if (!$objTeamMember->save()) {
                 throw new Exception('Save Failed');
             }
             switch ($intPosition) {
                 case 1:
                     $objTeamBk->position_1_member_id = $objTeamMember->id;
                     break;
                 case 2:
                     $objTeamBk->position_2_member_id = $objTeamMember->id;
                     break;
                 case 3:
                     $objTeamBk->position_3_member_id = $objTeamMember->id;
                     break;
                 case 4:
                     $objTeamBk->position_4_member_id = $objTeamMember->id;
                     break;
                 case 5:
                     $objTeamBk->position_5_member_id = $objTeamMember->id;
                     break;
                 case 6:
                     $objTeamBk->position_6_member_id = $objTeamMember->id;
                     break;
             }
             // 更新玩家卡片的队伍信息
             $objFirstCard->team_id = $objTeam->id;
             if (!$objFirstCard->save()) {
                 throw new Exception('Save Failed');
             }
         }
         if (!$objTeamBk->save()) {
             throw new Exception('Save Failed');
         }
         DB::commit();
     } catch (Exception $e) {
         // TODO Dev Log
         DB::rollback();
     }
 }
 public function about()
 {
     $aboutPage = $this->contentRepository->getPageByName('about us');
     $members = TeamMember::ordered()->get();
     return view('front.pages.about')->with(compact('aboutPage', 'members'));
 }