feat: 有评论后允许删除主楼内容
This commit is contained in:
@@ -221,7 +221,7 @@ impl UGC for Post {
|
|||||||
self.is_deleted
|
self.is_deleted
|
||||||
}
|
}
|
||||||
fn extra_delete_condition(&self) -> bool {
|
fn extra_delete_condition(&self) -> bool {
|
||||||
self.n_comments == 0 && !self.content.starts_with("[系统自动代发]\n")
|
!self.content.starts_with("[系统自动代发]\n")
|
||||||
}
|
}
|
||||||
async fn do_set_deleted(&mut self, db: &Db) -> API<()> {
|
async fn do_set_deleted(&mut self, db: &Db) -> API<()> {
|
||||||
update!(*self, posts, db, { is_deleted, to true });
|
update!(*self, posts, db, { is_deleted, to true });
|
||||||
|
|||||||
@@ -41,7 +41,18 @@ pub async fn delete(di: Form<DeleteInput>, user: CurrentUser, db: Db, rconn: Rds
|
|||||||
}
|
}
|
||||||
"pid" => {
|
"pid" => {
|
||||||
let mut p = Post::get(&db, &rconn, di.id).await?;
|
let mut p = Post::get(&db, &rconn, di.id).await?;
|
||||||
|
|
||||||
|
// 有评论:清空主楼而非删除
|
||||||
|
if p.author_hash == user.namehash && p.n_comments > 0 {
|
||||||
|
update! {
|
||||||
|
p,
|
||||||
|
posts,
|
||||||
|
&db,
|
||||||
|
{ content, to "[洞主已删除]" }
|
||||||
|
}
|
||||||
|
} else {
|
||||||
p.soft_delete(&user, &db).await?;
|
p.soft_delete(&user, &db).await?;
|
||||||
|
}
|
||||||
|
|
||||||
// 如果是删除,需要也从0号缓存队列中去掉
|
// 如果是删除,需要也从0号缓存队列中去掉
|
||||||
p.refresh_cache(&rconn, true).await;
|
p.refresh_cache(&rconn, true).await;
|
||||||
|
|||||||
Reference in New Issue
Block a user