前端:

优化electron效果
This commit is contained in:
2026-03-07 13:40:06 +08:00
parent 333391d16f
commit e43f7d6365
52 changed files with 2929 additions and 543 deletions
@@ -34,8 +34,9 @@ namespace IM_API.Services
var privateList = await (from c in _context.Conversations
join f in _context.Friends on new { c.UserId, c.TargetId }
equals new { UserId = f.UserId, TargetId = f.FriendId }
join u in _context.Users on c.TargetId equals u.Id
where c.UserId == userId && c.ChatType == ChatType.PRIVATE
select new { c, f.Avatar, f.RemarkName })
select new { c, u.Avatar, f.RemarkName })
.ToListAsync();
// 2. 获取群聊会话
+19
View File
@@ -2,13 +2,16 @@
using AutoMapper.QueryableExtensions;
using IM_API.Domain.Events;
using IM_API.Dtos.Group;
using IM_API.Dtos.User;
using IM_API.Exceptions;
using IM_API.Interface.Services;
using IM_API.Models;
using IM_API.Tools;
using IM_API.VOs.Group;
using MassTransit;
using Microsoft.EntityFrameworkCore;
using System;
using System.Linq;
namespace IM_API.Services
{
@@ -247,5 +250,21 @@ namespace IM_API.Services
});
return;
}
public async Task<List<GroupMemberVo>> GetGroupMembers(int userId, int groupId)
{
var members = await _context.GroupMembers
.Where(x => x.GroupId == groupId).ToListAsync();
if (members is null || members.Count() == 0)
return [];
var users = await _userService.GetUserInfoListAsync(members.Select(x => x.UserId).ToList());
return users.Zip(members, (u, m) =>
{
var user = _mapper.Map<GroupMemberVo>(u);
_mapper.Map(m, user);
return user;
}).ToList();
}
}
}
@@ -157,9 +157,14 @@ namespace IM_API.Services
public async Task<UploadTask> UploadSmallFileAsync(Stream stream, string fileName, string fileType, long size, string hash)
{
var request = _httpContext.HttpContext?.Request;
var baseUrl = $"{request.Scheme}://{request.Host}";
var taskOld = await _uploadTaskService.GetTaskAsync(hash);
if (taskOld is not null) return taskOld;
if (taskOld is not null) {
taskOld.Url = UrlTools.GetFullUrl(taskOld.ObjectName, ProviderName, baseUrl);
return taskOld;
}
var userId = _httpContext.HttpContext?.User.FindFirstValue(ClaimTypes.NameIdentifier);
var objectname = ObjectNameGenerator.Generate(new ObjectNameContext
@@ -184,6 +189,7 @@ namespace IM_API.Services
FileSize = size,
Id = Guid.NewGuid(),
ObjectName = objectname,
Url = UrlTools.GetFullUrl(objectname, ProviderName, baseUrl),
ProviderUploadId = Guid.NewGuid().ToString(),
Status = UploadStatus.Completed,
StorageProvider = ProviderName,