Browse Source

用户状态数据登录时记录到mysql

Sand 8 years ago
parent
commit
45ebea0108

+ 2 - 2
src/server/models/client/app.client.js

@ -60,7 +60,7 @@ class AppClient extends RedisModel {
        let userStatusKey = RedisModel.makeRedisKey(REDIS_KEYS.UserAppStatus, userId);
        redisConn.hgetallAsync(userStatusKey)
            .then(function (res) {
                if (res != null) {
                if (res) {
                    handler(null, res);
                } else {
                    AppStatusRepo.findOne(userId, function (err, res) {
@ -72,7 +72,7 @@ class AppClient extends RedisModel {
                                platform: res[0].platform,
                                token: res[0].token,
                                client_id: res[0].client_id,
                                app_in_bg: res[0].app_in_bg === 1,
                                app_in_bg: res[0].app_in_bg == 1,
                                last_login_time: res[0].last_login_time
                            }
                        }

+ 5 - 0
src/server/models/user/users.js

@ -15,6 +15,7 @@ let PatientRepo = require('../../repository/mysql/patient.repo');
let SessionRepo = require('../../repository/mysql/session.repo');
let MessageRepo = require('../../repository/mysql/message.repo');
let TopicRepo = require('../../repository/mysql/topics.repo');
let AppStatusRepo = require('../../repository/mysql/app.status.repo');
let ModelUtil = require('../../util/model.util');
let ObjectUtil = require("../../util/object.util.js");
let Patient = require('./patient');
@ -115,6 +116,10 @@ class Users extends RedisModel {
                     'role', loginFromApp ? 'doctor' : 'patient');*/
                    if (loginFromApp) {
                        AppStatusRepo.save(userId, deviceToken, clientId, platform, function (err, res) {
                            if (err) log.error();
                        });
                        // cache app status
                        multi = multi.hmset(userStatusKey,
                            'app_in_bg', 0,

+ 9 - 14
src/server/repository/mysql/app.status.repo.js

@ -36,17 +36,20 @@ class AppStatusRepo {
     * 保存App的最新状态。
     *
     * @param userId
     * @param token
     * @param deviceToken
     * @param client_id
     * @param platform
     * @param handler
     */
    static save(userId, token, client_id, platform, handler) {
    static save(userId, deviceToken, client_id, platform, handler) {
        let sql = "INSERT INTO app_status (user_id, platform, token, client_id, app_in_bg, last_login_time) " +
            "VALUES (?, ?, ?, ?, 0, now()) " +
            "ON DUPLICATE KEY UPDATE platform=?, token=?, client_id=?, app_in_bg=0,last_login_time=now()";
        ImDb.execQuery({
            "sql": "INSERT INTO app_status (user_id, platform, token, client_id, app_in_bg, last_login_time) VALUES (?,?,?,?,1,1) ON" +
            " DUPLICATE KEY UPDATE token=?,client_id=?,platform=?,is_online=1,status=1",
            "args": [userId, token, client_id, platform, token, client_id, platform],
            "handler": handler
            sql: sql,
            args: [userId, platform, deviceToken, client_id, platform, deviceToken, client_id],
            handler: handler
        });
    };
@ -64,14 +67,6 @@ class AppStatusRepo {
            "handler": handler
        });
    };
    static delete(token, handler) {
        ImDb.execQuery({
            "sql": "DELETE FROM user WHERE token=?",
            "args": [token],
            "handler": handler
        });
    };
}
module.exports = AppStatusRepo;