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; }