public function raceStageGroupSportsTypeAddAction()
 {
     //检查权限
     $PermissionCheck = $this->manager->checkMenuPermission("RaceStageModify");
     if ($PermissionCheck['return']) {
         $RaceStageId = intval($this->request->RaceStageId);
         $RaceGroupId = intval($this->request->RaceGroupId);
         $SportsTypeId = intval($this->request->SportsTypeId);
         $After = isset($this->request->After) ? intval($this->request->After) : 0;
         echo "After:" . $After;
         //获取当前分站信息
         $oRaceStage = $this->oRace->getRaceStage($RaceStageId, '*');
         //解包压缩数组
         $oRaceStage['comment'] = json_decode($oRaceStage['comment'], true);
         //如果当前分站未配置了当前分组
         if (!isset($oRaceStage['comment']['SelectedRaceGroup'][$RaceGroupId])) {
             //跳转到分站列表页面
             $this->response->redirect($this->sign);
         }
         //获取赛事分组信息
         $oRaceGroup = $this->oRace->getRaceGroup($RaceGroupId, '*');
         //如果赛事分组尚未配置
         if (!$oRaceGroup['RaceGroupId']) {
             //跳转到分站列表页面
             $this->response->redirect($this->sign);
         }
         $this->oSports = new Xrace_Sports();
         $oSportsType = $this->oSports->getSportsType($SportsTypeId, '*');
         if (!isset($oSportsType['SportsTypeId'])) {
             $url = Base_Common::getUrl('', 'xrace/race.stage', 'race.stage.group.detail', array('RaceStageId' => $RaceStageId, 'RaceGroupId' => $RaceGroupId));
             $this->response->redirect($url);
         }
         //获取分站分组配置详情
         $RaceStageGroupInfo = $this->oRace->getRaceStageGroup($RaceStageId, $RaceGroupId);
         //默认开始时间
         $StartTime = date("Y-m-d H:i:s", time() + 86400);
         //默认结束时间
         $EndTime = date("Y-m-d H:i:s", time() + 86400 * 2);
         //如果尚未配置分站分组详情,则用默认空数组替代
         if (!is_array($RaceStageGroupInfo)) {
             $RaceStageGroupInfo = array('PriceList' => 0, 'SingleUser' => 1, 'TeamUser' => 1, 'StartTime' => $StartTime, 'EndTime' => $EndTime, 'comment' => "");
             $NewDetail = 1;
         }
         $RaceStageGroupInfo['comment'] = json_decode($RaceStageGroupInfo['comment'], true);
         $RaceStageGroupInfo['comment']['DetailList'] = isset($RaceStageGroupInfo['comment']['DetailList']) ? $RaceStageGroupInfo['comment']['DetailList'] : array();
         ksort($RaceStageGroupInfo['comment']['DetailList']);
         //如果添加在某个元素之后 且 元素下标不越界
         if ($After >= 0 && $After < count(count($RaceStageGroupInfo['comment']['DetailList']))) {
             //添加元素
             $RaceStageGroupInfo['comment']['DetailList'] = Base_Common::array_insert($RaceStageGroupInfo['comment']['DetailList'], array('SportsTypeId' => $SportsTypeId), $After + 1);
         } else {
             //默认为在表尾部添加元素
             $RaceStageGroupInfo['comment']['DetailList'][count($RaceStageGroupInfo['comment']['DetailList'])] = array('SportsTypeId' => $SportsTypeId);
         }
         //生成修改后的元素列表
         $RaceStageGroupInfo['RaceStageId'] = $RaceStageId;
         $RaceStageGroupInfo['RaceGroupId'] = $RaceGroupId;
         $RaceStageGroupInfo['comment'] = json_encode($RaceStageGroupInfo['comment']);
         //如果认为需要新建数据
         if (isset($NewDetail)) {
             //插入新的数据
             $res = $this->oRace->insertRaceStageGroup($RaceStageGroupInfo);
         } else {
             //更新数据
             $res = $this->oRace->updateRaceStageGroup($RaceStageId, $RaceGroupId, $RaceStageGroupInfo);
         }
         $url = Base_Common::getUrl('', 'xrace/race.stage', 'race.stage.group.detail', array('RaceStageId' => $RaceStageId, 'RaceGroupId' => $RaceGroupId));
         $this->response->redirect($url);
     } else {
         $home = $this->sign;
         include $this->tpl('403');
     }
 }
