添加项目文件。

This commit is contained in:
2026-05-09 17:06:30 +08:00
parent c60f5fe117
commit 720ef957d4
378 changed files with 14843 additions and 0 deletions
+54
View File
@@ -0,0 +1,54 @@
using ContactService.Domain.Events;
using ContactService.Domain.ValueObjects;
using IM.DomainCommons;
namespace ContactService.Domain.Entities
{
public class Friend : AggregateRootEntity
{
public UserProfile Owner { get; private set; }
public UserProfile Target { get; private set; }
/// <summary>
/// 好友备注名
/// </summary>
public string? RemarkName { get; private set; }
public FriendStatus Status { get; private set; }
private Friend() { }
public Friend(UserProfile owner, UserProfile target, string? remarkName)
{
Owner = owner;
Target = target;
RemarkName = remarkName;
Status = FriendStatus.Added;
AddDomainEvent(new FriendAddedDomainEvent(this));
}
public void setRemarkName(string? remarkName)
{
if (remarkName.Length > 20)
{
throw new DomainException("备注名过长");
}
RemarkName = remarkName ?? RemarkName;
}
public void Block()
{
Status = FriendStatus.Blocked;
AddDomainEvent(new FriendBlockDomainEvent(this));
}
public void UpdateUserInfo(UserProfile profile)
{
if (profile.Id != Target.Id)
{
return;
}
Target = profile;
}
}
}
@@ -0,0 +1,73 @@
using ContactService.Domain.Events;
using IM.DomainCommons;
namespace ContactService.Domain.Entities
{
public class FriendRequest : AggregateRootEntity
{
/// <summary>
/// 申请人
/// </summary>
public Guid OwnerId { get; private set; }
/// <summary>
/// 被申请人
/// </summary>
public Guid TargetId { get; private set; }
/// <summary>
/// 申请附言
/// </summary>
public string Description { get; private set; } = "申请添加好友";
/// <summary>
/// 申请状态(0:待通过,1:拒绝,2:同意,3:拉黑)
/// </summary>
public FriendRequestStatus State { get; private set; } = FriendRequestStatus.Pending;
/// <summary>
/// 备注
/// </summary>
public string? RemarkName { get; private set; }
private FriendRequest() { }
public FriendRequest(Guid ownerId, Guid targetId, string? description, string? remarkName)
{
OwnerId = ownerId;
TargetId = targetId;
Description = description ?? Description;
RemarkName = remarkName;
AddDomainEvent(new FriendRequestCreatedDomainEvent(this));
}
public void Accept(string remarkName)
{
if (State != FriendRequestStatus.Pending)
{
throw new DomainException("只能处理待处理的好友请求");
}
State = FriendRequestStatus.Passed;
AddDomainEvent(new FriendRequestStateUpdateDomainEvent(this,remarkName));
}
public void Reject()
{
if (State != FriendRequestStatus.Pending)
{
throw new DomainException("只能处理待处理的好友请求");
}
State = FriendRequestStatus.Declined;
AddDomainEvent(new FriendRequestStateUpdateDomainEvent(this));
}
public void Block()
{
if (State != FriendRequestStatus.Pending)
{
throw new DomainException("只能处理待处理的好友请求");
}
State = FriendRequestStatus.Blocked;
AddDomainEvent(new FriendRequestStateUpdateDomainEvent(this));
}
}
}