using Microsoft.AspNetCore.Mvc; namespace Application.Web.Controllers.Chat; /// /// 公聊接口 /// [Route("Chat/[controller]/[action]")] [ApiController] [Authorize] public class ChatController : ControllerBase { private readonly IGameChatService _chatService; public ChatController(IGameChatService chatService) { _chatService = chatService; } /// /// 获取公聊信息 /// /// /// /// [HttpGet] public async Task GetChatData(int type, int page) { int areaId = StateHelper.areaId; string teamId = ""; string groupId = ""; RefAsync Total = 0; var data = await _chatService.GetChatData(type, areaId, teamId, groupId, page, 10, Total); //物品数量 int sendGoodsCount = 0; string sendGoodsName = ""; switch (type) { case 0: sendGoodsCount = 199; sendGoodsName = "小海螺"; break; case 3: sendGoodsCount = 15; sendGoodsName = "大海螺"; break; case 4: sendGoodsCount = 9; sendGoodsName = "金海螺"; break; } return PoAction.Ok(new { data, total = Total.Value ,sendGoodsCount,sendGoodsName}); } /// /// 发言 /// /// /// [HttpPost] public async Task SendChat([FromBody] SendChatParms pars) { if (string.IsNullOrEmpty(pars.sign)) { return PoAction.Message("发言内容不能为空!"); } string userId = StateHelper.userId; int areaId = StateHelper.areaId; string par = string.Empty; string code = GameChatEnum.Code.Public.ToString(); bool isSend = false; switch (pars.type) { case 0: isSend = true; code =nameof(GameChatEnum.Code.Public); break; case 1: isSend = true; code = nameof(GameChatEnum.Code.Team); par = ""; break; case 2: isSend = true; code = nameof(GameChatEnum.Code.Group); par=""; break; case 3: isSend = true; code = nameof(GameChatEnum.Code.Region); break; case 4: isSend = true; code = nameof(GameChatEnum.Code.Dress); break; } if (isSend == false) { return PoAction.Message("无法发言!"); } string sign = StringAssist.NoHTML(pars.sign); bool result = await _chatService.SendChat(userId, areaId, code, sign, par); if (result) { return PoAction.Ok(true); } else { return PoAction.Message("发送失败,请稍后尝试!"); } } }