using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; namespace Application.Web.Controllers.Map; [ApiExplorerSettings(GroupName = "Map")] [Route("Map/[controller]/[action]")] [ApiController] [Authorize] public class MapBusController : ControllerBase { private readonly IGameMapService _mapService; public MapBusController(IGameMapService mapService) { _mapService = mapService; } /// /// 获取业务信息 /// /// /// [HttpGet] public async Task GetBusiness(int id) { string userId = StateHelper.userId; var busData = await _mapService.GetMapBusInfo(id); if (busData == null) { return PoAction.Message("业务不存在!"); } var onMap = await _mapService.GetUserOnMapId(userId); if (busData.busCode != onMap) { return PoAction.Message("业务不存在!"); } var checkResult = await GameBus.CheckNeed(userId, busData.busNeed, 1); return PoAction.Ok(new { data = busData, result = checkResult }); } /// /// 传送 /// /// /// /// [HttpGet] public async Task MapBusTo(int id, int num) { string userId = StateHelper.userId; var busData = await _mapService.GetMapBusInfo(id); if (busData == null) { return PoAction.Message("业务不存在!"); } if (busData.busType != "ToMap") { return PoAction.Message("业务不存在!"); } var toData = JsonConvert.DeserializeObject >(busData.busContent); if (num > (toData.Count - 1)) { return PoAction.Message("业务不存在!"); } var onMap = await _mapService.GetUserOnMapId(userId); if (busData.busCode != onMap) { return PoAction.Message("业务不存在!"); } var mapToData = toData[num]; if (TimeAssist.GetHourNum < mapToData.sTime || TimeAssist.GetHourNum > mapToData.eTime) { return PoAction.Message($"当前时间不允许进入"); } var checkResult = await GameBus.CheckNeed(userId, busData.busNeed, 1); if (checkResult.result==false) { return PoAction.Message("不满足传送要求!"); } if (await GameBus.UpdateBag(userId, 0, busData.busNeed, "业务传送")) { var ResultMap = await _mapService.GetToMapInfo(userId, mapToData.mapId, true, true); if (ResultMap != null) { return PoAction.Ok(true); } else { return PoAction.Message("操作失败,请稍后尝试!"); } } else { return PoAction.Message("操作失败,请稍后尝试!"); } } }