/// <summary> /// 发送通知消息 /// </summary> /// <param name="postData"></param> /// <returns></returns> public string SendTemplateMessage() { IMpClient mpClient = new MpClient(); AppIdInfo app = new AppIdInfo() { AppID = AppId, AppSecret = AppSecret, CallBack = "" }; string message = "发送成功"; AccessTokenGetRequest request = new AccessTokenGetRequest() { AppIdInfo = app }; AccessTokenGetResponse response = mpClient.Execute(request); if (!response.IsError) { SendTemplateMessageRequest req = new SendTemplateMessageRequest() { AccessToken = response.AccessToken.AccessToken, SendData = ToJsonString1(), AppIdInfo = app }; SendTemplateMessageResponse res = mpClient.Execute(req); if (res.IsError) { //记录日志 message = res.ErrInfo.ErrMsg; } } else { message = response.ErrInfo.ErrMsg; } return(message); }
/// <summary> /// 后台抄表 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ReadingHandleTimerTimerEvent(object sender, System.Timers.ElapsedEventArgs e) { ReadingHandleTimer.Stop(); var taskList = database.FindList <Am_BackstageTask>(" and Status=0"); foreach (var item in taskList) { var result = GetResult(item.Number); var root = JsonHelper.JonsToList <Root>(result); if (root != null) { if (root.Count == 1) { var example = root[0]; item.TaskMark = "[主动查询]" + result; if (example.status == "SUCCESS") { item.Status = 1; item.StatusStr = "成功"; if (example.data != null) { item.Remark = example.data[0].dsp; } item.OverTime = DateTime.Parse(example.resolve_time); } else if (example.status == "FAIL") { item.Status = 2; item.StatusStr = "失败"; item.OverTime = DateTime.Parse(example.resolve_time); } else if (example.status == "NOTSUPPORT") { item.Status = 2; item.StatusStr = "不支持此功能"; item.OverTime = DateTime.Parse(example.resolve_time); } else if (example.status == "TIMEOUT") { item.Status = 2; item.StatusStr = "超时"; item.OverTime = DateTime.Parse(example.resolve_time); } else if (example.status == "ACCEPTED") { item.StatusStr = "请求已接受"; } else if (example.status == "QUEUE") { item.StatusStr = "调度状态"; } else if (example.status == "PROCESSING") { item.StatusStr = "正在处理中"; } database.Update <Am_BackstageTask>(item); } } if (item.Status > 0 && item.Status < 4) { var log = DbHelper.GetLog(item.Number); if (log != null) { log.Result = item.StatusStr; DbHelper.UpdateLog(log); } if (root.Count == 1) { var example = root[0]; if (example.data != null && example.data.Count > 0) { int type = example.data[0].type; List <DbParameter> par = new List <DbParameter>(); par.Add(DbFactory.CreateDbParameter("@Number", item.AmmeterNumber)); var ammeter = database.FindEntityByWhere <Am_Ammeter>(" and Number =@Number ", par.ToArray()); //查询余额 if (type == 22) { if (ammeter != null && ammeter.Number != null) { ammeter.CurrMoney = double.Parse(example.data[0].value[0].ToString()); ammeter.CM_Time = DateTime.Parse(example.resolve_time); ammeter.Acount_Id = null; if (ammeter.CurrMoney < ammeter.FirstAlarm && ammeter.IsLowerWarning == 1) { ammeter.IsLowerWarning = 2; //发微信通知 IMpClient mpClient = new MpClient(); AccessTokenGetRequest request = new AccessTokenGetRequest() { AppIdInfo = new AppIdInfo() { AppID = ConfigHelper.AppSettings("WEPAY_WEB_APPID"), AppSecret = ConfigHelper.AppSettings("WEPAY_WEb_AppSecret") } }; AccessTokenGetResponse response = mpClient.Execute(request); if (response.IsError) { this.WriteLog(response.ErrInfo.ErrMsg); } Weixin.Mp.Sdk.Domain.First first = new First(); first.color = "#000000"; first.value = ammeter.U_Name + ",您" + ammeter.Room + "号房电费不足"; Weixin.Mp.Sdk.Domain.Keynote1 keynote1 = new Keynote1(); keynote1.color = "#0000ff"; keynote1.value = ammeter.CurrMoney.Value.ToString("0.00"); Weixin.Mp.Sdk.Domain.Keynote2 keynote2 = new Keynote2(); keynote2.color = "#0000ff"; keynote2.value = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); Weixin.Mp.Sdk.Domain.Remark remark = new Remark(); remark.color = "#464646"; remark.value = "请及时充值,以免影响您正常用电!"; Weixin.Mp.Sdk.Domain.Data data = new Data(); data.first = first; data.keynote1 = keynote1; data.keynote2 = keynote2; data.remark = remark; Weixin.Mp.Sdk.Domain.Miniprogram miniprogram = new Miniprogram(); miniprogram.appid = ""; miniprogram.pagepath = ""; Weixin.Mp.Sdk.Domain.TemplateMessage templateMessage = new TemplateMessage(); templateMessage.data = data; templateMessage.miniprogram = miniprogram; templateMessage.template_id = "AaRgB6rFU6Z3kUbagN16Mp7DbT293yI8nuE96Xvoxdk"; var usermodel = database.FindEntity <Ho_PartnerUser>(ammeter.U_Number); templateMessage.touser = usermodel.OpenId; templateMessage.url = "http://am.zst0771.com/Personal/AmmeterRecharge?number=" + ammeter.Number; string postData = templateMessage.ToJsonString1(); /*JsonHelper.ToJson(templateMessage);*/ AppIdInfo app = new AppIdInfo() { AppID = ConfigHelper.AppSettings("WEPAY_WEB_APPID"), AppSecret = ConfigHelper.AppSettings("WEPAY_WEb_AppSecret"), CallBack = "" }; SendTemplateMessageRequest req = new SendTemplateMessageRequest() { AccessToken = response.AccessToken.AccessToken, SendData = postData, AppIdInfo = app }; SendTemplateMessageResponse res = mpClient.Execute(req); if (res.IsError) { this.WriteLog(res.ErrInfo.ErrMsg); } } database.Update(ammeter); } } //查询电量 if (type == 20) { if (ammeter != null && ammeter.Number != null) { ammeter.CurrPower = decimal.Parse(example.data[0].value[0].ToString()).ToString("0.00"); ammeter.CP_Time = DateTime.Parse(example.resolve_time); DbHelper.UpdateAmmeter(ammeter); } } } } } } ReadingHandleTimer.Start(); }
/// <summary> /// 账单推送 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BillSendTimerdEvent(object sender, System.Timers.ElapsedEventArgs e) { BillSendTimer.Stop(); var config = database.FindEntityByWhere <Fx_WebConfig>(""); if (config != null && config.SendBillDate.Value > 0) { var time = DateTime.Now.AddDays(config.SendBillDate.Value); List <DbParameter> par = new List <DbParameter>(); par.Add(DbFactory.CreateDbParameter("@time", time)); par.Add(DbFactory.CreateDbParameter("@Status", "0")); var billList = database.FindList <Am_Bill>(" and BeginTime<=@time and Status=@Status ", par.ToArray()); foreach (var item in billList) { item.Status = 1; item.StatusStr = "未支付"; item.SendTime = DateTime.Now; if (database.Update <Am_Bill>(item) > 0) { //账单推送 IMpClient mpClient = new MpClient(); AccessTokenGetRequest request = new AccessTokenGetRequest() { AppIdInfo = new AppIdInfo() { AppID = ConfigHelper.AppSettings("WEPAY_WEB_APPID"), AppSecret = ConfigHelper.AppSettings("WEPAY_WEb_AppSecret") } }; AccessTokenGetResponse response = mpClient.Execute(request); if (response.IsError) { continue; } Weixin.Mp.Sdk.Domain.First first = new First(); first.color = "#000000"; first.value = item.T_U_Name + ",您本月的账单已生成"; Weixin.Mp.Sdk.Domain.Keynote1 keynote1 = new Keynote1(); keynote1.color = "#0000ff"; keynote1.value = item.Address + " " + item.Cell + "单元" + item.Floor + "楼" + item.Room + "号"; Weixin.Mp.Sdk.Domain.Keynote2 keynote2 = new Keynote2(); keynote2.color = "#0000ff"; keynote2.value = item.BeginTime.Value.ToString("yyyy-MM-dd") + "至" + item.EndTime.Value.ToString("yyyy-MM-dd"); Weixin.Mp.Sdk.Domain.Keynote3 keynote3 = new Keynote3(); keynote3.color = "#0000ff"; keynote3.value = item.Money.Value.ToString("0.00"); //Weixin.Mp.Sdk.Domain.Keynote4 keynote4 = new Keynote4(); //keynote4.color = "#0000ff"; //keynote4.value = model.s_Reception + " " + model.s_ReMobile; Weixin.Mp.Sdk.Domain.Remark remark = new Remark(); remark.color = "#464646"; remark.value = "请在" + config.SendBillDate.Value.ToString() + "天之内在线支付账单!"; Weixin.Mp.Sdk.Domain.Data data = new Data(); data.first = first; data.keynote1 = keynote1; data.keynote2 = keynote2; data.keynote3 = keynote3; //data.keynote4 = keynote4; data.remark = remark; Weixin.Mp.Sdk.Domain.Miniprogram miniprogram = new Miniprogram(); miniprogram.appid = ""; miniprogram.pagepath = ""; Weixin.Mp.Sdk.Domain.TemplateMessage templateMessage = new TemplateMessage(); templateMessage.data = data; templateMessage.miniprogram = miniprogram; templateMessage.template_id = "d0NDpmuQ7BjtlxPurNTr9N1GlATOAQ98S8vrmgAijH8"; var usermodel = database.FindEntity <Ho_PartnerUser>(item.T_U_Number); templateMessage.touser = usermodel.OpenId; templateMessage.url = "http://am.zst0771.com/Personal/NewBillDetails?Number=" + item.Number; string postData = templateMessage.ToJsonString1(); /*JsonHelper.ToJson(templateMessage);*/ AppIdInfo app = new AppIdInfo() { AppID = ConfigHelper.AppSettings("WEPAY_WEB_APPID"), AppSecret = ConfigHelper.AppSettings("WEPAY_WEb_AppSecret"), CallBack = "" }; SendTemplateMessageRequest req = new SendTemplateMessageRequest() { AccessToken = response.AccessToken.AccessToken, SendData = postData, AppIdInfo = app }; SendTemplateMessageResponse res = mpClient.Execute(req); if (res.IsError) { continue; } } } } BillSendTimer.Start(); }
public ActionResult SubmitUserForm(string KeyValue, string Number, Ho_SetSubscribe model, string BuildFormJson) { IDatabase database = DataFactory.Database(); DbTransaction isOpenTrans = database.BeginTrans(); try { //获取订单信息-订单和接单安排分离 var oldModel = database.FindEntity <Ho_MySubscribe>(Number); if (oldModel == null) { return(Content(new JsonMessage { Success = false, Code = "-1", Message = "预约不存在" }.ToString())); } string Message = KeyValue == "" ? "新增成功。" : "编辑成功。"; model.s_StatuStr = model.s_Status == 0 ? "正常" : "做废"; model.ReUserNumber = ManageProvider.Provider.Current().UserId; model.ReUser = ManageProvider.Provider.Current().Account; if (!string.IsNullOrEmpty(KeyValue)) { model.Modify(KeyValue); var IsOk = database.Update(model, isOpenTrans); //更新订单状态为已安排 if (IsOk > 0 && model.s_Status == 0) { oldModel.Status = 1; oldModel.StatusStr = "接待中"; oldModel.Modify(oldModel.Number); database.Update(oldModel, isOpenTrans); } Base_SysLogBll.Instance.WriteLog(KeyValue, OperationType.Update, IsOk > 0 ? "成功" : "失败", "预约接待安排更改"); } else //新建 { model.MS_Number = oldModel.Number; model.Create(); var IsOk = database.Insert(model, isOpenTrans); //更新订单状态为已安排 if (IsOk > 0 && model.s_Status == 0) { oldModel.Status = 1; oldModel.StatusStr = "接待中"; oldModel.Modify(oldModel.Number); database.Update(oldModel, isOpenTrans); } Base_SysLogBll.Instance.WriteLog(KeyValue, OperationType.Update, IsOk > 0 ? "成功" : "失败", "预约接待安排增加"); } database.Commit(); //发送微信通知 IMpClient mpClient = new MpClient(); AccessTokenGetRequest request = new AccessTokenGetRequest() { AppIdInfo = new AppIdInfo() { AppID = ConfigHelper.AppSettings("AppID"), AppSecret = ConfigHelper.AppSettings("AppSecret") } }; AccessTokenGetResponse response = mpClient.Execute(request); if (response.IsError) { Message += ":微信消息发送不成功-" + response.ErrInfo; return(Content(new JsonMessage { Success = true, Code = "1", Message = Message }.ToString())); } Weixin.Mp.Sdk.Domain.First first = new First(); first.color = "#000000"; first.value = "您预约的看房已安排"; Weixin.Mp.Sdk.Domain.Keynote1 keynote1 = new Keynote1(); keynote1.color = "#0000ff"; keynote1.value = model.s_MYTime; Weixin.Mp.Sdk.Domain.Keynote2 keynote2 = new Keynote2(); keynote2.color = "#0000ff"; keynote2.value = model.s_Address; Weixin.Mp.Sdk.Domain.Keynote3 keynote3 = new Keynote3(); keynote3.color = "#0000ff"; keynote3.value = oldModel.HName; Weixin.Mp.Sdk.Domain.Keynote4 keynote4 = new Keynote4(); keynote4.color = "#0000ff"; keynote4.value = model.s_Reception + " " + model.s_ReMobile; Weixin.Mp.Sdk.Domain.Remark remark = new Remark(); remark.color = "#464646"; remark.value = "您有任何疑问随时联系ta"; Weixin.Mp.Sdk.Domain.Data data = new Data(); data.first = first; data.keynote1 = keynote1; data.keynote2 = keynote2; data.keynote3 = keynote3; data.keynote4 = keynote4; data.remark = remark; Weixin.Mp.Sdk.Domain.Miniprogram miniprogram = new Miniprogram(); miniprogram.appid = ""; miniprogram.pagepath = ""; Weixin.Mp.Sdk.Domain.TemplateMessage templateMessage = new TemplateMessage(); templateMessage.data = data; templateMessage.miniprogram = miniprogram; templateMessage.template_id = "nak4v_a9vwzdL9QMWv-Fl3ommOdN7kEORQ1X2BRJrCo"; var usermodel = database.FindEntity <Ho_PartnerUser>(oldModel.UNumber); templateMessage.touser = usermodel.OpenId; templateMessage.url = "http://house.pthl600.com/Ui/Industry?Number=" + oldModel.MHNumber; string postData = templateMessage.ToJsonString(); /*JsonHelper.ToJson(templateMessage);*/ AppIdInfo app = new AppIdInfo() { AppID = ConfigHelper.AppSettings("AppID"), AppSecret = ConfigHelper.AppSettings("AppSecret"), CallBack = "" }; SendTemplateMessageRequest req = new SendTemplateMessageRequest() { AccessToken = response.AccessToken.AccessToken, SendData = postData, AppIdInfo = app }; SendTemplateMessageResponse res = mpClient.Execute(req); if (res.IsError) { Message += ":微信消息发送失败-" + response.ErrInfo; return(Content(new JsonMessage { Success = true, Code = "1", Message = Message }.ToString())); } return(Content(new JsonMessage { Success = true, Code = "1", Message = Message }.ToString())); } catch (Exception ex) { database.Rollback(); return(Content(new JsonMessage { Success = false, Code = "-1", Message = "操作失败:" + ex.Message }.ToString())); } }