namespace Application.Web.Controllers.User; /// /// 用户背包信息 /// [ApiExplorerSettings(GroupName = "User")] [Route("User/[controller]/[action]")] [ApiController] [Authorize] public class BagController : ControllerBase { private readonly IUnitUserWeight _weightService; private readonly IGameGoodsService _goodsService; private readonly IGameEquService _equService; public BagController(IUnitUserWeight weightService, IGameGoodsService goodsService, IGameEquService equService) { _weightService = weightService; _goodsService = goodsService; _equService = equService; } /// /// 获取背包信息 /// /// [HttpGet] public async Task GetUserBagData() { string userId = StateHelper.userId; int onWeight = 0; int maxWeight = 0; int gold = 0; int cowry = 0; long copper = 0; var userWeight = await _weightService.GetUserWeightInfo(userId); onWeight = (int)userWeight.onWeight; maxWeight = (int)userWeight.maxWeight; return PoAction.Ok(new { onWeight, maxWeight, cowry, gold, copper }); } /// /// 获取用户道具数据 /// /// /// /// /// /// [HttpGet] public async Task GetUserBagProp(int type, int ch, string? query, int page) { RefAsync total = 0; string userId = StateHelper.userId; if (type == 0) { int _t = 0; switch (ch) { case 1: _t = 1; break; case 2: _t = 2; break; case 3: _t = 3; break; } var data = await _equService.GetUserEquData(userId, _t, query, page, 10, total); return PoAction.Ok(new { data, total.Value }); } else if (type == 1) { List code = new List() { nameof(GoodsEnum.Code.Drug) }; var data = await _goodsService.GetUserGoodsData(userId, code, new List(), query, page, 10, total); return PoAction.Ok(new { data, total.Value }); } else if (type == 2) { List code = new List(); List noCode = new List() { nameof(GoodsEnum.Code.Drug) }; switch (ch) { case 1: code.Add(nameof(GoodsEnum.Code.Gem)); break; case 2: code.Add(nameof(GoodsEnum.Code.Palace)); break; case 3: code.Add(nameof(GoodsEnum.Code.Mark)); break; case 4: code.Add(nameof(GoodsEnum.Code.Pack)); break; case 5: code.Add(nameof(GoodsEnum.Code.Mak)); break; case 6: code.Add(nameof(GoodsEnum.Code.Paper)); break; case 7: code.Add(nameof(GoodsEnum.Code.Card)); break; case 8: code.Add(nameof(GoodsEnum.Code.Cargo)); break; case 9: code.Add(nameof(GoodsEnum.Code.Prop)); break; } var data = await _goodsService.GetUserGoodsData(userId, code, noCode, query, page, 10, total); return PoAction.Ok(new { data, total.Value }); } else { return PoAction.Ok(new { data = new List(), total.Value }); } } }