This commit is contained in:
wcq 2023-07-07 17:08:43 +08:00
parent 9d4f688130
commit e023039936
6 changed files with 29 additions and 5 deletions

View File

@ -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:
"""

View File

@ -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
################

View File

@ -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

View File

@ -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)

View File

@ -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):

View File

@ -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'