Преглед изворни кода

oracle util 底层方法修改

huangwenjie пре 5 година
родитељ
комит
a20a5d3773

+ 14 - 1
src/server/models/sessions/sessions.js

@ -258,7 +258,7 @@ class Sessions extends RedisModel {
                        return;
                    })
                    let createDate = new Date();
                    self.saveSessionToMysql(sessionId, name, type, createDate, businessType, function (err, res) {
                    self.updateSessionToMySQL(sessionId, name, type, createDate, businessType, function (err, res) {
                        logger.info("update session status is true");
                    })
                } else {
@ -343,6 +343,19 @@ class Sessions extends RedisModel {
        SessionRepo.saveSession(sessionId, name, type, createDate, businessType, handler);
    }
    /**
     * 保存session。若会话重复创建,则更新会话名称。
     * @param sessionId
     * @param name
     * @param type
     * @param createDate
     * @param businessType
     * @param handler
     */
    updateSessionToMySQL(sessionId, name, type, createDate, businessType, handler){
        SessionRepo.updateSessionToMySQL(sessionId, name, type, createDate, businessType, handler);
    }
    /**
     * 获取某个用户的全部session列表
     * @param userId

+ 9 - 5
src/server/repository/oracle/participant.repo.js

@ -245,7 +245,7 @@ class ParticipantRepo {
     * @param handler
     */
    static existsParticipant(sessionId, userId, handler) {
        let sql = "SELECT CASE WHEN COUNT(*) > 0 THEN TRUE ELSE FALSE END EXIST FROM PARTICIPANTS W WHERE W.SESSION_ID =:SESSION_ID AND W.PARTICIPANT_ID = :PARTICIPANT_ID ";
        let sql = "SELECT CASE WHEN COUNT(*) > 0 THEN 'true' ELSE 'false' END EXIST FROM PARTICIPANTS W WHERE W.SESSION_ID =:SESSION_ID AND W.PARTICIPANT_ID = :PARTICIPANT_ID ";
        log.info("用户是否在指定Session中:sql:" + sql);
        log.info("用户是否在指定Session中:args:" + [sessionId, userId]);
        oracledbUtil.query({
@ -263,22 +263,26 @@ class ParticipantRepo {
     * @param handler
     */
    static saveParticipantsToMysql(sessionId, users, handler) {
        let sql = "INSERT INTO " + DB_TABLES.Participants + " (SESSION_ID,PARTICIPANT_ID,PARTICIPANT_ROLE,LAST_FETCH_TIME) VALUES ";
        let sql = "INSERT ALL ";
        let args = [];
        let nowDate = new Date();
        log.info("saveParticipantsToMysql:[sql] = " + sql);
        log.info("saveParticipantsToMysql:[users.length] = " + users.length);
        for (let j in users) {
            let tokens = users[j].split(":");
            sql += "(:SESSION_ID,:PARTICIPANT_ID,:PARTICIPANT_ROLE,:LAST_FETCH_TIME)";
            sql += " INTO " + DB_TABLES.Participants + " (SESSION_ID,PARTICIPANT_ID,PARTICIPANT_ROLE,LAST_FETCH_TIME) VALUES  (:SESSION_ID,:PARTICIPANT_ID,:PARTICIPANT_ROLE,:LAST_FETCH_TIME)";
            args.push(sessionId);
            args.push(tokens[0]);
            args.push(tokens.length > 1 ? tokens[1] : '0');
            args.push(nowDate);
            if (j != users.length - 1) sql += ", ";
            if (j != users.length - 1) sql += "";
            log.info("saveParticipantsToMysql:[args] = " + args);
        }
        sql += " ON DUPLICATE KEY UPDATE PARTICIPANT_ROLE = VALUES(PARTICIPANT_ROLE)";
        sql += " SELECT 1 FROM DUAL";
        /**
         * to do 待改造
         */
        // sql += " ON DUPLICATE KEY UPDATE PARTICIPANT_ROLE = VALUES(PARTICIPANT_ROLE)";
        oracledbUtil.query({
            "sql": sql,
            "args": args,

+ 23 - 4
src/server/repository/oracle/session.repo.js

@ -3,7 +3,6 @@
 */
"use strict";
let ImDb = require('../oracle/db/im.db');
let log = require('../../util/log.js');
//oracle工具类
@ -352,11 +351,31 @@ class SessionRepo {
     * @param handler
     */
    static saveSession(sessionId, name, type, createDate, businessType, handler) {
        let sql = "INSERT INTO " + DB_TABLES.Sessions + " (ID, NAME, TYPE, CREATE_DATE,BUSINESS_TYPE) VALUES (:ID,:NAME,:TYPE,:CREATE_DATE,:BUSINESS_TYPE) " +
            "ON DUPLICATE KEY UPDATE NAME = :NAME,TYPE = :TYPE";
        let sql = "INSERT INTO " + DB_TABLES.Sessions + " (ID, NAME, TYPE, CREATE_DATE,BUSINESS_TYPE) VALUES (:ID,:NAME,:TYPE,:CREATE_DATE,:BUSINESS_TYPE) ";
        oracledbUtil.query({
            "sql": sql,
            "args": [sessionId, name, type, createDate, businessType, name,type],
            "args": [sessionId, name, type,createDate,businessType],
            "handler": handler || function (err, res) {
                if(err) log.error(err);
            }
        });
    }
    /**
     * 保存session。若会话重复创建,则更新会话名称。
     *
     * @param sessionId
     * @param name
     * @param type
     * @param createDate
     * @param businessType
     * @param handler
     */
    static updateSessionToMySQL(sessionId, name, type, createDate, businessType, handler) {
        let sql = "UPDATE " + DB_TABLES.Sessions + " SET NAME = :NAME , TYPE = :NAME, CREATE_DATE=:CREATE_DATE,businessType=:BUSINESS_TYPE, STATUS=0 WHERE ID=:ID ";
        oracledbUtil.query({
            "sql": sql,
            "args": [name, type,createDate,businessType,sessionId],
            "handler": handler || function (err, res) {
                if(err) log.error(err);
            }

Разлика између датотеке није приказан због своје велике величине
+ 2 - 2
src/server/repository/oracle/topics.repo.js