团队管理接口枚举统一

This commit is contained in:
马梓彭 2026-03-20 02:27:26 +08:00
parent a3cec717c7
commit 321124eca0
9 changed files with 20 additions and 142 deletions

View File

@ -137,11 +137,6 @@ public class MyTeamDto
/// </summary>
public string Name { get; set; }
/// <summary>
/// 成立日期
/// </summary>
public DateTime EstablishedDate { get; set; }
/// <summary>
/// 队员数量
/// </summary>

View File

@ -177,7 +177,6 @@ public class MyController : IDynamicApiController
{
Id = t.Id,
Name = t.Name,
EstablishedDate = t.EstablishedDate,
IsLeader = true,
MemberCount = 0 // 暂无 Member 表关联,置为 0 或需扩展
});

View File

@ -43,18 +43,6 @@ public class AddTeamInput
[Required(ErrorMessage = "团队名称不能为空"), MaxLength(64)]
public string Name { get; set; } = null!;
/// <summary>
/// 团队简介
/// </summary>
[MaxLength(512)]
public string? Introduction { get; set; }
/// <summary>
/// 成立时间
/// </summary>
[Required(ErrorMessage = "成立时间不能为空")]
public DateTime EstablishedDate { get; set; }
/// <summary>
/// 领队ID集合
/// </summary>
@ -98,16 +86,6 @@ public class TeamOutput
/// </summary>
public string Name { get; set; } = null!;
/// <summary>
/// 团队简介
/// </summary>
public string? Introduction { get; set; }
/// <summary>
/// 成立时间
/// </summary>
public DateTime EstablishedDate { get; set; }
/// <summary>
/// 状态
/// </summary>
@ -156,14 +134,14 @@ public class TeamMemberOutput
public string Name { get; set; } = null!;
/// <summary>
/// 角色
/// 角色 (PersonType)
/// </summary>
public TeamRole Role { get; set; }
public PersonType PersonType { get; set; }
/// <summary>
/// 角色描述
/// </summary>
public string RoleName => Role.Description();
public string RoleName => PersonType.Description();
/// <summary>
/// 联系电话

View File

