This commit is contained in:
zpc 2026-02-07 17:44:37 +08:00
parent b302b2e796
commit 836f2d843e

View File

@ -365,6 +365,89 @@ public class GoodsController : ControllerBase
#endregion
#region Legacy Box List Endpoints ()
/// <summary>
/// 获取箱号分页列表(兼容旧版前端)
/// </summary>
/// <remarks>
/// GET /api/goodslist_count
///
/// 返回箱号分页列表,用于一番赏换箱功能
/// 例如商品有50箱返回 ["1-10", "11-20", "21-30", "31-40", "41-50"]
/// </remarks>
/// <param name="goods_id">商品ID</param>
/// <returns>箱号分页列表</returns>
[HttpGet("goodslist_count")]
[ProducesResponseType(typeof(ApiResponse<List<BoxGroupDto>>), StatusCodes.Status200OK)]
public async Task<ApiResponse<List<BoxGroupDto>>> GetGoodsListCount(
[FromQuery(Name = "goods_id")] int goods_id = 0)
{
try
{
if (goods_id <= 0)
{
return ApiResponse<List<BoxGroupDto>>.Fail("商品ID不能为空");
}
var result = await _goodsService.GetBoxListAsync(goods_id);
return ApiResponse<List<BoxGroupDto>>.Success(result);
}
catch (InvalidOperationException ex)
{
_logger.LogWarning("Get goodslist_count failed: GoodsId={GoodsId}, Error={Error}", goods_id, ex.Message);
return ApiResponse<List<BoxGroupDto>>.Fail(ex.Message);
}
catch (Exception ex)
{
_logger.LogError(ex, "Failed to get goodslist_count: GoodsId={GoodsId}", goods_id);
return ApiResponse<List<BoxGroupDto>>.Fail("获取箱号列表失败");
}
}
/// <summary>
/// 获取箱号详情列表(兼容旧版前端)
/// </summary>
/// <remarks>
/// GET /api/goodslist_content
///
/// 返回指定页码范围内的箱子详情,包含每个箱子的奖品列表和剩余库存
/// </remarks>
/// <param name="goods_id">商品ID</param>
/// <param name="page_no">页码从0开始</param>
/// <param name="sort">排序方式0=箱号升序, 1=箱号降序, 2=余量降序</param>
/// <returns>箱号详情列表</returns>
[HttpGet("goodslist_content")]
[ProducesResponseType(typeof(ApiResponse<List<BoxDetailDto>>), StatusCodes.Status200OK)]
public async Task<ApiResponse<List<BoxDetailDto>>> GetGoodsListContent(
[FromQuery(Name = "goods_id")] int goods_id = 0,
[FromQuery(Name = "page_no")] int page_no = 0,
[FromQuery(Name = "sort")] int sort = 1)
{
try
{
if (goods_id <= 0)
{
return ApiResponse<List<BoxDetailDto>>.Fail("商品ID不能为空");
}
var result = await _goodsService.GetBoxDetailAsync(goods_id, page_no, sort);
return ApiResponse<List<BoxDetailDto>>.Success(result);
}
catch (InvalidOperationException ex)
{
_logger.LogWarning("Get goodslist_content failed: GoodsId={GoodsId}, Error={Error}", goods_id, ex.Message);
return ApiResponse<List<BoxDetailDto>>.Fail(ex.Message);
}
catch (Exception ex)
{
_logger.LogError(ex, "Failed to get goodslist_content: GoodsId={GoodsId}", goods_id);
return ApiResponse<List<BoxDetailDto>>.Fail("获取箱号详情失败");
}
}
#endregion
#region Infinite Goods Detail Endpoints
/// <summary>