using CommonUtil; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using CommonUtil; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using CommonUtil.RabbitMQ; using Microsoft.AspNetCore.Http.Extensions; namespace Api.MessageReceive.Controllers { [Route(TopConstants.API_ROUTE)] [ApiController] public class SmsBackController : ControllerBase { private readonly IHttpContextAccessor _httpContextAccessor; public SmsBackController(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; } public IActionResult BackMessage([FromQuery] string msgid, string status, string mobile, string content, string xh) { var url= UriHelper.GetDisplayUrl(HttpContext.Request); var request= _httpContextAccessor.HttpContext.Request; var url1 = $"{request.Scheme}://{request.Host}{request.Path}{request.QueryString}"; LogUtil.Info($"url完整链接:{url}"); LogUtil.Info($"{msgid}:{status}:{mobile}:{content}:{xh}:{url}:{url1}", "短信回执消息记录"); if (msgid.IsNullOrEmpty()) { return Ok("ok"); } if (status.IsNullOrEmpty()) {//上行,直接推送mq:{mobile:****,content:*****} LogUtil.Info($"{mobile}:{content}:{xh}", "客通短信回复"); string mqMsg = "{\"msgid\":\""+msgid+"\",\"mobile\":\"" + mobile + "\",\"content\":\""+content+"\",\"status\":\"\",\"desc_state\":\"\"}"; string ret = MQClientFullChannel.SendMessageStatic(0, "yys", mqMsg); if (ret != "ok") { LogUtil.Info($"发MQ失败:{mqMsg}", "mq发送失败"); } } else { string restatus = status.Equals("1") ? "1" : "2"; string desc_state = status.Equals("1") ? "DELIVRD" : status; if (restatus != "1") {//这里用mq推送,格式{mobile:**,status:******} string mqMsg = "{\"msgid\":\"" + msgid + "\",\"mobile\":\"" + mobile + "\",\"status\":\"" + restatus + "\",\"desc_state\":\"" + desc_state + "\"}"; string ret = MQClientFullChannel.SendMessageStatic(0, "yys", mqMsg); if (ret != "ok") { LogUtil.Info($"发MQ失败:{mqMsg}", "mq发送失败"); } } LogUtil.Info($"{mobile}:{status}", "状态"); } return Ok("ok"); } } }