massive fix
Change-Id: I5972893fc44707bddab7d0014b981ac3097238d6
diff --git "a/src/app/resource/resource-detail/\133resourceId\135/page.tsx" "b/src/app/resource/resource-detail/\133resourceId\135/page.tsx"
index 5e0a634..22abfdb 100644
--- "a/src/app/resource/resource-detail/\133resourceId\135/page.tsx"
+++ "b/src/app/resource/resource-detail/\133resourceId\135/page.tsx"
@@ -61,7 +61,6 @@
likes: number; // 点赞数
collections: number; // 收藏数
comments: number; // 评论数
- seeds: number; // 种子数
classify: string; // 资源分类(材质包:resourcePack,模组:mod,整合包:modPack ,地图:map
hot: number; // 资源热度
gameplayList: string[]; // 资源标签
@@ -70,7 +69,7 @@
isLike: boolean; // 是否被点赞
isPurchase: boolean; // 是否被购买
isUpload: boolean; // 是否是该用户上传的
- userId: number; // 资源上传者的id
+ uploaderId: number; // 资源上传者的id
}
// 评论信息
@@ -99,10 +98,10 @@
// 新评论接口
interface NewComment {
userId: number;
- threadId: number;
- resourceId: number;
- rewardId: number;
- replyId: number;
+ threadId: number | null;
+ resourceId: number | null;
+ rewardId: number | null;
+ replyId: number | null;
content: string;
createAt: string;
}
@@ -131,7 +130,7 @@
const userId: number = user?.Id ?? -1;
// 获取URL参数
const params = useParams<{ resourceId: string }>();
- const resourceId = decodeURIComponent(params.resourceId); // 防止中文路径乱码
+ const resourceId = Number(decodeURIComponent(params.resourceId)); // 防止中文路径乱码
// 页面跳转
const router = useRouter();
@@ -198,7 +197,7 @@
setCollectionCount(response.data.collections);
}
- setResourceAuthorId(response.data.userId);
+ setResourceAuthorId(response.data.uploaderId);
} catch (err) {
console.error('获取资源信息失败', err);
toast.current?.show({ severity: 'error', summary: 'error', detail: "获取资源信息失败" });
@@ -246,9 +245,9 @@
}
useEffect(() => {
- if (!resource?.userId || !subscriberList?.userList) return;
+ if (!resource?.uploaderId || !subscriberList?.userList) return;
- const authorId = resource.userId;
+ const authorId = resource.uploaderId;
// 设置 isSubscribed 状态
const subscribed = subscriberList.userList.some(user => user.userId === authorId);
setIsSubscribed(subscribed);
@@ -257,7 +256,7 @@
// 若浏览用户与资源作者是同一人,则不显示关注按钮。若不是同一人,则显示按钮
const handleSubscribe = () => {
// 资源作者 ID
- const authorId = resource?.userId;
+ const authorId = resource?.uploaderId;
// 当前登录用户 ID
const currentUserId = userId;
@@ -340,7 +339,7 @@
// 判断该资源是否已被购买, 返回不同的购买按钮
const isPurchase = () => {
// 作者本人查看资源,不显示购买按钮
- if (resource?.userId == userId) {
+ if (resource?.uploaderId == userId) {
return;
}
@@ -405,7 +404,7 @@
if (newCollectionState) {
// 收藏操作
await axios.post(process.env.PUBLIC_URL + `/resource/collection`, {
- params: { resourceId: resourceId, userId }
+ resourceId: resourceId, userId
});
console.log('收藏资源');
} else {
@@ -442,7 +441,7 @@
if (newLikeState) {
// 点赞操作
await axios.post(process.env.PUBLIC_URL + `/resource/like`, {
- params: { resourceId: resourceId, userId }
+ resourceId: resourceId, userId
});
console.log('点赞资源');
} else {
@@ -488,7 +487,7 @@
useEffect(() => {
if (!resource) return;
// 发帖人
- axios.get(process.env.PUBLIC_URL + `/user/info?userId=${resource?.userId}`)
+ axios.get(process.env.PUBLIC_URL + `/user/info?userId=${resource?.uploaderId}`)
.then(res => setUserInfo(res.data))
.catch(console.error);
}, [resource]);
@@ -515,7 +514,7 @@
const pageNumber = first / rows + 1;
console.log("当前页" + pageNumber + "size" + rows);
const response = await axios.get<CommentList>(
- process.env.PUBLIC_URL + `/comments`, {
+ process.env.PUBLIC_URL + `/comment`, {
params: { id: resourceId, pageNumber, rows, type: 'resource' }
}
);
@@ -547,12 +546,12 @@
try {
const newComment: NewComment = {
userId,
- rewardId: 0,
- threadId: 0,
+ rewardId: null,
+ threadId: null,
resourceId: resource.resourceId,
replyId: commentId,
content: commentValue,
- createAt: new Date().toISOString().slice(0, 19).replace('T', ' ')
+ createAt: new Date().toISOString().slice(0, 10).replace('T', ' ')
};
const response = await axios.post(process.env.PUBLIC_URL + '/comment', newComment);
@@ -578,12 +577,12 @@
try {
const newComment: NewComment = {
userId,
- rewardId: 0,
- threadId: 0,
+ rewardId: null,
+ threadId: null,
resourceId: resource.resourceId,
- replyId: 0, // 直接评论,不是回复
+ replyId: null, // 直接评论,不是回复
content: commentValue,
- createAt: new Date().toISOString().slice(0, 19).replace('T', ' ')
+ createAt: new Date().toISOString().slice(0, 10).replace('T', ' ')
};
const response = await axios.post(process.env.PUBLIC_URL + '/comment', newComment);
@@ -763,7 +762,7 @@
<Link href="/community" className="no-underline">进入社区</Link>
</div>
<div className="comments-input">
- <Avatar image={process.env.NEXT_PUBLIC_NGINX_URL + "users/" + userInfo.avatar} size="large" shape="circle" />
+ <Avatar image={ "users/" + userInfo.avatar} size="large" shape="circle" />
<InputText value={commentValue} placeholder="发布你的评论" onChange={(e) => setCommentValue(e.target.value)} />
<Button label="发布评论" onClick={publishComment} disabled={!commentValue.trim()} />
</div>
@@ -772,7 +771,7 @@
<div key={comment.commentId} className="comment-item">
<div className="comment-user">
<Avatar
- image={comment.userId ? process.env.NEXT_PUBLIC_NGINX_URL + "users/" + commentUserInfos.get(comment.userId)?.avatar : '/default-avatar.png'}
+ image={comment.userId ? "users/" + commentUserInfos.get(comment.userId)?.avatar : '/default-avatar.png'}
size="normal"
shape="circle"
/>
@@ -807,7 +806,7 @@
</OverlayPanel>
<Sidebar className='reply' header={ReplyHeader} visible={visibleReply} position="bottom" onHide={() => setVisibleReply(false)}>
<div className="reply-input">
- <Avatar image={process.env.NEXT_PUBLIC_NGINX_URL + "users/" + userInfo.avatar} size="large" shape="circle" />
+ <Avatar image={ "users/" + userInfo.avatar} size="large" shape="circle" />
<InputText value={replyValue} placeholder="发布你的评论" onChange={(e) => setReplyValue(e.target.value)} />
<Button label="发布评论" onClick={() => publishReply(comment.commentId)} disabled={!replyValue.trim()} />
</div>