@ -56,14 +56,14 @@ public class TeamService : BaseService<Core.Entities.Team>, IDynamicApiControlle
var teamIds = result.Rows.Select(x => x.Id).ToList();
var members = await _memberRep.AsQueryable()
.LeftJoin<Core.Entities.AppUser>((m, u) => m.UserId == u.Id)
.Where(m => teamIds.Contains(m.TeamId) && (m.Role == TeamRole.Leader || m.Role == TeamRole.Coach))
.Select((m, u) => new { m.TeamId, m.Role, u.Name })
.Where(m => teamIds.Contains(m.TeamId) && (m.PersonType == PersonType.Leader || m.PersonType == PersonType.Coach))
.Select((m, u) => new { m.TeamId, m.PersonType, u.Name })
.ToListAsync();
foreach (var item in result.Rows)
{
item.LeaderNames = string.Join(", ", members.Where(m => m.TeamId == item.Id && m.Role == TeamRole.Leader).Select(m => m.Name));
item.CoachNames = string.Join(", ", members.Where(m => m.TeamId == item.Id && m.Role == TeamRole.Coach).Select(m => m.Name));
item.LeaderNames = string.Join(", ", members.Where(m => m.TeamId == item.Id && m.PersonType == PersonType.Leader).Select(m => m.Name));
item.CoachNames = string.Join(", ", members.Where(m => m.TeamId == item.Id && m.PersonType == PersonType.Coach).Select(m => m.Name));
}
}
@ -92,7 +92,7 @@ public class TeamService : BaseService<Core.Entities.Team>, IDynamicApiControlle
UserId = m.UserId,
Name = u.Name,
Mobile = u.Mobile,
Role = m.Role
PersonType = m.PersonType
})
.ToListAsync();
@ -122,13 +122,13 @@ public class TeamService : BaseService<Core.Entities.Team>, IDynamicApiControlle
var members = new List<TeamMember>();
if (input.LeaderIds != null)
members.AddRange(input.LeaderIds.Select(uid => new TeamMember { TeamId = newTeam.Id, UserId = uid, Role = TeamRole.Leader, JoinTime = DateTime.Now }));
members.AddRange(input.LeaderIds.Select(uid => new TeamMember { TeamId = newTeam.Id, UserId = uid, PersonType = PersonType.Leader, JoinTime = DateTime.Now }));
if (input.CoachIds != null)
members.AddRange(input.CoachIds.Select(uid => new TeamMember { TeamId = newTeam.Id, UserId = uid, Role = TeamRole.Coach, JoinTime = DateTime.Now }));
members.AddRange(input.CoachIds.Select(uid => new TeamMember { TeamId = newTeam.Id, UserId = uid, PersonType = PersonType.Coach, JoinTime = DateTime.Now }));
if (input.MemberIds != null)
members.AddRange(input.MemberIds.Select(uid => new TeamMember { TeamId = newTeam.Id, UserId = uid, Role = TeamRole.Member, JoinTime = DateTime.Now }));
members.AddRange(input.MemberIds.Select(uid => new TeamMember { TeamId = newTeam.Id, UserId = uid, PersonType = PersonType.Athlete, JoinTime = DateTime.Now }));
if (members.Any())
{
@ -202,13 +202,13 @@ public class TeamService : BaseService<Core.Entities.Team>, IDynamicApiControlle
var members = new List<TeamMember>();
if (input.LeaderIds != null)
members.AddRange(input.LeaderIds.Select(uid => new TeamMember { TeamId = team.Id, UserId = uid, Role = TeamRole.Leader, JoinTime = DateTime.Now }));
members.AddRange(input.LeaderIds.Select(uid => new TeamMember { TeamId = team.Id, UserId = uid, PersonType = PersonType.Leader, JoinTime = DateTime.Now }));
if (input.CoachIds != null)
members.AddRange(input.CoachIds.Select(uid => new TeamMember { TeamId = team.Id, UserId = uid, Role = TeamRole.Coach, JoinTime = DateTime.Now }));
members.AddRange(input.CoachIds.Select(uid => new TeamMember { TeamId = team.Id, UserId = uid, PersonType = PersonType.Coach, JoinTime = DateTime.Now }));
if (input.MemberIds != null)
members.AddRange(input.MemberIds.Select(uid => new TeamMember { TeamId = team.Id, UserId = uid, Role = TeamRole.Member, JoinTime = DateTime.Now }));
members.AddRange(input.MemberIds.Select(uid => new TeamMember { TeamId = team.Id, UserId = uid, PersonType = PersonType.Athlete, JoinTime = DateTime.Now }));
if (members.Any())
{

View File

@ -2497,11 +2497,6 @@
团队名称
</summary>
</member>
<member name="P:YD_Event.Application.Client.Dtos.MyTeamDto.EstablishedDate">
<summary>
成立日期
</summary>
</member>
<member name="P:YD_Event.Application.Client.Dtos.MyTeamDto.MemberCount">
<summary>
队员数量
@ -7919,16 +7914,6 @@
团队名称
</summary>
</member>
<member name="P:YD_Event.Application.Team.Dtos.AddTeamInput.Introduction">
<summary>
团队简介
</summary>
</member>
<member name="P:YD_Event.Application.Team.Dtos.AddTeamInput.EstablishedDate">
<summary>
成立时间
</summary>
</member>
<member name="P:YD_Event.Application.Team.Dtos.AddTeamInput.LeaderIds">
<summary>
领队ID集合
@ -7969,16 +7954,6 @@
团队名称
</summary>
</member>
<member name="P:YD_Event.Application.Team.Dtos.TeamOutput.Introduction">
<summary>
团队简介
</summary>
</member>
<member name="P:YD_Event.Application.Team.Dtos.TeamOutput.EstablishedDate">
<summary>
成立时间
</summary>
</member>
<member name="P:YD_Event.Application.Team.Dtos.TeamOutput.Status">
<summary>
状态
@ -8024,9 +7999,9 @@
姓名
</summary>
</member>
<member name="P:YD_Event.Application.Team.Dtos.TeamMemberOutput.Role">
<member name="P:YD_Event.Application.Team.Dtos.TeamMemberOutput.PersonType">
<summary>
角色
角色 (PersonType)
</summary>
</member>
<member name="P:YD_Event.Application.Team.Dtos.TeamMemberOutput.RoleName">

View File

@ -15,17 +15,6 @@ public class Team : Entity<long>, ISoftDelete, ICreatedUserId, ICreatedTime, IUp
[SugarColumn(Length = 64)]
public string Name { get; set; } = null!;
/// <summary>
/// 团队简介
/// </summary>
[SugarColumn(Length = 512, IsNullable = true)]
public string? Introduction { get; set; }
/// <summary>
/// 成立时间
/// </summary>
public DateTime EstablishedDate { get; set; }
/// <summary>
/// 团队状态
/// </summary>

View File

@ -20,9 +20,9 @@ public class TeamMember : Entity<long>, ISoftDelete, ICreatedUserId, ICreatedTim
public long UserId { get; set; }
/// <summary>
/// 团队角色
/// 团队角色 (PersonType)
/// </summary>
public TeamRole Role { get; set; }
public PersonType PersonType { get; set; }
/// <summary>
/// 加入时间

View File

@ -1,28 +0,0 @@
using System;
using System.ComponentModel;
namespace YD_Event.Core.Enum;
/// <summary>
/// 团队角色 (请统一使用 PersonType: 1=运动员, 2=教练, 3=领队)
/// </summary>
public enum TeamRole
{
/// <summary>
/// 队员
/// </summary>
[Description("队员")]
Member = 0,
/// <summary>
/// 领队
/// </summary>
[Description("领队")]
Leader = 1,
/// <summary>
/// 教练
/// </summary>
[Description("教练")]
Coach = 2
}

View File

@ -3770,16 +3770,6 @@
团队名称
</summary>
</member>
<member name="P:YD_Event.Core.Entities.Team.Introduction">
<summary>
团队简介
</summary>
</member>
<member name="P:YD_Event.Core.Entities.Team.EstablishedDate">
<summary>
成立时间
</summary>
</member>
<member name="P:YD_Event.Core.Entities.Team.Status">
<summary>
团队状态
@ -3825,9 +3815,9 @@
用户ID(关联AppUser)
</summary>
</member>
<member name="P:YD_Event.Core.Entities.TeamMember.Role">
<member name="P:YD_Event.Core.Entities.TeamMember.PersonType">
<summary>
团队角色
团队角色 (PersonType)
</summary>
</member>
<member name="P:YD_Event.Core.Entities.TeamMember.JoinTime">
@ -4315,26 +4305,6 @@
两者都有
</summary>
</member>
<member name="T:YD_Event.Core.Enum.TeamRole">
<summary>
团队角色 (请统一使用 PersonType: 1=运动员, 2=教练, 3=领队)
</summary>
</member>
<member name="F:YD_Event.Core.Enum.TeamRole.Member">
<summary>
队员
</summary>
</member>
<member name="F:YD_Event.Core.Enum.TeamRole.Leader">
<summary>
领队
</summary>
</member>
<member name="F:YD_Event.Core.Enum.TeamRole.Coach">
<summary>
教练
</summary>
</member>
<member name="T:YD_Event.Core.Enum.UnitType">
<summary>
参与单位类型