diff --git a/Crud/UserCrud.py b/Crud/UserCrud.py index c8c913f..f680b5f 100644 --- a/Crud/UserCrud.py +++ b/Crud/UserCrud.py @@ -1,8 +1,11 @@ from sqlalchemy.orm import Session from sqlalchemy import func + +from Models.DailyModel import Daily from Models.DepartmentModel import Department from Models.PostModel import Post from Models.UserModel import User, UserInfo +from Mods.Comment.Models import Comment from Schemas import UserSchemas import json @@ -119,3 +122,16 @@ def get_department_config(db: Session): type_dic[d.sub_type] = [] type_dic[d.sub_type].append(d.name) return type_dic + + +def get_user_comments(db: Session, email: str): + """ + 获取用户自己的评论数据 + Args: + db: + email: + Returns: + """ + + + diff --git a/Mods/Comment/Crud.py b/Mods/Comment/Crud.py index de40dd6..aa85b3c 100644 --- a/Mods/Comment/Crud.py +++ b/Mods/Comment/Crud.py @@ -34,6 +34,9 @@ def comment_query(db: Session, params: Schemas.CommentQuery): db_model = Comment for key, value in params_dict.items(): if key not in ['page', 'page_size'] and value is not None: + if key in ['user_email', 'receiver_user_email']: + query = query.filter(getattr(db_model, key) == value) + continue if type(value) == str: query = query.filter(getattr(db_model, key).like(f'%{value}%')) elif type(value) in [int, float, bool]: @@ -53,5 +56,4 @@ def comment_query(db: Session, params: Schemas.CommentQuery): query = query.offset((page - 1) * page_size).limit(page_size).all() return count, query - -################ \ No newline at end of file +################ diff --git a/Mods/Comment/Models.py b/Mods/Comment/Models.py index afd1da9..d80668a 100644 --- a/Mods/Comment/Models.py +++ b/Mods/Comment/Models.py @@ -15,7 +15,9 @@ class Comment(Base): daily_id = Column(Integer, ForeignKey('daily.id', ondelete='CASCADE')) daily = relationship('Daily', back_populates='comments') user_email = Column(String(255), ForeignKey('user.email', ondelete='CASCADE')) - user = relationship('User', backref='comments') + receiver_user_email = Column(String(255), ForeignKey('user.email', ondelete='CASCADE')) + user = relationship('User', backref='self_comments', foreign_keys=[user_email]) + receiver_user = relationship('User', backref='receiver_comments', foreign_keys=[receiver_user_email]) create_time = Column(DateTime, server_default=func.now(), comment='创建时间') def to_dict(self, full=False): @@ -35,4 +37,6 @@ class Comment(Base): data[c.name] = getattr(self, c.name) if self.user: data['user'] = self.user.to_dict() + if self.receiver_user: + data['receiver_user'] = self.receiver_user.to_dict() return data diff --git a/Mods/Comment/Router.py b/Mods/Comment/Router.py index 2ae4388..fc25ae6 100644 --- a/Mods/Comment/Router.py +++ b/Mods/Comment/Router.py @@ -53,7 +53,7 @@ def comment_get(req: Schemas.CommentGetReq, db: Session = Depends(get_db)): @router.post("/comment/query", summary="查询评论", response_model=Schemas.CommentQueryRes) def comment_query(req: Schemas.CommentQueryReq, db: Session = Depends(get_db)): count, query = Crud.comment_query(db, req) - items = [Schemas.CommentInfo(**item.to_dict()) for item in query] + items = [Schemas.CommentInfo(**item.to_with_user_dict()) for item in query] return Schemas.CommentQueryRes(count=count, items=items) diff --git a/Mods/Comment/Schemas.py b/Mods/Comment/Schemas.py index f07c285..9ccafb3 100644 --- a/Mods/Comment/Schemas.py +++ b/Mods/Comment/Schemas.py @@ -9,10 +9,12 @@ class CommentInfo(BaseModel): id: Optional[int] daily_id: Optional[int] user_email: Optional[str] + receiver_user_email: Optional[str] daily: Optional[DailyInfo] content: Optional[str] user: Optional[UserInfo] create_time: Optional[datetime] + receiver_user: Optional[UserInfo] class CommentAddInfo(BaseModel): diff --git a/Utils/SqlAlchemyUtils.py b/Utils/SqlAlchemyUtils.py index 62011a2..2b7bb4b 100644 --- a/Utils/SqlAlchemyUtils.py +++ b/Utils/SqlAlchemyUtils.py @@ -9,7 +9,7 @@ from typing import Literal, List, Any, Optional Base = declarative_base() user = "root" -password = "123456" +password = "12345" host = "127.0.0.1" db = 'daily'