feature-nxdev #55
3
backend/IMTest/.gitignore
vendored
Normal file
3
backend/IMTest/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
bin/
|
||||
obj/
|
||||
.vs/
|
||||
@ -14,7 +14,7 @@ using System.Reflection;
|
||||
[assembly: System.Reflection.AssemblyCompanyAttribute("IMTest")]
|
||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+1df3a0f30e469671b3e81d88574871d99c98af1a")]
|
||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7ebf23ddd8a0d5536167313c4cf37af1552a5057")]
|
||||
[assembly: System.Reflection.AssemblyProductAttribute("IMTest")]
|
||||
[assembly: System.Reflection.AssemblyTitleAttribute("IMTest")]
|
||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||
|
||||
@ -1 +1 @@
|
||||
9546071857f1b0fa09bedf887ca476b7ecfa579752230651321c2a145e579c92
|
||||
ca0390a4d5773daae2e747d7512c190701a7a942186c769e42327a4864733f0b
|
||||
|
||||
Binary file not shown.
@ -1,4 +1,5 @@
|
||||
using IM_API.Domain.Events;
|
||||
using IM_API.Interface.Services;
|
||||
using IM_API.Models;
|
||||
using MassTransit;
|
||||
|
||||
@ -6,26 +7,22 @@ namespace IM_API.Application.EventHandlers.FriendAddHandler
|
||||
{
|
||||
public class FriendAddSignalRHandler : IConsumer<FriendAddEvent>
|
||||
{
|
||||
private readonly ImContext _context;
|
||||
public FriendAddSignalRHandler(ImContext context)
|
||||
private readonly IFriendSerivce _friendService;
|
||||
public FriendAddSignalRHandler(IFriendSerivce friendSerivce)
|
||||
{
|
||||
_context = context;
|
||||
_friendService = friendSerivce;
|
||||
}
|
||||
|
||||
public Task Consume(ConsumeContext<FriendAddEvent> context)
|
||||
public async Task Consume(ConsumeContext<FriendAddEvent> context)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
var @event = context.Message;
|
||||
//为请求发起人添加好友记录
|
||||
await _friendService.MakeFriendshipAsync(
|
||||
@event.RequestUser.Id, @event.ResponseUser.Id, @event.RequestInfo.RemarkName);
|
||||
//为接收人添加好友记录
|
||||
await _friendService.MakeFriendshipAsync(
|
||||
@event.ResponseUser.Id, @event.RequestUser.Id, @event.requestUserRemarkname);
|
||||
|
||||
var RequestfriendShip = new Friend()
|
||||
{
|
||||
Avatar = @event.ResponseUser.Avatar,
|
||||
UserId = @event.RequestUser.Id,
|
||||
RemarkName = @event.RequestInfo.NickName,
|
||||
Created = @event.RequestInfo.Created,
|
||||
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,6 +28,7 @@ namespace IM_API.Configs
|
||||
//好友信息模型转换
|
||||
CreateMap<Friend, FriendInfoDto>()
|
||||
.ForMember(dest => dest.UserInfo, opt => opt.MapFrom(src => src.FriendNavigation))
|
||||
.ForMember(dest => dest.Avatar, opt => opt.MapFrom(src => src.FriendNavigation.Avatar))
|
||||
;
|
||||
//好友请求通过后新增好友关系
|
||||
CreateMap<FriendRequestDto, Friend>()
|
||||
|
||||
@ -8,17 +8,18 @@ namespace IM_API.Domain.Events
|
||||
/// <summary>
|
||||
/// 发起请求用户
|
||||
/// </summary>
|
||||
public UserInfoDto RequestUser { get; set; }
|
||||
public UserInfoDto RequestUser { get; init; }
|
||||
public string? requestUserRemarkname { get; init; }
|
||||
/// <summary>
|
||||
/// 接受请求用户
|
||||
/// </summary>
|
||||
public UserInfoDto ResponseUser { get; set; }
|
||||
public UserInfoDto ResponseUser { get; init; }
|
||||
|
||||
public FriendRequestResDto RequestInfo { get; set; }
|
||||
public FriendRequestDto RequestInfo { get; init; }
|
||||
/// <summary>
|
||||
/// 好友关系创建时间
|
||||
/// </summary>
|
||||
public DateTime Created { get; set; }
|
||||
public DateTime Created { get; init; }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -60,5 +60,12 @@ namespace IM_API.Interface.Services
|
||||
/// <param name="friendId">好友关系id</param>
|
||||
/// <returns></returns>
|
||||
Task<bool> BlockeFriendAsync(int friendId);
|
||||
/// <summary>
|
||||
/// 创建好友关系
|
||||
/// </summary>
|
||||
/// <param name="userAId"></param>
|
||||
/// <param name="userBId"></param>
|
||||
/// <returns></returns>
|
||||
Task MakeFriendshipAsync(int userAId, int userBId, string? remarkName);
|
||||
}
|
||||
}
|
||||
|
||||
@ -175,5 +175,28 @@ namespace IM_API.Services
|
||||
return true;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 创建好友关系
|
||||
public async Task MakeFriendshipAsync(int userAId, int userBId, string? remarkName)
|
||||
{
|
||||
bool userAexist = await _context.Friends.AnyAsync(x => x.UserId == userAId && x.FriendId == userBId);
|
||||
if (!userAexist)
|
||||
{
|
||||
User? userbInfo = await _context.Users.FirstOrDefaultAsync(x => x.Id == userBId);
|
||||
if (userbInfo is null) throw new BaseException(CodeDefine.USER_NOT_FOUND);
|
||||
Friend friendA = new Friend()
|
||||
{
|
||||
Avatar = userbInfo.Avatar,
|
||||
Created = DateTime.UtcNow,
|
||||
FriendId = userbInfo.Id,
|
||||
RemarkName = remarkName ?? userbInfo.NickName,
|
||||
StatusEnum = FriendStatus.Added,
|
||||
UserId = userAId
|
||||
};
|
||||
_context.Friends.Add(friendA);
|
||||
await _context.SaveChangesAsync();
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
55
docs/测试环境文档.md
Normal file
55
docs/测试环境文档.md
Normal file
@ -0,0 +1,55 @@
|
||||
# 🧪 测试环境自动化构建使用手册
|
||||
|
||||
本手册用于指导测试人员如何通过 Jenkins 快速部署指定分支的代码,并访问对应的测试地址。
|
||||
|
||||
---
|
||||
|
||||
### 1. 环境准备
|
||||
|
||||
| 平台名称 | 地址 |
|
||||
| ---------------------- | ------------------------------------------------------------ |
|
||||
| Jenkins IM前端构建任务 | [Jenkins](http://192.168.5.100:8100/job/IM前端/build?delay=0sec) |
|
||||
| Jenkins IM后端构建任务 | [IM后端 - Jenkins](http://192.168.5.100:8100/job/IM后端/) |
|
||||
| 前端分支列表 | https://im.test.nxsir.cn |
|
||||
|
||||
在开始构建前,请确认:
|
||||
|
||||
* 已拥有 **Jenkins 登录权限**。
|
||||
* **前置环境wireguard**已启动。
|
||||
* 已获取需要测试的 **Git 分支名称**(例如:`feature/order-page`)。
|
||||
|
||||
---
|
||||
|
||||
### 2. 构建操作步骤流程
|
||||
|
||||
1. **登录 Jenkins**:访问 [此处输入你的Jenkins地址] 并登录。
|
||||
2. **进入任务**:在项目列表中点击进入对应的测试项目。
|
||||
3. **参数化构建**:
|
||||
* 点击左侧菜单栏的 **Build with Parameters**(带参数构建)。
|
||||
* 在 **`BRANCH_NAME`** 输入框中,填入或选择你的 Git 分支名。
|
||||
4. **开始构建**:点击下方的 **Build** 按钮。
|
||||
|
||||
> ⚠️ **提示**:建议直接从代码仓库复制分支名,避免手动输入导致拼写错误。
|
||||
|
||||
---
|
||||
|
||||
### 3. 查看构建状态与结果
|
||||
|
||||
* **观察状态**:在左下角 **Build History** 看到圆形图标变为 **蓝色/绿色**,表示构建成功。
|
||||
* **访问网页**:
|
||||
* 构建成功后,点击该次构建编号(如 `#10`)。
|
||||
* 在详情页中点击 **[访问测试环境]** 链接(通常位于页面显著位置)。
|
||||
* 或者直接访问:`https://im.test.nxsir.cn/[分支名]`
|
||||
|
||||
---
|
||||
|
||||
### 4. 常见问题排查
|
||||
|
||||
| 现象 | 可能原因 | 解决方法 |
|
||||
| :-------------------------- | :--------------------- | :----------------------------------------------------------- |
|
||||
| **构建显示红色(Failure)** | 分支名不存在或代码冲突 | 检查分支名是否已推送到远端仓库。 |
|
||||
| **点击链接显示 404** | 部署尚未完全完成 | 构建完成后通常有几秒延迟,请稍后刷新。 |
|
||||
| **页面依然显示旧内容** | 浏览器缓存 | 请使用 `Ctrl + F5` (Windows) 或 `Cmd + Shift + R` (Mac) 强制刷新。 |
|
||||
|
||||
---
|
||||
**💡 运维备注**:如遇 Jenkins 无法登录或构建按钮置灰,请联系管理员。
|
||||
Loading…
Reference in New Issue
Block a user