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 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 } }