Ejemplo n.º 2
0
 public function raceSportsTypeInsertAction()
 {
     //检查权限
     $PermissionCheck = $this->manager->checkMenuPermission("RaceStageModify");
     if ($PermissionCheck['return']) {
         //分站ID
         $RaceStageId = intval($this->request->RaceStageId);
         //分组ID
         $RaceGroupId = intval($this->request->RaceGroupId);
         //比赛ID
         $RaceId = intval($this->request->RaceId);
         //运动类型ID
         $SportsTypeId = intval($this->request->SportsTypeId);
         //需要添加的运动类型置于哪个位置之后,默认为开头
         $After = isset($this->request->After) ? intval($this->request->After) : -1;
         //获取当前分站信息
         $RaceStageInfo = $this->oRace->getRaceStage($RaceStageId, '*');
         //解包压缩数组
         $RaceStageInfo['comment'] = json_decode($RaceStageInfo['comment'], true);
         //如果当前分站未配置了当前分组
         if (!isset($RaceStageInfo['comment']['SelectedRaceGroup'][$RaceGroupId])) {
             $response = array('errno' => 1);
         } else {
             //获取赛事分组信息
             $RaceGroupInfo = $this->oRace->getRaceGroup($RaceGroupId, '*');
             //如果赛事分组尚未配置
             if (!$RaceGroupInfo['RaceGroupId']) {
                 $response = array('errno' => 2);
             } else {
                 $this->oSports = new Xrace_Sports();
                 //获取运动类型信息
                 $SportsTypeInfo = $this->oSports->getSportsType($SportsTypeId, '*');
                 //如果未获取到有效的运动类型
                 if (!isset($SportsTypeInfo['SportsTypeId'])) {
                     $response = array('errno' => 3);
                 } else {
                     //获取比赛信息
                     $RaceInfo = $this->oRace->getRaceInfo($RaceId);
                     //如果有获取到比赛信息 并且 赛事分站ID和赛事分组ID相符
                     if (isset($RaceInfo['RaceId']) && $RaceStageId == $RaceInfo['RaceStageId'] && $RaceGroupId == $RaceInfo['RaceGroupId']) {
                         //数据解包
                         $RaceInfo['comment'] = isset($RaceInfo['comment']) ? json_decode($RaceInfo['comment'], true) : array();
                         //初始运动类型信息列表
                         $RaceInfo['comment']['DetailList'] = isset($RaceInfo['comment']['DetailList']) ? $RaceInfo['comment']['DetailList'] : array();
                         //运动类型列表排序
                         ksort($RaceInfo['comment']['DetailList']);
                         //如果添加在某个元素之后 且 元素下标不越界
                         if ($After >= 0 && $After <= count($RaceInfo['comment']['DetailList'])) {
                             //添加元素
                             $RaceInfo['comment']['DetailList'] = Base_Common::array_insert($RaceInfo['comment']['DetailList'], array('SportsTypeId' => $SportsTypeId), $After + 1);
                         } elseif ($After == -1) {
                             //添加元素
                             $RaceInfo['comment']['DetailList'] = Base_Common::array_insert($RaceInfo['comment']['DetailList'], array('SportsTypeId' => $SportsTypeId), $After + 1);
                         } else {
                             //默认为在表尾部添加元素
                             $RaceInfo['comment']['DetailList'][count($RaceInfo['comment']['DetailList'])] = array('SportsTypeId' => $SportsTypeId);
                         }
                         //数据打包
                         $RaceInfo['comment'] = json_encode($RaceInfo['comment']);
                         //更新比赛
                         $res = $this->oRace->updateRace($RaceId, $RaceInfo);
                         $response = $res ? array('errno' => 0) : array('errno' => 9);
                     }
                 }
             }
         }
         echo json_encode($response);
     } else {
         $home = $this->sign;
         include $this->tpl('403');
     }
 }
