Пример #1
0
 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);
 }
Пример #2
0
 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));
 }