This commit is contained in:
parent
9d4f688130
commit
e023039936
|
@ -1,8 +1,11 @@
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
from sqlalchemy import func
|
from sqlalchemy import func
|
||||||
|
|
||||||
|
from Models.DailyModel import Daily
|
||||||
from Models.DepartmentModel import Department
|
from Models.DepartmentModel import Department
|
||||||
from Models.PostModel import Post
|
from Models.PostModel import Post
|
||||||
from Models.UserModel import User, UserInfo
|
from Models.UserModel import User, UserInfo
|
||||||
|
from Mods.Comment.Models import Comment
|
||||||
from Schemas import UserSchemas
|
from Schemas import UserSchemas
|
||||||
import json
|
import json
|
||||||
|
|
||||||
|
@ -119,3 +122,16 @@ def get_department_config(db: Session):
|
||||||
type_dic[d.sub_type] = []
|
type_dic[d.sub_type] = []
|
||||||
type_dic[d.sub_type].append(d.name)
|
type_dic[d.sub_type].append(d.name)
|
||||||
return type_dic
|
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
|
db_model = Comment
|
||||||
for key, value in params_dict.items():
|
for key, value in params_dict.items():
|
||||||
if key not in ['page', 'page_size'] and value is not None:
|
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:
|
if type(value) == str:
|
||||||
query = query.filter(getattr(db_model, key).like(f'%{value}%'))
|
query = query.filter(getattr(db_model, key).like(f'%{value}%'))
|
||||||
elif type(value) in [int, float, bool]:
|
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()
|
query = query.offset((page - 1) * page_size).limit(page_size).all()
|
||||||
return count, query
|
return count, query
|
||||||
|
|
||||||
|
|
||||||
################
|
################
|
|
@ -15,7 +15,9 @@ class Comment(Base):
|
||||||
daily_id = Column(Integer, ForeignKey('daily.id', ondelete='CASCADE'))
|
daily_id = Column(Integer, ForeignKey('daily.id', ondelete='CASCADE'))
|
||||||
daily = relationship('Daily', back_populates='comments')
|
daily = relationship('Daily', back_populates='comments')
|
||||||
user_email = Column(String(255), ForeignKey('user.email', ondelete='CASCADE'))
|
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='创建时间')
|
create_time = Column(DateTime, server_default=func.now(), comment='创建时间')
|
||||||
|
|
||||||
def to_dict(self, full=False):
|
def to_dict(self, full=False):
|
||||||
|
@ -35,4 +37,6 @@ class Comment(Base):
|
||||||
data[c.name] = getattr(self, c.name)
|
data[c.name] = getattr(self, c.name)
|
||||||
if self.user:
|
if self.user:
|
||||||
data['user'] = self.user.to_dict()
|
data['user'] = self.user.to_dict()
|
||||||
|
if self.receiver_user:
|
||||||
|
data['receiver_user'] = self.receiver_user.to_dict()
|
||||||
return data
|
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)
|
@router.post("/comment/query", summary="查询评论", response_model=Schemas.CommentQueryRes)
|
||||||
def comment_query(req: Schemas.CommentQueryReq, db: Session = Depends(get_db)):
|
def comment_query(req: Schemas.CommentQueryReq, db: Session = Depends(get_db)):
|
||||||
count, query = Crud.comment_query(db, req)
|
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)
|
return Schemas.CommentQueryRes(count=count, items=items)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -9,10 +9,12 @@ class CommentInfo(BaseModel):
|
||||||
id: Optional[int]
|
id: Optional[int]
|
||||||
daily_id: Optional[int]
|
daily_id: Optional[int]
|
||||||
user_email: Optional[str]
|
user_email: Optional[str]
|
||||||
|
receiver_user_email: Optional[str]
|
||||||
daily: Optional[DailyInfo]
|
daily: Optional[DailyInfo]
|
||||||
content: Optional[str]
|
content: Optional[str]
|
||||||
user: Optional[UserInfo]
|
user: Optional[UserInfo]
|
||||||
create_time: Optional[datetime]
|
create_time: Optional[datetime]
|
||||||
|
receiver_user: Optional[UserInfo]
|
||||||
|
|
||||||
|
|
||||||
class CommentAddInfo(BaseModel):
|
class CommentAddInfo(BaseModel):
|
||||||
|
|
|
@ -9,7 +9,7 @@ from typing import Literal, List, Any, Optional
|
||||||
Base = declarative_base()
|
Base = declarative_base()
|
||||||
|
|
||||||
user = "root"
|
user = "root"
|
||||||
password = "123456"
|
password = "12345"
|
||||||
host = "127.0.0.1"
|
host = "127.0.0.1"
|
||||||
db = 'daily'
|
db = 'daily'
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue