Exemplo n.º 1
0
    def get(self):
        user_ser = UserService(self.db)
        user_id = self.get_current_user()

        cur_user = user_ser.get_user_by_uuid(user_id)
        users = user_ser.get_all_user_order_by_active()

        redis_ser = RedisCacheManager()
        redis_ser._con.flushdb()

        active_count = redis_ser.get('active_count')
        total_count = redis_ser.get('total_count')

        if not active_count or not total_count:
            pipe = redis_ser._con.pipeline()
            pipe.set('total_count', self.get_user_count())
            pipe.set('active_count', self.get_active_count())
            pipe.execute()
            active_count = redis_ser.get('active_count')
            total_count = redis_ser.get('total_count')

        data = {
            'total_count': total_count,
            'active_count': active_count,
            'users': users
        }

        records = MultPersonChatManger().cache

        return self.render('chat.html',
                           data=data,
                           cur_user=cur_user,
                           records=records)
Exemplo n.º 2
0
    def on_message(self, message):
        to_user = self.get_argument('to_user_id', None)

        user_ser = UserService(self.application.db)
        message = json.loads(message)
        from_user = self.get_current_user()

        key = self.get_wait_key(from_user, to_user)
        user = user_ser.get_user_by_uuid(from_user)
        chat = {
            'message': message.get('info'),
            'time': datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
            'user_id': from_user,
            'avatar': user.avatar,
            'name': user.user_name
        }
        now_waits = ChatOneToOneBySocketHandler.watis.get(key).get('waits')
        now_cache = ChatOneToOneBySocketHandler.watis.get(key).get('cache')

        #说明另一个人此时不在对话中,所以发送消息给他
        if len(now_waits) < 2:
            redis_ser = RedisCacheManager()
            MessageRealTimePush().send_message(chat, to_user)
            redis_ser.hm_set(to_user, chat)

        self.update_cache(now_cache, chat)
        self.send_to_update(now_waits, chat)
Exemplo n.º 3
0
    def get(self):
        redis_ser = RedisCacheManager()
        user_ser = UserService(self.db)
        user_id = self.get_current_user()
        to_user_id = self.get_argument('to_user_id')

        cur_user = user_ser.get_user_by_uuid(user_id)
        to_user = user_ser.get_user_by_uuid(to_user_id)

        records = redis_ser.hm_get(user_id)

        return self.render('single_chat.html',
                           cur_user=cur_user,
                           to_user=to_user,
                           records=[records])
Exemplo n.º 4
0
    def post(self):
        user_ser = UserService(self.db)

        message = self.get_argument('message', None)
        if not message:
            return self.write('error')

        user_id = self.get_current_user()
        user_name = user_ser.get_name_by_user_id(user_id)
        avatar = user_ser.get_avatar_by_user_id(user_id)

        record = {
            'message': message,
            'user_id': user_id,
            'name': user_name,
            'avatar': avatar,
            'time': datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        }

        self.write('success')
        self.save_by_redis(record)

        MultPersonChatManger().new_message(record)
Exemplo n.º 5
0
 def get_all_user(self):
     user_ser = UserService(DB)
     all_user = user_ser.get_all_user_order_by_active()
     return all_user
Exemplo n.º 6
0
 def get_all_user(self):
     user_ser = UserService(DB)
     all_user = user_ser.get_all_user_order_by_active()
     return all_user
Exemplo n.º 7
0
 def create_user(self, **kwargs):
     user_ser = UserService(self.db)
     return user_ser.create_user(kwargs)
Exemplo n.º 8
0
 def get_active_user_count(self):
     user_ser = UserService(self.db)
     return user_ser.get_user_count_by_active()
Exemplo n.º 9
0
 def get_user_by_name_and_pwd(self, user_name, user_pwd):
     user_ser = UserService(self.db)
     return user_ser.get_user_by_name_and_pwd(user_name, user_pwd)
Exemplo n.º 10
0
 def update_user_active(self, user_id):
     user_ser = UserService(self.db)
     user = user_ser.get_user_by_uuid(user_id)
     user.is_active = 0
     self.db.commit()
Exemplo n.º 11
0
 def get_total_count(self):
     user_ser = UserService(self.db)
     return user_ser.get_user_count()