This commit is contained in:
parent
9d4f688130
commit
e023039936
|
@ -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:
|
||||
"""
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
################
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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'
|
||||
|
||||
|
|
Loading…
Reference in New Issue