diff --git a/server/HoneyBox/src/HoneyBox.Admin.Business/Controllers/QyLevelController.cs b/server/HoneyBox/src/HoneyBox.Admin.Business/Controllers/QyLevelController.cs
index 6ab220b8..4f743702 100644
--- a/server/HoneyBox/src/HoneyBox.Admin.Business/Controllers/QyLevelController.cs
+++ b/server/HoneyBox/src/HoneyBox.Admin.Business/Controllers/QyLevelController.cs
@@ -87,6 +87,46 @@ public class QyLevelController : BusinessControllerBase
}
}
+ ///
+ /// 新增权益等级
+ ///
+ /// 创建请求
+ /// 新创建的权益等级ID
+ [HttpPost]
+ [BusinessPermission("qylevel:add")]
+ public async Task CreateQyLevel([FromBody] QyLevelCreateRequest request)
+ {
+ try
+ {
+ var id = await _qyLevelService.CreateQyLevelAsync(request);
+ return Ok(new { id }, "创建成功");
+ }
+ catch (BusinessException ex)
+ {
+ return Error(ex.Code, ex.Message);
+ }
+ }
+
+ ///
+ /// 删除权益等级(软删除)
+ ///
+ /// 权益等级ID
+ /// 操作结果
+ [HttpDelete("{id}")]
+ [BusinessPermission("qylevel:delete")]
+ public async Task DeleteQyLevel(int id)
+ {
+ try
+ {
+ var result = await _qyLevelService.DeleteQyLevelAsync(id);
+ return result ? Ok("删除成功") : Error(BusinessErrorCodes.InternalError, "删除失败");
+ }
+ catch (BusinessException ex)
+ {
+ return Error(ex.Code, ex.Message);
+ }
+ }
+
#endregion
#region 权益等级奖品接口
diff --git a/server/HoneyBox/src/HoneyBox.Admin.Business/Models/QyLevel/QyLevelModels.cs b/server/HoneyBox/src/HoneyBox.Admin.Business/Models/QyLevel/QyLevelModels.cs
index c421c3f8..99514777 100644
--- a/server/HoneyBox/src/HoneyBox.Admin.Business/Models/QyLevel/QyLevelModels.cs
+++ b/server/HoneyBox/src/HoneyBox.Admin.Business/Models/QyLevel/QyLevelModels.cs
@@ -172,6 +172,27 @@ public class QyLevelUpdateRequest
public int RequiredPoints { get; set; }
}
+///
+/// 权益等级创建请求
+///
+public class QyLevelCreateRequest
+{
+ ///
+ /// 等级
+ ///
+ public int Level { get; set; }
+
+ ///
+ /// 等级名称
+ ///
+ public string Title { get; set; } = string.Empty;
+
+ ///
+ /// 所需欧气值
+ ///
+ public int RequiredPoints { get; set; }
+}
+
///
/// 权益等级奖品列表查询请求
///
diff --git a/server/HoneyBox/src/HoneyBox.Admin.Business/Services/Interfaces/IQyLevelService.cs b/server/HoneyBox/src/HoneyBox.Admin.Business/Services/Interfaces/IQyLevelService.cs
index 03674d36..8c097399 100644
--- a/server/HoneyBox/src/HoneyBox.Admin.Business/Services/Interfaces/IQyLevelService.cs
+++ b/server/HoneyBox/src/HoneyBox.Admin.Business/Services/Interfaces/IQyLevelService.cs
@@ -32,6 +32,20 @@ public interface IQyLevelService
/// 是否成功
Task UpdateQyLevelAsync(int id, QyLevelUpdateRequest request);
+ ///
+ /// 创建权益等级
+ ///
+ /// 创建请求
+ /// 新创建的权益等级ID
+ Task CreateQyLevelAsync(QyLevelCreateRequest request);
+
+ ///
+ /// 删除权益等级(软删除)
+ ///
+ /// 权益等级ID
+ /// 是否成功
+ Task DeleteQyLevelAsync(int id);
+
#endregion
#region 权益等级奖品操作
diff --git a/server/HoneyBox/src/HoneyBox.Admin.Business/Services/QyLevelService.cs b/server/HoneyBox/src/HoneyBox.Admin.Business/Services/QyLevelService.cs
index 4745af2d..b71e416a 100644
--- a/server/HoneyBox/src/HoneyBox.Admin.Business/Services/QyLevelService.cs
+++ b/server/HoneyBox/src/HoneyBox.Admin.Business/Services/QyLevelService.cs
@@ -100,6 +100,73 @@ public class QyLevelService : IQyLevelService
return result;
}
+ ///
+ public async Task CreateQyLevelAsync(QyLevelCreateRequest request)
+ {
+ // 验证请求
+ if (string.IsNullOrWhiteSpace(request.Title))
+ {
+ throw new BusinessException(BusinessErrorCodes.ValidationFailed, "等级名称不能为空");
+ }
+
+ if (request.Level < 0)
+ {
+ throw new BusinessException(BusinessErrorCodes.ValidationFailed, "等级不能为负数");
+ }
+
+ if (request.RequiredPoints < 0)
+ {
+ throw new BusinessException(BusinessErrorCodes.ValidationFailed, "所需欧气值不能为负数");
+ }
+
+ // 检查等级是否已存在
+ var existingLevel = await _dbContext.EquityLevels
+ .FirstOrDefaultAsync(e => e.Level == request.Level && e.DeletedAt == null);
+
+ if (existingLevel != null)
+ {
+ throw new BusinessException(BusinessErrorCodes.ValidationFailed, $"等级 {request.Level} 已存在");
+ }
+
+ var entity = new EquityLevel
+ {
+ Level = request.Level,
+ Title = request.Title,
+ Number = request.RequiredPoints,
+ CreatedAt = DateTime.Now,
+ UpdatedAt = DateTime.Now
+ };
+
+ _dbContext.EquityLevels.Add(entity);
+ await _dbContext.SaveChangesAsync();
+
+ _logger.LogInformation("创建权益等级成功: Id={Id}, Level={Level}, Title={Title}", entity.Id, entity.Level, entity.Title);
+
+ return entity.Id;
+ }
+
+ ///
+ public async Task DeleteQyLevelAsync(int id)
+ {
+ var entity = await _dbContext.EquityLevels
+ .FirstOrDefaultAsync(e => e.Id == id && e.DeletedAt == null);
+
+ if (entity == null)
+ {
+ throw new BusinessException(BusinessErrorCodes.NotFound, "权益等级不存在");
+ }
+
+ // 软删除
+ entity.DeletedAt = DateTime.Now;
+ entity.UpdatedAt = DateTime.Now;
+
+ var result = await _dbContext.SaveChangesAsync() > 0;
+
+ _logger.LogInformation("删除权益等级成功: Id={Id}, Level={Level}", id, entity.Level);
+
+ return result;
+ }
+
#endregion
#region 权益等级奖品操作