#!/usr/bin/env python3 # -*- coding: utf-8 -*- from sqlalchemy.orm import Session from sqlalchemy import text, exists, and_, or_, not_ from sqlalchemy.sql import func from database import get_db from models import * from extensions import logger from utils import * def add_msg(db: Session, msg_type: str, msg_id: int, user_id: int) -> None: new_msg = MsgCenter( msg_type = msg_type, msg_id = msg_id, recv_time = datetime.now(), recv_userid = user_id, recv_status = 0, update_time = datetime.now() ) db.add(new_msg) db.commit() db.refresh(new_msg) return new_msg.id def get_unread_msg_count(db: Session, user_id: int, msg_type_list: dict) -> dict: data = [] for msg_type in msg_type_list: where = and_(MsgCenter.msg_type == msg_type.strip(), MsgCenter.recv_userid == user_id, MsgCenter.recv_status == 0) logger.info(msg_type) if msg_type == '消息中心': where = and_(MsgCenter.recv_userid == user_id, MsgCenter.recv_status == 0) c1 = db.query(MsgCenter).filter(where).count() data.append({"name" : msg_type, "num": c1}) logger.info(data) return data def update_msg_read(db: Session, user_id: int, msg_type: str, msg_id: int) -> None: db.query(MsgCenter).filter(and_(MsgCenter.msg_type == msg_type, MsgCenter.recv_userid == user_id, MsgCenter.msg_id == msg_id)).update({"recv_status": 1, "update_time": datetime.now()}) db.commit()