1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- /**
- * 群组,即原先的行政团队数据迁移。
- *
- * @author sand
- * @since 2017/1/9
- */
- let ImDb = require('../../repository/mysql/db/im.db');
- let async = require("async");
- let log = require("../../util/log.js");
- let fs = require('fs');
- let migrationFile = "migration.sql";
- class Migration {
- constructor() {
- }
- /**
- * 迁移P2P及其消息
- */
- static migrateP2P() {
- }
- /**
- * 迁移团队及其消息
- */
- static migrateGroups() {
- // 选择出所有的行政组
- let sql = "select t.id session_id, t.name, 3 `type`, t.create_time 'create_date' " +
- "from im_new.msg_group g, wlyy.wlyy_admin_team t " +
- "where g.to_gid = t.id group by g.to_gid order by g.to_gid";
- async.waterfall([
- function (callback) {
- ImDb.execQuery({
- sql: sql,
- args: [],
- handler: function (err, sessions) {
- if(err){
- throw err;
- } else{
- let sqls = "";
- sessions.forEach(function (session) {
- sqls += "insert into sessions(id, name) values()";
- });
- fs.appendFile(migrationFile, "Hey there!", function(err) {
- if(err) {
- return console.log(err);
- }
- console.log("The file was saved!");
- });
- callback(null, sessions);
- }
- }
- })
- }
- ],
- function (err, res) {
- log.error("Error occures while migrate group sessions");
- });
- // 选择出所有的行政组成员
- sql = "select t.id session_id, m.id participant_id, 0 'participant_role', 0 'last_fetch_time' " +
- "from im_new.msg_group g, wlyy.wlyy_admin_team t, wlyy.wlyy_admin_team_member m " +
- "where g.to_gid = t.id and t.id = m.team_id group by g.to_gid order by g.to_gid";
- // 选择出所有的行政组消息
- sql = "select g.msg_id 'id', g.to_gid 'session_id', g.from_uid 'sender_id', 'sender_name' '', g.`type` 'content_type', g.content 'content', g.timestamp 'timestamp', g.at_uid 'at' " +
- "from im_new.msg_group g " +
- "where length(g.to_gid) < 20 order by g.to_gid";
- }
- /**
- * 迁移MUC及其消息
- */
- static migrateMUC() {
- // 选择出所有的咨询组
- let sql = "select g.to_gid from im_new.msg_group g where length(g.to_gid) > 20 group by g.to_gid order by g.to_gid";
- // 选择出所有的咨询组成员
- sql = "select g.to_gid, g.from_uid from im_new.msg_group g where length(g.to_gid) > 20 group by g.to_gid order by g.to_gid";
- // 选择出所有的咨询组消息
- sql = "select g.to_gid, g.from_uid, g.msg_id, g.`type`, g.content, g.timestamp, g.at_uid from im_new.msg_group g where length(g.to_gid) > 20 order by g.to_gid";
- }
- }
- Migration.migrateGroups();
|