示例#1
0
 /**
  * 卡牌库列表
  * @author gentle
  */
 public function actionIndex()
 {
     $data = array();
     $data['model'] = CardDb::model();
     // 		FunctionUTL::Debug(User::model()->getScopeDbCriteria());exit;
     $data['dataTree'] = $this->dataTree(0, 'datasetField/index');
     $data['info'] = $this->promptInfo();
     $this->render('index', $data);
 }
示例#2
0
 /**
  * 左侧栏树形结构
  * @author gentle
  */
 public function dataTree()
 {
     $data = array();
     $databases = CardDb::model()->findAll();
     foreach ($databases as $key => $value) {
         $data[$key]['text'] = '<span>' . $value->name . '</span>';
         $data[$key]['expanded'] = false;
         $data[$key]['children'] = array();
         $datasets = CardDs::model()->findAllByAttributes(array('database_id' => (string) $value->id));
         if (empty($datasets)) {
             continue;
         }
         foreach ($datasets as $k => $v) {
             $data[$key]['children'][$k] = array('text' => '<a href="' . $this->createUrl('/CardDs/Index/id/' . $value->id) . '">' . $v->name . '</a>');
         }
     }
     return $data;
 }
示例#3
0
 /**
  * 左侧栏树形结构
  * @author gentle
  */
 public function dataTree($databaseId = 0, $action = 'cardItem/Index')
 {
     $data = array();
     $databases = CardDb::model()->findAll(User::model()->getScopeDbCriteria());
     foreach ($databases as $key => $value) {
         $data[$key]['text'] = '<span>' . $value->name . '</span>';
         if ($databaseId == $value->id) {
             $data[$key]['expanded'] = true;
         } else {
             $data[$key]['expanded'] = false;
         }
         $data[$key]['children'] = array();
         $dscriteria = User::model()->getScopeDsCriteria();
         $dscriteria->addCond('database_id', '==', (int) $value->id);
         $datasets = CardDs::model()->findAll($dscriteria);
         if (empty($datasets)) {
             continue;
         }
         foreach ($datasets as $k => $v) {
             $data[$key]['children'][$k] = array('text' => '<a href="' . $this->createUrl('/' . $action . '/id/' . $v->id) . '">' . $v->name . '</a>');
         }
     }
     return $data;
 }
示例#4
0
 /**
  * 根据表名得到真实的表和对应的查询条件
  * @param $tname	string	待解析表名
  * @return 真实表名和条件
  */
 public function parseRealTable($tname)
 {
     $rs = array('name' => $tname, 'criteria' => new EMongoCriteria());
     if (preg_match('/^(item_)/i', $tname)) {
         $tinfo = explode('_', $tname);
         if (count($tinfo) == 3) {
             $dbinfo = CardDb::model()->findByAttributes(array('en_name' => $tinfo[1]));
             if ($dbinfo) {
                 $dsinfo = CardDs::model()->findByAttributes(array('database_id' => $dbinfo->id, 'en_name' => $tinfo[2]));
                 if ($dsinfo) {
                     $rs['name'] = $tinfo[0];
                     $rs['criteria']->dataset_id = (int) $dsinfo['id'];
                 }
             }
         }
     }
     return $rs;
 }
示例#5
0
 /**
  * 获取库与实体对应关系表
  * @return unknown_type
  */
 public function getDBDSMap()
 {
     //添加统一前缀
     $cache_key = strtolower('db.admin' . __FUNCTION__);
     //调用,有缓存则用缓存
     if (($map = Yii::app()->cache->get($cache_key)) === false) {
         $dblist = CardDb::model()->findAll(User::model()->getScopeDbCriteria());
         $dslist = CardDs::model()->findAll(User::model()->getScopeDsCriteria());
         foreach ($dblist as $dv) {
             $map[$dv['id']] = array('en_name' => $dv['en_name'], 'name' => $dv['name'], 'list' => array());
         }
         foreach ($dslist as $tv) {
             if (isset($map[$tv['database_id']])) {
                 $map[$tv['database_id']]['list'][$tv['id']] = array('en_name' => $tv['en_name'], 'name' => $tv['name']);
             }
         }
         if (!Yii::app()->cache->set($cache_key, $map, Yii::app()->params['cache_expire'])) {
             Yii::log('设置缓存失败:key=' . $cache_key, CLogger::LEVEL_WARNING, 'system.cache');
         }
     }
     return $map;
 }
示例#6
0
 /**
  * 获取数据库列表
  */
 public function actionGetDbs()
 {
     $return['code'] = 0;
     $return['data'] = CardDb::model()->getList();
     echo CJSON::encode($return);
 }