star7th 5 жил өмнө
parent
commit
056c7aae15

+ 294 - 0
server/Application/Api/Controller/UpdateController.class.php

@@ -0,0 +1,294 @@
+<?php
+namespace Api\Controller;
+use Think\Controller;
+class UpdateController extends BaseController {
+
+    //检测数据库并更新
+    public function checkDb(){
+        $version_num = 1 ;
+        $db_version_num = D("Options")->get("db_version_num");
+        if(!$db_version_num || $db_version_num < $version_num ){
+            $r = $this->updateSqlite();
+            if($r){
+                D("Options")->set("db_version_num" , $version_num );
+            }
+            
+        }
+        $this->sendResult(array());
+    }
+
+    public function updateSqlite(){
+        //catalog表增加parent_cat_id字段
+        if (!$this->_is_column_exist("catalog","parent_cat_id")) {
+            $sql = "ALTER TABLE ".C('DB_PREFIX')."catalog ADD parent_cat_id INT( 10 ) NOT NULL DEFAULT '0' ;";
+            D("catalog")->execute($sql);
+        }
+
+        //catalog表增加level字段
+        if (!$this->_is_column_exist("catalog","level")) {
+            $sql = "ALTER TABLE ".C('DB_PREFIX')."catalog ADD level INT( 10 ) NOT NULL DEFAULT '2'  ;";
+            D("catalog")->execute($sql);
+        }
+
+
+        //item表增加item_domain字段
+        if (!$this->_is_column_exist("item","item_domain")) {
+            $sql = "ALTER TABLE ".C('DB_PREFIX')."item ADD item_domain text NOT NULL DEFAULT '';";
+            D("catalog")->execute($sql);
+        }
+
+        //创建user_token表
+        $sql = "CREATE TABLE IF NOT EXISTS `user_token` (
+        `id`  INTEGER PRIMARY KEY ,
+        `uid` int(10) NOT NULL DEFAULT '0',
+        `token` CHAR(200) NOT NULL DEFAULT '',
+        `token_expire` int(11) NOT NULL DEFAULT '0' ,
+        `ip` CHAR(200) NOT NULL DEFAULT '',
+        `addtime` int(11) NOT NULL DEFAULT '0'
+        )";
+        D("UserToken")->execute($sql);
+
+        //创建template表
+        $sql = "CREATE TABLE IF NOT EXISTS `template` (
+        `id`  INTEGER PRIMARY KEY ,
+        `uid` int(10) NOT NULL DEFAULT '0',
+        `username` CHAR(200) NOT NULL DEFAULT '',
+        `template_title` CHAR(200) NOT NULL DEFAULT '' ,
+        `template_content` text NOT NULL DEFAULT '',
+        `addtime` int(11) NOT NULL DEFAULT '0'
+        )";
+        D("UserToken")->execute($sql);
+
+        //page表增加page_comments字段
+        if (!$this->_is_column_exist("page","page_comments")) {
+            $sql = "ALTER TABLE ".C('DB_PREFIX')."page ADD page_comments text NOT NULL DEFAULT ''  ;";
+            D("catalog")->execute($sql);
+        }
+
+
+        //page_history 表增加page_comments字段
+        if (!$this->_is_column_exist("PageHistory","page_comments")) {
+            $sql = "ALTER TABLE ".C('DB_PREFIX')."page_history ADD page_comments text NOT NULL DEFAULT '';";
+            D("catalog")->execute($sql);
+        }
+
+
+        //item_member表增加member_group_id字段
+        if (!$this->_is_column_exist("ItemMember","member_group_id")) {
+                $sql = "ALTER TABLE ".C('DB_PREFIX')."item_member ADD member_group_id INT( 1 ) NOT NULL DEFAULT '1'  ;";
+                D("ItemMember")->execute($sql);
+        }
+
+
+        //item表增加item_type字段
+        if (!$this->_is_column_exist("Item","item_type")) {
+                $sql = "ALTER TABLE ".C('DB_PREFIX')."item ADD item_type INT( 1 ) NOT NULL DEFAULT '1'  ;";
+                D("ItemMember")->execute($sql);
+        }
+
+        //创建options表
+        $sql = "CREATE TABLE IF NOT EXISTS `options` (
+        `option_id`  INTEGER PRIMARY KEY ,
+        `option_name` CHAR(200) NOT NULL UNIQUE ,
+        `option_value` CHAR(200) NOT NULL 
+        )";
+        D("UserToken")->execute($sql);
+
+        //创建item_token表
+        $sql = "CREATE TABLE IF NOT EXISTS `item_token` (
+        `id`  INTEGER PRIMARY KEY ,
+        `item_id` int(11) NOT NULL DEFAULT '0' ,
+        `api_key` CHAR(200) NOT NULL UNIQUE ,
+        `api_token` CHAR(200) NOT NULL ,
+        `addtime` int(11) NOT NULL DEFAULT '0' ,
+        `last_check_time` int(11) NOT NULL DEFAULT '0' 
+        )";
+        D("UserToken")->execute($sql);
+
+        //创建item_top表
+        $sql = "CREATE TABLE IF NOT EXISTS `item_top` (
+        `id`  INTEGER PRIMARY KEY ,
+        `item_id` int(11) NOT NULL DEFAULT '0' ,
+        `uid` int(11) NOT NULL DEFAULT '0' ,
+        `addtime` int(11) NOT NULL DEFAULT '0' 
+        )";
+        D("UserToken")->execute($sql);
+
+        //item表增加is_archived字段
+        if (!$this->_is_column_exist("Item","is_archived")) {
+                $sql = "ALTER TABLE ".C('DB_PREFIX')."item ADD is_archived INT( 1 ) NOT NULL DEFAULT '0'  ;";
+                D("ItemMember")->execute($sql);
+        }
+
+
+        //管理员账户和权限
+        if(D("User")->where("username = 'showdoc' ")->find()){
+            D("User")->where("username = 'showdoc' ")->save(array("groupid"=> 1)) ;
+        }else{
+             D("User")->add(array('username'=>"showdoc" ,"groupid"=>1,'password'=>"a89da13684490eb9ec9e613f91d24d00" , 'reg_time'=>time()));
+        }
+
+        //item表增加is_del字段
+        if (!$this->_is_column_exist("Item","is_del")) {
+                $sql = "ALTER TABLE ".C('DB_PREFIX')."item ADD is_del INT( 1 ) NOT NULL DEFAULT '0'  ;";
+                D("ItemMember")->execute($sql);
+        }
+
+        //page表增加is_del字段
+        if (!$this->_is_column_exist("Page","is_del")) {
+                $sql = "ALTER TABLE ".C('DB_PREFIX')."page ADD is_del INT( 1 ) NOT NULL DEFAULT '0'  ;";
+                D("ItemMember")->execute($sql);
+        }
+
+        //创建team表
+        $sql = "CREATE TABLE IF NOT EXISTS `team` (
+        `id`  INTEGER PRIMARY KEY ,
+        `team_name` CHAR(200) NOT NULL DEFAULT '',
+        `uid` int(11) NOT NULL DEFAULT '0' ,
+        `username` CHAR(200) NOT NULL DEFAULT '',
+        `addtime` int(11) NOT NULL DEFAULT '0' ,
+        `last_update_time` int(11) NOT NULL DEFAULT '0' 
+        )";
+        D("User")->execute($sql);
+
+        //创建team_item表
+        $sql = "CREATE TABLE IF NOT EXISTS `team_item` (
+        `id`  INTEGER PRIMARY KEY ,
+        `team_id` int(11) NOT NULL DEFAULT '0' ,
+        `item_id` int(11) NOT NULL DEFAULT '0' ,
+        `addtime` int(11) NOT NULL DEFAULT '0' ,
+        `last_update_time` int(11) NOT NULL DEFAULT '0' 
+        )";
+        D("User")->execute($sql);
+
+        //创建team_item_member表
+        $sql = "CREATE TABLE IF NOT EXISTS `team_item_member` (
+        `id`  INTEGER PRIMARY KEY ,
+        `team_id` int(11) NOT NULL DEFAULT '0' ,
+        `item_id` int(11) NOT NULL DEFAULT '0' ,
+        `member_group_id` int(11) NOT NULL DEFAULT '0' ,
+        `member_uid` int(11) NOT NULL DEFAULT '0' ,
+        `member_username` CHAR(200) NOT NULL DEFAULT '',
+        `addtime` int(11) NOT NULL DEFAULT '0' ,
+        `last_update_time` int(11) NOT NULL DEFAULT '0' 
+        )";
+        D("User")->execute($sql);
+
+        //创建team_member表
+        $sql = "CREATE TABLE IF NOT EXISTS `team_member` (
+        `id`  INTEGER PRIMARY KEY ,
+        `team_id` int(11) NOT NULL DEFAULT '0' ,
+        `member_uid` int(11) NOT NULL DEFAULT '0' ,
+        `member_username` CHAR(200) NOT NULL DEFAULT '',
+        `addtime` int(11) NOT NULL DEFAULT '0' ,
+        `last_update_time` int(11) NOT NULL DEFAULT '0' 
+        )";
+        D("User")->execute($sql);
+
+        //创建upload_file表
+        $sql = "CREATE TABLE IF NOT EXISTS `upload_file` (
+        `file_id`  INTEGER PRIMARY KEY ,
+        `sign` CHAR(200) NOT NULL DEFAULT '',
+        `display_name` CHAR(200) NOT NULL DEFAULT '',
+        `file_type` CHAR(200) NOT NULL DEFAULT '',
+        `file_size` CHAR(200) NOT NULL DEFAULT '',
+        `uid` int(11) NOT NULL DEFAULT '0' ,
+        `page_id` int(11) NOT NULL DEFAULT '0' ,
+        `item_id` int(11) NOT NULL DEFAULT '0' ,
+        `visit_times` int(11) NOT NULL DEFAULT '0' ,
+        `addtime` int(11) NOT NULL DEFAULT '0' ,
+        `real_url` CHAR(200) NOT NULL DEFAULT '',
+        `last_update_time` int(11) NOT NULL DEFAULT '0' 
+        )";
+        D("User")->execute($sql);
+
+        //创建item_sort表
+        $sql = "CREATE TABLE IF NOT EXISTS `item_sort` (
+        `id`  INTEGER PRIMARY KEY ,
+        `uid` int(10) NOT NULL DEFAULT '0',
+        `item_sort_data` text NOT NULL DEFAULT '',
+        `addtime` int(11) NOT NULL DEFAULT '0'
+        )";
+        D("UserToken")->execute($sql);
+
+        //创建single_page表
+        $sql = "CREATE TABLE IF NOT EXISTS `single_page` (
+        `id`  INTEGER PRIMARY KEY ,
+        `unique_key` CHAR(200) NOT NULL DEFAULT '',
+        `page_id` int(11) NOT NULL DEFAULT '0'
+        )";
+        D("User")->execute($sql);
+
+        //创建captcha表
+        $sql = "CREATE TABLE IF NOT EXISTS `captcha` (
+        `captcha_id`  INTEGER PRIMARY KEY ,
+        `mobile` CHAR(200) NOT NULL DEFAULT '',
+        `captcha` CHAR(200) NOT NULL DEFAULT '',
+        `expire_time` int(11) NOT NULL DEFAULT '0'
+        )";
+        D("User")->execute($sql);
+
+        //创建recycle表
+        $sql = "CREATE TABLE IF NOT EXISTS `recycle` (
+        `id`  INTEGER PRIMARY KEY ,
+        `item_id` int(11) NOT NULL DEFAULT '0',
+        `page_id` int(11) NOT NULL DEFAULT '0',
+        `page_title` CHAR(200) NOT NULL DEFAULT '',
+        `del_by_uid` int(11) NOT NULL DEFAULT '0',
+        `del_by_username` CHAR(200) NOT NULL DEFAULT '',
+        `del_time` int(11) NOT NULL DEFAULT '0'
+        )";
+        D("User")->execute($sql);
+
+        //创建page_lock表
+        $sql = "CREATE TABLE IF NOT EXISTS `page_lock` (
+            `id`  INTEGER PRIMARY KEY ,
+            `page_id` int(11) NOT NULL DEFAULT '0',
+            `lock_uid` int(11) NOT NULL DEFAULT '0',
+            `lock_username` CHAR(200) NOT NULL DEFAULT '',
+            `lock_to` int(11) NOT NULL DEFAULT '0',
+            `addtime` int(11) NOT NULL DEFAULT '0'
+            )";
+        D("User")->execute($sql);
+
+        //item_member表增加cat_id字段
+        if (!$this->_is_column_exist("item_member","cat_id")) {
+            $sql = "ALTER TABLE ".C('DB_PREFIX')."item_member ADD cat_id INT( 10 ) NOT NULL DEFAULT '0'  ;";
+            D("User")->execute($sql);
+        }
+
+        //team_item_member表增加cat_id字段
+        if (!$this->_is_column_exist("team_item_member","cat_id")) {
+            $sql = "ALTER TABLE ".C('DB_PREFIX')."team_item_member ADD cat_id INT( 10 ) NOT NULL DEFAULT '0'  ;";
+            D("User")->execute($sql);
+        }
+
+        //创建item_variable表
+        $sql = "CREATE TABLE IF NOT EXISTS `item_variable` (
+            `id`  INTEGER PRIMARY KEY ,
+            `var_name` CHAR(2000) NOT NULL DEFAULT '',
+            `var_value` CHAR(2000) NOT NULL DEFAULT '',
+            `uid` int(11) NOT NULL DEFAULT '0',
+            `item_id` int(11) NOT NULL DEFAULT '0',
+            `addtime` int(11) NOT NULL DEFAULT '0'
+            )";
+        D("User")->execute($sql);
+
+
+        return true ;
+    }
+
+    private function _is_column_exist($table , $column){
+        $has_it = false ;//是否存在该字段
+        $columns = M($table)->getDbFields();
+        if ($columns) {
+            foreach ($columns as $key => $value) {
+                if ($value == $column) {
+                    $has_it = true ;
+                }
+            }
+        }
+        return $has_it ;
+    }
+
+}