public static function update($id, $data)
 {
     if (isset($data['actname']) && empty($data['actname'])) {
         return print json_encode(array('success' => false, 'status' => 400, 'msg' => 'Activity Name is required'));
     }
     if (isset($data['actstartdate']) && empty($data['actstartdate'])) {
         return print json_encode(array('success' => false, 'status' => 400, 'msg' => 'Start date is required'));
     }
     if (isset($data['actenddate']) && empty($data['actenddate'])) {
         return print json_encode(array('success' => false, 'status' => 400, 'msg' => 'End date is required'));
     }
     ActivityModel::update($id, $data);
 }
 public function chooseactivityAction()
 {
     $activityid = $this->getRequest()->getParam('activityid', '0');
     $account = $_COOKIE["account"];
     $uid = $_SESSION["userinfo"][0];
     if ($uid == null) {
         $this->view->info = '未登录';
         $this->_forward('result3', 'globals');
         return;
     }
     $usertable = new UserModel();
     $db1 = $usertable->getAdapter();
     $table = new User_ActivityModel();
     $db2 = $table->getAdapter();
     $activitytable = new ActivityModel();
     $db3 = $activitytable->getAdapter();
     //查找当前用户ID
     $result = $usertable->fetchRow($db1->quoteInto('email = ?', $account))->toArray();
     $uid = $result['id'];
     //检查是否该用户参加过此活动
     $where = $db2->quoteInto('userid = ? ', $uid) . $db2->quoteInto('AND activityid = ?', $activityid);
     $flag0 = count($table->fetchAll($where)->toArray());
     if ($flag0 != 0) {
         $this->view->info = '已参加';
         $this->_forward('result2', 'globals');
         return;
     }
     //添加一条记录
     $set = array('userid' => $uid, 'activityid' => $activityid);
     $flag1 = $table->insert($set);
     //活动列表更新nums
     $nums = $activitytable->find($activityid)->toArray()[0]['nums'];
     $nums++;
     $numsset = array('nums' => $nums);
     $where = $db3->quoteInto('id = ?', $activityid);
     $flag2 = $activitytable->update($numsset, $where);
     /* echo $flag1;
        echo $flag2;
        exit(); */
     //判断是否成功
     if ($flag1 > 0 && $flag2 > 0) {
         $this->view->info = 'success';
     } else {
         $this->view->info = 'fail';
     }
     $this->_forward('result2', 'globals');
 }
Exemple #3
0
 public static function updateActivitiesArray($activities, $initID = null)
 {
     if (!$initID || !$activities || !is_array($activities) || !is_numeric($initID)) {
         throw new Exception('Invalid data structure');
     }
     try {
         $db = Globals::getDBConn();
         $db->beginTransaction();
         foreach ($activities as $actGroupKey => $activityGroup) {
             if (isset($activityGroup['title']) && strlen($activityGroup['title']) > 0 && isset($activityGroup['id']) && isset($activityGroup['desc']) && isset($activityGroup['required']) && isset($activityGroup['allowMulti'])) {
                 $actGroupData = array('title' => $activityGroup['title'], 'desc' => $activityGroup['desc'], 'rank' => $actGroupKey, 'required' => (int) $activityGroup['required'], 'allowMulti' => (int) $activityGroup['allowMulti']);
                 if (is_numeric($activityGroup['id'])) {
                     $activityGroupObj = new ActivityGroupModel($activityGroup['id']);
                     if (!$activityGroupObj) {
                         throw new Exception('Failed to retrieve activity group');
                     }
                     $activityGroupObj->update($actGroupData);
                     $activityGroupID = $activityGroupObj->getMetadata('id');
                 } else {
                     if ('new-act-group' === $activityGroup['id']) {
                         $actGroupData['init'] = $initID;
                         $activityGroupID = ActivityGroupModel::create($actGroupData);
                         if (false === $activityGroupID) {
                             throw new Exception('Failed to create activity group');
                         }
                     } else {
                         throw new Exception('Invalid activity group ID');
                     }
                 }
                 foreach ($activityGroup['activities'] as $actKey => $activity) {
                     if (isset($activity['title']) && strlen($activity['title']) > 0 && isset($activity['id']) && isset($activity['desc']) && isset($activity['enabled'])) {
                         $actData = array('title' => $activity['title'], 'desc' => $activity['desc'], 'enabled' => (int) $activity['enabled'], 'group' => $activityGroupID, 'rank' => $actKey);
                         if (is_numeric($activity['id'])) {
                             $activityObj = new ActivityModel($activity['id']);
                             if (!$activityObj) {
                                 throw new Exception('Failed to retrieve activity');
                             }
                             $activityObj->update($actData);
                         } else {
                             if ('new-act' === $activity['id']) {
                                 //$actData['init'] = $initID;
                                 $activityID = self::create($actData);
                                 if (false === $activityID) {
                                     throw new Exception('Failed to create activity');
                                 }
                             } else {
                                 throw new Exception('Invalid activity ID');
                             }
                         }
                     } else {
                         throw new Exception('Missing required activity fields (title, ID, enabled, or desc)');
                     }
                 }
             } else {
                 throw new Exception('Missing required activity group fields (title, ID, required, allowMulti, or desc)');
             }
         }
         $db->commit();
     } catch (Exception $e) {
         $db->rollBack();
         throw $e;
     }
     return true;
 }