refactor: 重构状态更新接口,新增商品管理与勋章规则配置

1. 重构用户、宠物模板、勋章、管理员状态更新接口,移除冗余参数改为自动切换状态
2. 重命名宠物背景枚举为宠物皮肤,调整商品状态字段为枚举类型
3. 新增商品上下架状态管理接口与对应逻辑
4. 新增勋章规则配置系统,支持动态加载可用表和字段
5. 优化商品查询与展示逻辑,适配新的状态字段
This commit is contained in:
glz
2026-06-09 11:41:28 +08:00
parent 0126c6b097
commit 1d86580db7
24 changed files with 405 additions and 61 deletions

View File

@ -214,6 +214,31 @@ public class AdminController : BaseController
return BaseResponse<PageListModel<AdminUserOutput>>.Fail("查询管理员列表失败,请稍后重试");
}
}
/// <summary>
/// 切换管理员状态(激活/冻结)
/// </summary>
/// <param name="id">管理员ID</param>
/// <returns>操作结果</returns>
[HttpPut("users/{id}/status")]
public async Task<BaseResponse<object>> ToggleUserStatusAsync(long id)
{
try
{
await _adminUserService.ToggleStatusAsync(id);
return Success(new object(), "切换管理员状态成功");
}
catch (BusinessException ex)
{
_logger.LogWarning(ex, "切换管理员状态业务异常: {Message}", ex.Message);
return BaseResponse<object>.Fail(ex.Message);
}
catch (Exception ex)
{
_logger.LogError(ex, "切换管理员状态系统异常ID{Id}", id);
return BaseResponse<object>.Fail("切换状态失败,请稍后重试");
}
}
}
public class ChangePasswordInput

View File

@ -156,22 +156,59 @@ public class MedalController : BaseController
/// <param name="status">状态: 0=禁用, 1=启用</param>
/// <returns>操作结果</returns>
[HttpPut("{id}/status")]
public async Task<BaseResponse<object>> UpdateStatusAsync(long id, [FromBody] int status)
public async Task<BaseResponse<bool>> UpdateStatusAsync(long id)
{
try
{
await _medalService.UpdateStatusAsync(id, status);
return Success(new object(), status == 1 ? "启用勋章成功" : "禁用勋章成功");
var res = await _medalService.UpdateStatusAsync(id);
return Success(res, "更新勋章状态成功");
}
catch (BusinessException ex)
{
_logger.LogWarning(ex, "更新勋章状态业务异常: {Message}", ex.Message);
return BaseResponse<object>.Fail(ex.Message);
return BaseResponse<bool>.Fail(ex.Message);
}
catch (Exception ex)
{
_logger.LogError(ex, "更新勋章状态系统异常ID{Id}Status{Status}", id, status);
return BaseResponse<object>.Fail("更新勋章状态失败,请稍后重试");
_logger.LogError(ex, "更新勋章状态系统异常ID{Id}", id);
return BaseResponse<bool>.Fail("更新勋章状态失败,请稍后重试");
}
}
/// <summary>
/// 获取规则配置中可用的目标表列表
/// </summary>
[HttpGet("rule-config/tables")]
public async Task<BaseResponse<List<MedalRuleTableOptionOutput>>> GetAvailableTables()
{
try
{
var result = await _medalService.GetAvailableTablesAsync();
return Success(result);
}
catch (Exception ex)
{
_logger.LogError(ex, "获取可用目标表列表系统异常");
return BaseResponse<List<MedalRuleTableOptionOutput>>.Fail("获取可用目标表列表失败,请稍后重试");
}
}
/// <summary>
/// 获取指定表的可用字段列表
/// </summary>
/// <param name="tableName">表名</param>
[HttpGet("rule-config/tables/{tableName}/fields")]
public async Task<BaseResponse<List<MedalRuleFieldOptionOutput>>> GetTableFields(string tableName)
{
try
{
var result = await _medalService.GetTableFieldsAsync(tableName);
return Success(result);
}
catch (Exception ex)
{
_logger.LogError(ex, "获取可用字段列表系统异常,表名:{TableName}", tableName);
return BaseResponse<List<MedalRuleFieldOptionOutput>>.Fail("获取可用字段列表失败,请稍后重试");
}
}
}

View File

@ -145,11 +145,11 @@ public class PetManageController : BaseController
/// 更新宠物模板状态(启用/禁用)
/// </summary>
[HttpPut("{id}/status")]
public async Task<BaseResponse<object>> UpdateTemplateStatusAsync(long id, [FromBody] int status)
public async Task<BaseResponse<object>> UpdateTemplateStatusAsync(long id)
{
try
{
await _petService.UpdateTemplateStatusAsync(id, status);
await _petService.UpdateTemplateStatusAsync(id);
return Success(new object(), "更新状态成功");
}
catch (BusinessException ex)

View File

@ -148,4 +148,29 @@ public class ProductController : BaseController
return BaseResponse<PageListModel<ProductOutput>>.Fail("查询商品列表失败,请稍后重试");
}
}
/// <summary>
/// 更新商品上架/下架状态
/// </summary>
/// <param name="id">商品ID</param>
/// <returns>操作结果</returns>
[HttpPut("{id}/status")]
public async Task<BaseResponse<object>> UpdateSaleStatusAsync(long id)
{
try
{
await _productService.UpdateSaleStatusAsync(id);
return Success(new object(), "更新商品状态成功");
}
catch (BusinessException ex)
{
_logger.LogWarning(ex, "更新商品状态业务异常: {Message}", ex.Message);
return BaseResponse<object>.Fail(ex.Message);
}
catch (Exception ex)
{
_logger.LogError(ex, "更新商品状态系统异常ID{Id}", id);
return BaseResponse<object>.Fail("更新商品状态失败,请稍后重试");
}
}
}

View File

@ -45,9 +45,9 @@ public class UsersController : BaseController
/// 更新用户状态
/// </summary>
[HttpPut("{id}/status")]
public async Task<BaseResponse> UpdateStatus(long id, [FromBody] UpdateUserStatusInput input)
public async Task<BaseResponse> UpdateStatus(long id)
{
return await _usersService.UpdateStatusAsync(id, input);
return await _usersService.UpdateStatusAsync(id);
}
/// <summary>