2025-03-27 15:05:14 +08:00

111 lines
5.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using SuperMap.RealEstate.Web.UI.WebControls;
using SuperMap.RealEstate.ServiceModel;
using MSPB = SuperMap.RealEstate.MobileServicePlatform.Business;
using HZQR.Common;
namespace SuperMap.RealEstate.SendRec.Common
{
public class WeChatPushHelper
{
#region ->
public static void PushMessage(Transaction _Transaction, MSPB.GROUPPUSHDETAIL _GROUPPUSHDETAIL)
{
string PushModuleName = "";
try
{
//获取微信公众号信息
MSPB.WECHATPUBLICSIGN _WECHATPUBLICSIGN = new MSPB.WECHATPUBLICSIGN(_Transaction);
_WECHATPUBLICSIGN.WECHATPUBLICSIGN_ID = 3;
if (_WECHATPUBLICSIGN.Select())
{
TextBoxEx RefreshTime = new TextBoxEx();
TextBoxEx AcessToken = new TextBoxEx();
//微信公众号名称
string _WECHATPUBLICSIGN_NAME = _WECHATPUBLICSIGN.WECHATPUBLICSIGN_NAME;
//微信公众号id
string _WECHATPUBLICSIGN_ID = _WECHATPUBLICSIGN.KeyID;
//微信公众号APPID
string _WECHAT_APPID = _WECHATPUBLICSIGN.WECHAT_APPID;
//微信公众号APPSECRET
string _WECHAT_APPSECRET = _WECHATPUBLICSIGN.WECHAT_APPSECRET;
//获取微信接口AcessToken
AcessToken.Text = MSPB.CommonHelper.GetAccess(RefreshTime, _WECHAT_APPID, _WECHAT_APPSECRET);
//获取稽核消息模板配置信息
MSPB.PUSHMODULE _PushModule = new MSPB.PUSHMODULE(_Transaction);
_PushModule.AddSearchParameter("WECHATPUBLICSIGN_ID", _WECHATPUBLICSIGN_ID);
_PushModule.AddSearchParameter("PUSHMODULE_NUM", "ProinstApprove");
if (_PushModule.Search())
{
PushModuleName = _PushModule.PUSHMODULE_NAME;
//生成推送消息数据
string _ExPhoneNum = ConfigurationManager.AppSettings["ExPhoneNum"];
List<MSPB.RTWECHATPUSH> RTWECHATPUSHList = new MSPB.RTWECHATPUSH(_Transaction).FillCollection(
"WHERE WECHATPUBLICSIGN_ID = " + _WECHATPUBLICSIGN_ID + " AND MOBILEPHONE_NUMBER IN ('" +
_ExPhoneNum.Replace(",", "','") + "')");
//string sql = string.Format(@"
// SELECT
// RTWECHATPUSH_ID
// FROM
// MOBILESERVICE_PLATFORM.T_RTWECHATPUSH A
// WHERE
// WECHATPUBLICSIGN_ID = {0} AND RTWECHATPUSH_STATE = 1 AND
// EXISTS (SELECT 1 FROM T_RTWECAHTPUSHDTAIL B
// WHERE A.RTWECHATPUSH_ID = B.RTWECHATPUSH_ID AND
// RTWECAHTPUSHDTAIL_STATE = 1 AND PUSH_MODULE LIKE '%{1}%' AND
// B.PROVINCE_CODE = 340000 AND ',' || NVL(B.SERVERPART_IDS,{2}) || ',' LIKE '%,{2},%')",
// _WECHATPUBLICSIGN_ID, _PushModule.PUSHMODULE_CODE, ServerpartId);
//DataTable dt = new MSPB.RTWECHATPUSH(_Transaction).ExecuteDataTable(sql);
//if (dt.Rows.Count > 0)
//{
// RTWECHATPUSH_ID = JoinStrFromDataTable(dt, "RTWECHATPUSH_ID");
// RTWECHATPUSHList = new MSPB.RTWECHATPUSH(_Transaction).FillCollection(string.Format(
// "WHERE RTWECHATPUSH_ID IN ({0})", RTWECHATPUSH_ID));
//}
//if (RTWECHATPUSHList.Count > 0)
//{
//给拥有权限的微信用户推送稽核信息提醒
foreach (MSPB.RTWECHATPUSH _RTWECHATPUSH in RTWECHATPUSHList)
{
LogUtil.WriteLog(null, PushModuleName + "推送人员:" + _RTWECHATPUSH.USER_NAME +
"【" + _RTWECHATPUSH.MOBILEPHONE_NUMBER + "】",
DateTime.Now.ToString("yyyyMMdd") + "_ProinstApprove");
//定义推送跳转页面地址
//string JumpUrl = string.IsNullOrWhiteSpace(ConfigurationManager.AppSettings["BayonetUrl_AH"]) ? "" :
// (ConfigurationManager.AppSettings["BayonetUrl_AH"] + "?id=" + bayonetModel.Bayonet_ID +
// "&name=" + HttpUtility.UrlEncode(_RTWECHATPUSH.USER_NAME) +
// "&phone=" + HttpUtility.UrlEncode(_RTWECHATPUSH.MOBILEPHONE_NUMBER));
//已传入推送小程序
MSPB.CommonHelper.StartToSend(_PushModule.PUSHMODULE_CODE, AcessToken, _RTWECHATPUSH,
_GROUPPUSHDETAIL, 4, RefreshTime, _WECHAT_APPID, _WECHAT_APPSECRET);
//添加推送日志
MSPB.CommonHelper.AddPushLog(_Transaction, PushModuleName + "消息推送",
_RTWECHATPUSH.WECHAT_OPENID, _RTWECHATPUSH.USER_NAME, _RTWECHATPUSH.MOBILEPHONE_NUMBER, 1,
_GROUPPUSHDETAIL.PUSH_THIRDCONTENT + " " + _GROUPPUSHDETAIL.PUSH_FOURTHCONTENT, _WECHAT_APPID, "");
}
//}
}
}
}
catch (Exception ex)
{
LogUtil.WriteLog(null, PushModuleName + "推送错误:" + ex.Message,
DateTime.Now.ToString("yyyyMMdd") + "_ProinstApprove");
}
}
#endregion
}
}