Example #1
0
File: Api.php Project: paybreak/rpc
 /**
  * Handles request and sends Response. Default implementation.
  *
  * @author WN
  */
 public function executeCall()
 {
     try {
         $result = $this->executeAction($this->getAction($this->getRequestAction()));
         if (!is_array($result)) {
             throw new ApiException('Unprocesable response', 500);
         }
         Response::sendJson($result);
     } catch (ApiException $e) {
         Response::sendJson(['error' => $e->getMessage()], $e->getCode());
     } catch (\Exception $e) {
         Response::sendJson(['error' => $e->getMessage()], 500);
     }
 }
 public function join(Request $request, Response $response)
 {
     $res = ['flag' => 'FAIL', 'msg' => ''];
     if (Member::isLogined()) {
         $user = Member::getUser();
         $uid = $user['uid'];
     } else {
         $res['msg'] = '请先登录';
         $response->sendJSON($res);
     }
     $aid = $request->post('aid', 0);
     $act = $request->post('act', '');
     $info = Activity_Model::getActivityByAid($aid);
     if (empty($info)) {
         $res['msg'] = '该活动不存在';
         $response->sendJson($res);
     }
     if (!in_array($act, ['join', 'vote'])) {
         $res['msg'] = '未知操作';
         $response->sendJson($res);
     }
     $inc = 1;
     if ($act == 'join') {
         $cur_time = time();
         if ($info['start_time'] > $cur_time) {
             $res['msg'] = '活动还没有开始';
             $response->sendJson($res);
         }
         if ($info['end_time'] < $cur_time) {
             $res['msg'] = '活动已结束';
             $response->sendJson($res);
         }
         if (Activity_Model::isJoin($aid, $uid, 'join')) {
             $inc = -1;
             $res['msg'] = '您已经参与过本次活动了';
             $response->sendJson($res);
         }
     } elseif ($act == 'vote') {
         if (Activity_Model::isJoin($aid, $uid, 'vote')) {
             $inc = -1;
             /*
                     $res['msg'] = '已赞'; 
                     $response->sendJson($res);*/
         }
     }
     $jid = Activity_Model::joinActivity(['aid' => $aid, 'uid' => $uid, 'act' => $act, 'timeline' => time()], $inc);
     if ($jid > 0) {
         $res['flag'] = 'SUC';
         if ($act == 'join') {
             $res['msg'] = '参与成功';
         } elseif ($act == 'vote') {
             if ($inc > 0) {
                 $res['msg'] = '已赞';
             } else {
                 $res['msg'] = '已取消赞';
             }
         }
     } else {
         $res['msg'] = '系统繁忙,请稍后再试';
     }
     $response->sendJson($res);
 }