zhaojs
2023-10-20 a4e4986fb4612a49337fc7ade2417eefdf3889b8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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");
        }
    }
}