using Microsoft.Extensions.Caching.Memory;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Xml;
using CommonUtil;
using WeiXinKfSDK;
using WeiXinKfSDK.Response;
using Operater.DTO.TopMessage;
using CommonUtil.RabbitMQ;
using DbAccess;
using System.Text;
namespace Api.MessageReceive.Service
{
public class WxKfService
{
public static WxKfToken _wxkfToken;
public static GzhToken _gzhToken;
public static ISysSqlHelper dbMain = SysSqlHelper.CreateSqlHelper("db_main");
//public async Task WxMessageHandle(string xmlMessage)
public async static Task WxMessageHandle(string xmlMessage, string msgtype)
{
TradeMqMessage tradeMqMessage = new TradeMqMessage()
{
MsgType = msgtype,
MsgBody = xmlMessage
};
string ret = MQClientFullChannel.SendMessageStatic(0, "wxkf_message", JSONUtil.ObjectToJson(tradeMqMessage));
if (ret != "ok")
{
LogUtil.Info($"发MQ失败:{xmlMessage}", "wx处理失败");
}
}
public async static Task RecordeGzhInfo(GetGzhUserInfoResonse userInfo)
{
try
{
string nickName = "";
if(!userInfo.nickname.IsNullOrEmpty())
{
nickName= Encoding.UTF8.GetString(Encoding.GetEncoding("ISO-8859-1").GetBytes(userInfo.nickname));
}
string record = $"replace into gzh_userinfo values('{userInfo.openid}','{nickName}','{userInfo.sex}','{userInfo.province}','{userInfo.city}','{userInfo.headimgurl}','{userInfo.unionid}',now())";
dbMain.ExecuteNonQuery(record);
}
catch (Exception e)
{
LogUtil.Info($"发MQ失败:{e.ToString()}", "gzh入库失败");
}
}
///
/// 获取公众号token
///
///
public static string GetGzhToken()
{
if(_gzhToken.IsNull()|| _gzhToken.ExpressTime