示例#1
0
        /// <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);
        }
示例#2
0
文件: Service1.cs 项目: gxlbang/yoga
        /// <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();
        }
示例#3
0
文件: Service1.cs 项目: gxlbang/yoga
        /// <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();
        }
示例#4
0
        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()));
            }
        }