Ejemplo n.º 3
0
 public function addTimingPoint($RaceStageId, $RaceGroupId, $RaceId, $SportsTypeId, $After, $bind)
 {
     //获取当前分站信息
     $RaceStageInfo = $this->getRaceStage($RaceStageId, '*');
     //解包压缩数组
     $RaceStageInfo['comment'] = json_decode($RaceStageInfo['comment'], true);
     //如果当前分站未配置了当前分组
     if (!isset($RaceStageInfo['comment']['SelectedRaceGroup'][$RaceGroupId])) {
         return false;
     } else {
         //获取赛事分组信息
         $RaceGroupInfo = $this->getRaceGroup($RaceGroupId, '*');
         //如果赛事分组尚未配置
         if (!$RaceGroupInfo['RaceGroupId']) {
             return false;
         } else {
             //获取比赛信息
             $RaceInfo = $this->getRaceInfo($RaceId);
             //如果有获取到比赛信息 并且 赛事分站ID和赛事分组ID相符
             if (isset($RaceInfo['RaceId']) && $RaceStageId == $RaceInfo['RaceStageId'] && $RaceGroupId == $RaceInfo['RaceGroupId']) {
                 //数据解包
                 $RaceInfo['comment'] = isset($RaceInfo['comment']) ? json_decode($RaceInfo['comment'], true) : array();
                 //获取运动类型的数据
                 $SportsTypeInfo = $RaceInfo['comment']['DetailList'][$SportsTypeId];
                 //默认不新建数据
                 $NewDetail = 0;
                 //如果有存储对应计时点信息
                 if (isset($SportsTypeInfo['TimingId']) && $SportsTypeInfo['TimingId'] > 0) {
                     $SportsTypeInfo['TimingDetailList'] = $this->getTimingDetail($SportsTypeInfo['TimingId']);
                     if (!is_array($SportsTypeInfo['TimingDetailList'])) {
                         $NewDetail = 1;
                     }
                 } else {
                     $NewDetail = 1;
                 }
                 //初始化运动类型下的计时点列表
                 $SportsTypeInfo['TimingDetailList']['comment'] = isset($SportsTypeInfo['TimingDetailList']['comment']) ? json_decode($SportsTypeInfo['TimingDetailList']['comment'], true) : array();
                 $RaceInfo['comment']['DetailList'] = isset($RaceInfo['comment']['DetailList']) ? $RaceInfo['comment']['DetailList'] : array();
                 ksort($RaceInfo['comment']['DetailList']);
                 //如果添加在某个元素之后 且 元素下标不越界
                 if ($After >= 0 && $After <= count($SportsTypeInfo['TimingDetailList']['comment'])) {
                     //添加元素
                     $SportsTypeInfo['TimingDetailList']['comment'] = Base_Common::array_insert($SportsTypeInfo['TimingDetailList']['comment'], $bind, $After + 1);
                 } elseif ($After == -1) {
                     //添加元素
                     $SportsTypeInfo['TimingDetailList']['comment'] = Base_Common::array_insert($SportsTypeInfo['TimingDetailList']['comment'], $bind, $After + 1);
                 } else {
                     //默认为在表尾部添加元素
                     $SportsTypeInfo['TimingDetailList']['comment'][count($SportsTypeInfo['TimingDetailList']['comment'])] = $bind;
                 }
                 $this->db->begin();
                 //如果认为需要新建数据
                 if ($NewDetail == 1) {
                     $insertBind['comment'] = json_encode($SportsTypeInfo['TimingDetailList']['comment']);
                     $TimingId = $this->insertTimingDetail($insertBind);
                     if ($TimingId) {
                         $RaceInfo['comment']['DetailList'][$SportsTypeId]['TimingId'] = $TimingId;
                         $RaceInfo['comment'] = json_encode($RaceInfo['comment']);
                         $RaceStageGroupModify = $this->updateRace($RaceId, $RaceInfo);
                         if ($RaceStageGroupModify) {
                             $this->db->commit();
                             return true;
                         } else {
                             $this->db->rollback();
                             return false;
                         }
                     } else {
                         $this->db->rollback();
                         return false;
                     }
                 } else {
                     $updateBind = array('comment' => json_encode($SportsTypeInfo['TimingDetailList']['comment']));
                     $TimingDetailUpdate = $this->updateTimingDetail($SportsTypeInfo['TimingId'], $updateBind);
                     if ($TimingDetailUpdate) {
                         $this->db->commit();
                         return true;
                     } else {
                         $this->db->rollback();
                         return false;
                     }
                 }
             } else {
                 return false;
             }
         }
     }
 }