예제 #1
0
    public function actionUser()
    {
        User::deleteAll();
        $this->fdb->createCommand('DELETE FROM ngpt_ngpt_user')->query();
        //获取所有的User
        $offset = 0;
        $limit = 1000;
        QUERY:
        $sql = <<<SQL
SELECT u.*,m.adminid FROM ngpt_ngpt_users u
LEFT JOIN ngpt_common_member m ON u.uid=m.uid
LIMIT {$limit} OFFSET {$offset};
SQL;
        $res = $this->fdb->createCommand($sql)->queryAll();
        foreach ($res as $ouser) {
            $user = new User();
            $user->stat_up = $ouser['uploaded'];
            $user->stat_down = $ouser['downloaded'];
            $user->real_up = $ouser['realup'];
            $user->real_down = $ouser['realdown'];
            $user->is_valid = $ouser['candownload'] == '1';
            $user->passkey = $ouser['passkey'];
            $user->discuz_user_id = $ouser['uid'];
            if ($ouser['adminid'] != 0) {
                $user->priv = 'Admin';
            }
            var_dump($ouser);
            if (!$user->insert()) {
                var_dump($user->errors);
                return;
            }
            //进行ngpt的数据迁移
            $msql = <<<SQL
INSERT INTO ngpt_ngpt_user(uid, passkey, candownload)
VALUES ({$ouser['uid']},"{$user->passkey}", {$user->is_valid});
SQL;
            $res = $this->fdb->createCommand($msql)->query();
            if (!$res) {
                var_dump($msql);
                return;
            }
        }
        if (count($res)) {
            $offset += $limit;
            goto QUERY;
        }
        return;
    }