Esempio n. 1
0
 public static function actionAdd()
 {
     $unsetKey = W2HttpRequest::getUnsetRequest('targetid,title,description', $p_allowBlank = false);
     if ($unsetKey !== null) {
         return Utility::getArrayForResults(RUNTIME_CODE_ERROR_PARAM, '部分数据未提交,请检查。', array('errorContent' => '部分参数未提交数据: ' . $unsetKey));
     }
     $tmpModel = new MessageModel();
     $queryWhere = array();
     switch ($auther = static::getAuthIfUserCanDoIt(Utility::getCurrentUserID(), 'add', $tmpModel)) {
         case 'admin':
             //有管理权限
             // $tmpModel  ->           setUserID(W2HttpRequest::getRequestInt('userid'));//发布用户ID
             $tmpModel->setStatus(W2HttpRequest::getRequestInt('status'));
             //0: 不存在  1: 正常 2: 草稿  3:待审
             $tmpModel->setCreateTime(W2HttpRequest::getRequestDateTime('createtime'));
             //创建时间
             $tmpModel->setModifyTime(W2HttpRequest::getRequestDateTime('modifytime'));
             //修改时间
             $queryWhere['telephone'] = W2HttpRequest::getRequestTelephone('querytelephone', false);
             $queryWhere['genre'] = W2HttpRequest::getRequestInt('querygenre');
             $queryWhere['status'] = W2HttpRequest::getRequestInt('querystatus');
             $queryWhere['language'] = W2HttpRequest::getRequestInt('querylanguage');
             $queryWhere['lastLoginTime >= \'%s\''] = W2HttpRequest::getRequestDateTime('querylastlogintimestart');
             $queryWhere['lastLoginTime < \'%s\''] = W2HttpRequest::getRequestDateTime('querylastlogintimeend');
             $queryWhere['createTime >= \'%s\''] = W2HttpRequest::getRequestDateTime('querycreatetimestart');
             $queryWhere['createTime < \'%s\''] = W2HttpRequest::getRequestDateTime('querycreatetimeend');
             $queryWhere['modifyTime >= \'%s\''] = W2HttpRequest::getRequestDateTime('querymodifytimestart');
             $queryWhere['modifyTime < \'%s\''] = W2HttpRequest::getRequestDateTime('querymodifytimeend');
         case 'self':
             //作者
         //作者
         case 'normal':
             //正常用户
             $tmpModel->setTargetID(W2HttpRequest::getRequestInt('targetid'));
             //接收者用户ID,若为0则是全部用户
             $tmpModel->setTitle(W2HttpRequest::getRequestString('title'));
             //标题
             $tmpModel->setDescription(W2HttpRequest::getRequestString('description'));
             //描述
             $tmpModel->setUserID(Utility::getCurrentUserID());
             //默认作者为自己。
             if ($auther == 'normal') {
                 if ($tmpModel->getTargetID() == 0) {
                     return Utility::getArrayForResults(RUNTIME_CODE_ERROR_NO_AUTH, '您无权群发消息。');
                 }
             }
             if ($tmpModel->getTargetID() != 0) {
                 $queryWhere['id'] = $tmpModel->getTargetID();
             }
             $tmpModel->setQueryString(Utility::ch_json_encode(array_filter($queryWhere)));
             //推送目标json字典
             break;
         case 'draft':
             //未激活
             return Utility::getArrayForResults(RUNTIME_CODE_ERROR_NO_AUTH, '该账号未激活,不可使用该功能。');
             break;
         case 'pending':
             //待审禁言
             return Utility::getArrayForResults(RUNTIME_CODE_ERROR_NO_AUTH, '该账号被禁言,不可使用该功能。');
             break;
         case 'disabled':
             //封号
             return Utility::getArrayForResults(RUNTIME_CODE_ERROR_NO_AUTH, '该账号不可用,不可使用该功能。');
             break;
         case 'visitor':
             return Utility::getArrayForResults(RUNTIME_CODE_ERROR_NO_AUTH, '您需要登录后才可以执行该操作');
             break;
         default:
             return Utility::getArrayForResults(RUNTIME_CODE_ERROR_NO_AUTH, '您没有权限执行该操作');
             break;
     }
     if (method_exists($tmpModel, 'setStatus') && ($tmpModel->getStatus() === null || !array_key_exists('status', $tmpModel->propertiesModified()))) {
         $tmpModel->setStatus(STATUS_NORMAL);
     }
     $tmpResult = static::save($tmpModel, $isAdd = true);
     if (Utility::isResultsOK($tmpResult)) {
         $saveModel = Utility::getResults($tmpResult);
         $saveModel->setQueryCount(RelationMessageUserHandler::createNewModels($saveModel, $queryWhere));
         MessageHandler::saveModel($saveModel);
     }
     return $tmpResult;
 }