refactor(store): adapt Zustand stores to backend-aligned types
- orders: remove name fields from creation, keep dispatchMode logic - chat: remove readonly/senderName/senderAvatar references - reviews: remove fromUserAvatar/toUserId, simplify participant check - disputes: remove initiatorId/initiatorName from creation - posts: remove authorRole/quotedPostId, keep linkedOrderId as number - comments: remove postId from creation - wallet: use string amounts
This commit is contained in:
+5
-29
@@ -19,29 +19,6 @@ interface ReviewState {
|
||||
hasUserReviewed: (orderId: string, userId: string) => boolean
|
||||
}
|
||||
|
||||
function resolveOrderUser(orderId: string, userId: string) {
|
||||
const order = useOrderStore.getState().orders.find((item) => item.id === orderId)
|
||||
if (!order) return null
|
||||
|
||||
if (order.consumerId === userId) {
|
||||
return {
|
||||
fromUserName: order.consumerName,
|
||||
toUserId: order.playerId,
|
||||
toUserName: order.playerName,
|
||||
}
|
||||
}
|
||||
|
||||
if (order.playerId === userId) {
|
||||
return {
|
||||
fromUserName: order.playerName,
|
||||
toUserId: order.consumerId,
|
||||
toUserName: order.consumerName,
|
||||
}
|
||||
}
|
||||
|
||||
return null
|
||||
}
|
||||
|
||||
export const useReviewStore = create<ReviewState>((set, get) => ({
|
||||
reviews: [],
|
||||
getReviewsByOrder: (orderId) => get().reviews.filter((review) => review.orderId === orderId),
|
||||
@@ -65,8 +42,9 @@ export const useReviewStore = create<ReviewState>((set, get) => ({
|
||||
return deny(400, "仅待评价订单可提交评价")
|
||||
}
|
||||
|
||||
const relation = resolveOrderUser(input.orderId, input.fromUserId)
|
||||
if (!relation) {
|
||||
const isParticipant =
|
||||
order.consumerId === input.fromUserId || order.playerId === input.fromUserId
|
||||
if (!isParticipant) {
|
||||
return deny(403, "仅订单参与方可评价")
|
||||
}
|
||||
|
||||
@@ -81,11 +59,9 @@ export const useReviewStore = create<ReviewState>((set, get) => ({
|
||||
id: generateId("rev"),
|
||||
orderId: input.orderId,
|
||||
fromUserId: input.fromUserId,
|
||||
fromUserName: relation.fromUserName,
|
||||
fromUserAvatar: "",
|
||||
toUserId: relation.toUserId,
|
||||
fromUserName: "",
|
||||
rating: input.rating,
|
||||
content: input.content?.trim() || undefined,
|
||||
content: input.content?.trim() ?? "",
|
||||
sealed: true,
|
||||
createdAt,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user