新增用户端帖子管理

This commit is contained in:
linfeng 2024-05-20 12:07:08 +08:00
parent b21dfe710b
commit 591e9680ff
7 changed files with 80 additions and 8 deletions

View File

@ -55,5 +55,7 @@ public interface PostService extends IService<PostEntity> {
Integer addPost(AddPostForm request, AppUserEntity user); Integer addPost(AddPostForm request, AppUserEntity user);
AppPageUtils queryPageList(PostListForm request, AppUserEntity user); AppPageUtils queryPageList(PostListForm request, AppUserEntity user);
void deleteMyPost(DeletePostForm request, AppUserEntity user);
} }

View File

@ -268,6 +268,19 @@ public class PostServiceImpl extends ServiceImpl<PostDao, PostEntity> implements
return appPage; return appPage;
} }
@Override
public void deleteMyPost(DeletePostForm request, AppUserEntity user) {
PostEntity post = this.getById(request.getId());
if(post==null){
throw new LinfengException("帖子不存在");
}
if(!post.getUid().equals(user.getUid())){
throw new LinfengException("不能删除别人帖子");
}
this.removeById(request.getId());
//关联业务处理todo
}
/** /**
* 组装帖子分页 * 组装帖子分页
* 在一个循环里 尽量减少数据库查询操作 这种方式并不太好 应该全部查询出来后再set值 * 在一个循环里 尽量减少数据库查询操作 这种方式并不太好 应该全部查询出来后再set值

View File

@ -20,10 +20,7 @@ import io.linfeng.modules.admin.entity.AppUserEntity;
import io.linfeng.modules.admin.service.PostService; import io.linfeng.modules.admin.service.PostService;
import io.linfeng.modules.app.annotation.Login; import io.linfeng.modules.app.annotation.Login;
import io.linfeng.modules.app.annotation.LoginUser; import io.linfeng.modules.app.annotation.LoginUser;
import io.linfeng.modules.app.param.AddCollectionForm; import io.linfeng.modules.app.param.*;
import io.linfeng.modules.app.param.AddCommentForm;
import io.linfeng.modules.app.param.AddPostForm;
import io.linfeng.modules.app.param.PostListForm;
import io.linfeng.modules.app.service.PostCollectionService; import io.linfeng.modules.app.service.PostCollectionService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@ -104,6 +101,16 @@ public class AppPostController {
return R.ok(); return R.ok();
} }
@Login
@PostMapping("/deleteMyPost")
@ApiOperation("删除自己帖子")
public R deleteMyPost(@RequestBody DeletePostForm request,
@ApiIgnore @LoginUser AppUserEntity user){
postService.deleteMyPost(request,user);
return R.ok();
}
@Login @Login
@GetMapping("/myPost") @GetMapping("/myPost")
@ApiOperation("我的帖子") @ApiOperation("我的帖子")

View File

@ -0,0 +1,26 @@
/**
* -----------------------------------
* 林风社交论坛开源版本请务必保留此注释头信息
* 开源地址: https://gitee.com/virus010101/linfeng-community
* 演示站点:https://www.linfeng.tech
* 可正常分享和学习源码不得用于非法牟利
* 商业版购买联系技术客服 QQ: 3582996245
* Copyright (c) 2021-2023 linfeng all rights reserved.
* 版权所有侵权必究
* -----------------------------------
*/
package io.linfeng.modules.app.param;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(value = "帖子删除请求体")
public class DeletePostForm {
@ApiModelProperty(value = "帖子id")
private Integer id;
}

View File

@ -16,6 +16,7 @@ import io.linfeng.common.utils.PageUtils;
import io.linfeng.modules.admin.entity.AppUserEntity; import io.linfeng.modules.admin.entity.AppUserEntity;
import io.linfeng.modules.app.entity.PostCollectionEntity; import io.linfeng.modules.app.entity.PostCollectionEntity;
import io.linfeng.modules.app.param.AddCollectionForm; import io.linfeng.modules.app.param.AddCollectionForm;
import io.linfeng.modules.app.param.DeletePostForm;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -38,6 +39,5 @@ public interface PostCollectionService extends IService<PostCollectionEntity> {
void cancelCollection(AddCollectionForm request, AppUserEntity user); void cancelCollection(AddCollectionForm request, AppUserEntity user);
List<Integer> getPostListByUid(Integer uid); List<Integer> getPostListByUid(Integer uid);
} }

View File

@ -14,6 +14,7 @@ package io.linfeng.modules.app.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.linfeng.modules.admin.entity.AppUserEntity; import io.linfeng.modules.admin.entity.AppUserEntity;
import io.linfeng.modules.app.param.AddCollectionForm; import io.linfeng.modules.app.param.AddCollectionForm;
import io.linfeng.modules.app.param.DeletePostForm;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;

View File

@ -8,10 +8,12 @@
<text class="user-name">{{ postDetail.userInfo.username }}</text> <text class="user-name">{{ postDetail.userInfo.username }}</text>
<view class="userIntro">{{ postDetail.userInfo.intro }}</view> <view class="userIntro">{{ postDetail.userInfo.intro }}</view>
</view> </view>
<u-button v-show="postDetail.isFollow" size="mini" style="float:right;font-size: 14px;" <u-button v-show="!isAuthor&&postDetail.isFollow" size="mini" style="float:right;font-size: 14px;"
@click="cancelFollow">已关注</u-button> @click="cancelFollow">已关注</u-button>
<u-button v-show="!postDetail.isFollow" size="mini" style="float:right;font-size: 14px;" <u-button v-show="!isAuthor&&!postDetail.isFollow" size="mini" style="float:right;font-size: 14px;"
@click="follow">关注</u-button> @click="follow">关注</u-button>
<u-button v-show="isAuthor" size="mini" type="error" style="float:right;font-size: 14px;"
@click="deletePost">删除</u-button>
</view> </view>
<view class="icon"> <view class="icon">
<text>{{ postDetail.createTime }}</text> <text>{{ postDetail.createTime }}</text>
@ -187,6 +189,7 @@
}, },
page: 1, page: 1,
loadStatus: 'loadmore', loadStatus: 'loadmore',
isAuthor: false, //
}; };
}, },
@ -235,6 +238,19 @@
}; };
}, },
methods: { methods: {
deletePost(){
this.$H
.post('post/deleteMyPost', {
id: this.postId
})
.then(res => {
if(res.code==0){
uni.switchTab({
url:"/pages/index/index"
})
}
});
},
messageRead(mid) { messageRead(mid) {
this.$H this.$H
.post('message/readMessage', { .post('message/readMessage', {
@ -373,6 +389,13 @@
}, 1500); }, 1500);
} }
this.postDetail = res.result; this.postDetail = res.result;
if (uni.getStorageSync('hasLogin')) {
this.$H.get('user/userInfo').then(res => {
if (res.result.uid == this.postDetail.uid) {
this.isAuthor = true
}
});
}
uni.hideLoading(); uni.hideLoading();
}); });
}, },
@ -750,4 +773,4 @@
.post-text { .post-text {
white-space: pre-wrap; white-space: pre-wrap;
} }
</style> </style>