public function adminList($listCond, &$retDataContainer) { // 列表的必须字段 if (!DataValidater::isAllExist(array("start", "length"), $listCond)) { return Status::RET_INVALID_INPUT_PARAM_FORMAT; } // 获得数据 $start = $listCond["start"]; $length = $listCond["length"]; // 非空可选项 $order = DataLoader::exportColumn("order", $listCond); $orderCol = $orderDir = null; if ($order != null) { $orderCol = DataLoader::exportColumn("column", $order[0]); $orderDir = DataLoader::exportColumn("dir", $order[0]); } $search = DataLoader::exportColumn("search", $listCond); if ($search != null) { $search = DataLoader::exportColumn("value", $search); } /*$where = array(); $orgType = DataLoader::exportColumn( "org_type", $listCond ); if( $orgType != null ) { $where[ "org_type" ] = $orgType; } $orgDistrId = DataLoader::exportColumn( "org_distr_uuid", $listCond ); if( $orgDistrId != null ) { $where[ "org_distr_uuid" ] = $orgDistrId; }*/ return Table::pull(new Users(), $start, $length, $retDataContainer, $search, $orderCol, $orderDir); }
private static function push($arObj, $data, &$retDataContainer) { $tableAttr = array_keys(self::getAttributesWithoutPK($arObj)); // 获得待推送表的所有字段名 // TODO: $tableAttr验证 // 检查字段是否都存在 if (!DataValidater::isAllExist($tableAttr, $data)) { return Status::RET_INVALID_INPUT_PARAM_FORMAT; } // 获得目标AR的实例 $dest = $arObj; // 未找到 if ($dest == null) { return Status::RET_DEST_NOT_FOUND; } // 获取服务器当前数据 $currSrvData = self::getAttributes($dest); // $dest->getAttributes(); // TODO: $currSrvData验证 // 冲突处理 if (DataValidater::isConflictive($data, $currSrvData)) { // 发生冲突 $retDataContainer = array(); // 将服务器数据插入$srvData foreach ($currSrvData as $key => $val) { $retDataContainer[$key] = $val; } return Status::RET_CONFLICTIVE_DATA; } // 将数据写入 if (self::setAttributes($dest, $data, $tableAttr) && self::save($dest)) { // 成功,$dest->save() return Status::RET_SUCCESSFUL; } else { // 失败 return Status::RET_INSERT_ERROR; } }
private function requestIterator($actionName, $actionDest, $mustCheckMetaList, $spData = null) { $retSet = array(); // 返回数据 $retStatus = Status::RET_SUCCESSFUL; // 返回状态 $retCnt = 0; // 返回数目 if ($spData != null) { // 未使用通用接口格式 $this->rawData = $spData; $initStatus = Status::RET_SUCCESSFUL; } else { $initStatus = $this->initData(); // 使用通用接口格式,初始化 } if ($initStatus == Status::RET_SUCCESSFUL) { // 初始化成功 $raw = $this->rawData; foreach ($raw as $singleRequest) { $singleStatus = Status::RET_SUCCESSFUL; // 验证每项请求必要字段的完整性 if (DataValidater::isAllSet(array("meta_data", "src_data"), $singleRequest) && DataValidater::isAllSet($mustCheckMetaList, $singleRequest["meta_data"])) { $metaData = $singleRequest["meta_data"]; $srcData = $singleRequest["src_data"]; $mgr = null; switch ($actionDest) { // 选择操作的对象 case "user": $mgr = new UserManager(); break; default: // 操作对象不符合的返回状态 $singleStatus = Status::RET_ACTION_DEST_NOT_DEFINED; break; } // 操作对象不存在 if ($singleStatus != Status::RET_SUCCESSFUL) { $retStatus = Status::RET_SUCCESSFUL_WITH_WARNING; // 构造单条返回 $retSet[] = $this->generateSingleReturn($metaData, null, $singleStatus, $retCnt); continue; } // mgr未实例化 if ($mgr == null) { $retStatus = Status::RET_SERVER_ERROR; // 构造单条返回 $retSet[] = $this->generateSingleReturn($metaData, null, $singleStatus, $retCnt); continue; } $retContainer = array(); // 返回数据容器,目前是一个array switch ($actionName) { // 选择操作 case "add": // 添加 $singleStatus = $this->doAdd($mgr, $metaData, $srcData, $retContainer); break; case "delete": // 删除 $singleStatus = $this->doDelete($mgr, $metaData, $srcData, $retContainer); break; case "list": // 列表 $singleStatus = $this->doList($mgr, $metaData, $srcData, $retContainer); break; case "modify": // 编辑 $singleStatus = $this->doModify($mgr, $metaData, $srcData, $retContainer); break; case "browse": // 查看 $singleStatus = $this->doBrowse($mgr, $metaData, $srcData, $retContainer); break; default: // 不存在的操作 $singleStatus = Status::RET_ACTION_NOT_DEFINED; break; } // 单条返回数据 // 单条不成功,总状态为警告 if ($singleStatus != Status::RET_SUCCESSFUL) { $retStatus = Status::RET_SUCCESSFUL_WITH_WARNING; } // 构造单条返回 $retSet[] = $this->generateSingleReturn($metaData, $retContainer, $singleStatus, $retCnt); } else { // 数据不完整的返回状态 $retStatus = Status::RET_SUCCESSFUL_WITH_WARNING; $retSet[] = $this->generateSingleReturn(array(), null, Status::RET_INVALID_INPUT_PARAM_FORMAT, $retCnt); } } } else { // 初始化失败 $retStatus = $initStatus; } return json_encode(array("status" => $retStatus, "count" => $retCnt, "ret_set" => $retSet)); }