交换修改

This commit is contained in:
18631081161 2026-01-24 21:59:43 +08:00
parent c3051968fe
commit bf2da0c6d2
5 changed files with 88 additions and 8 deletions

View File

@ -23,7 +23,7 @@ const ENV = {
}
// 当前环境 - 开发时使用 development打包时改为 production
const CURRENT_ENV = 'development'
const CURRENT_ENV = 'production'
// 导出配置
export const config = {

View File

@ -1102,13 +1102,52 @@ onMounted(async () => {
const handleReceiveMessage = (message) => {
console.log('[Chat] 收到新消息:', message)
// 5=7=
if (message.messageType === MessageType.EXCHANGE_WECHAT_RESULT || message.messageType === MessageType.EXCHANGE_PHOTO_RESULT) {
//
if (message.sessionId !== sessionId.value) {
return
}
//
if (message.sessionId !== sessionId.value) {
// 5=7=
if (message.messageType === MessageType.EXCHANGE_WECHAT_RESULT || message.messageType === MessageType.EXCHANGE_PHOTO_RESULT) {
//
if (message.extraData) {
try {
const extraData = typeof message.extraData === 'string' ? JSON.parse(message.extraData) : message.extraData
//
const requestType = message.messageType === MessageType.EXCHANGE_WECHAT_RESULT
? MessageType.EXCHANGE_WECHAT
: MessageType.EXCHANGE_PHOTO
//
const requestMsg = messages.value.find(m =>
m.messageType === requestType &&
m.isMine &&
m.status === ExchangeStatus.PENDING
)
if (requestMsg) {
//
const isAgreed = message.content === '已同意交换'
requestMsg.status = isAgreed ? ExchangeStatus.ACCEPTED : ExchangeStatus.REJECTED
if (isAgreed) {
//
if (requestMsg.messageType === MessageType.EXCHANGE_WECHAT) {
//
requestMsg.exchangedContent = extraData.ReceiverWeChat || extraData.receiverWeChat
} else if (requestMsg.messageType === MessageType.EXCHANGE_PHOTO) {
//
const photos = extraData.ReceiverPhotos || extraData.receiverPhotos || []
requestMsg.photos = photos
requestMsg.photoCount = photos.length
}
}
console.log('[Chat] 已更新交换请求状态:', requestMsg)
}
} catch (e) {
console.error('[Chat] 解析交换结果数据失败:', e)
}
}
return
}

View File

@ -255,8 +255,25 @@ public class ChatController : ControllerBase
var userId = GetCurrentUserId();
var result = await _chatService.RespondExchangeAsync(userId, request);
_logger.LogInformation("交换响应已处理: ResultMessageId={ResultMessageId}, IsAgreed={IsAgreed}",
result.ResultMessageId, request.IsAgreed);
// 通过 SignalR 推送交换响应结果给会话组(双方都能收到)
var resultMessageType = result.RequestMessageType == 4 ? 5 : 7; // 4=ExchangeWeChatRequest->5=Result, 6=ExchangePhotoRequest->7=Result
var messageResponse = new ChatMessageResponse
{
MessageId = result.ResultMessageId,
SessionId = result.SessionId,
SenderId = userId,
ReceiverId = result.RequesterId,
MessageType = resultMessageType,
Content = result.IsAgreed ? "已同意交换" : "已拒绝交换",
ExtraData = result.ExchangedData,
IsRead = false,
CreateTime = DateTime.Now,
IsSelf = false
};
await _hubContext.SendMessageToSessionAsync(result.SessionId, messageResponse);
_logger.LogInformation("交换响应已通过SignalR推送到会话组: ResultMessageId={ResultMessageId}, SessionId={SessionId}, IsAgreed={IsAgreed}",
result.ResultMessageId, result.SessionId, result.IsAgreed);
return ApiResponse<ExchangeRespondResponse>.Success(result);
}

View File

@ -163,6 +163,26 @@ public class ExchangeRespondResponse
/// 交换的数据微信号或照片列表JSON
/// </summary>
public string? ExchangedData { get; set; }
/// <summary>
/// 会话ID
/// </summary>
public long SessionId { get; set; }
/// <summary>
/// 原始请求发送者ID
/// </summary>
public long RequesterId { get; set; }
/// <summary>
/// 原始请求消息类型
/// </summary>
public int RequestMessageType { get; set; }
/// <summary>
/// 原始请求消息ID
/// </summary>
public long RequestMessageId { get; set; }
}
/// <summary>

View File

@ -586,7 +586,11 @@ public class ChatService : IChatService
{
ResultMessageId = createdResultMessage.Id,
IsAgreed = request.IsAgreed,
ExchangedData = exchangedData
ExchangedData = exchangedData,
SessionId = requestMessage.SessionId,
RequesterId = requestMessage.SenderId,
RequestMessageType = requestMessage.MessageType,
RequestMessageId = request.RequestMessageId
};
}