/// <summary>
        /// 订阅(关注)事件
        /// </summary>
        /// <returns></returns>
        public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage)
        {
            //关注时回复
            AutoRlyInfo autoRly = SinGooCMS.BLL.AutoRly.GetFocusRly();

            switch (autoRly.MsgType)
            {
            case WeixinMsgType.Text:
                var responseMessageText = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage);
                responseMessageText.Content = autoRly.MsgText;
                return(responseMessageText);

            case WeixinMsgType.Image:
            {
                var responseMessageNews = CreateResponseMessage <ResponseMessageNews>();
                responseMessageNews.Articles.Add(new Article()
                    {
                        Title       = autoRly.MsgText,
                        Description = autoRly.Description,
                        PicUrl      = Utils.GetUrlWithDomain(autoRly.MediaPath),
                        Url         = autoRly.LinkUrl
                    });

                return(responseMessageNews);
            }
            }

            return(null);
        }
Esempio n. 2
0
        /// <summary>
        /// 处理文字请求
        /// </summary>
        /// <returns></returns>
        public override IResponseMessageBase OnTextRequest(RequestMessageText requestMessage)
        {
            //TODO:这里的逻辑可以交给Service处理具体信息,参考OnLocationRequest方法或/Service/LocationSercice.cs

            //方法一(v0.1),此方法调用太过繁琐,已过时(但仍是所有方法的核心基础),建议使用方法二到四
            //var responseMessage =
            //    ResponseMessageBase.CreateFromRequestMessage(RequestMessage, ResponseMsgType.Text) as
            //    ResponseMessageText;

            //方法二(v0.4)
            //var responseMessage = ResponseMessageBase.CreateFromRequestMessage<ResponseMessageText>(RequestMessage);

            //方法三(v0.4),扩展方法,需要using Senparc.Weixin.MP.Helpers;
            //var responseMessage = RequestMessage.CreateResponseMessage<ResponseMessageText>();

            //方法四(v0.6+),仅适合在HandlerMessage内部使用,本质上是对方法三的封装
            //注意:下面泛型ResponseMessageText即返回给客户端的类型,可以根据自己的需要填写ResponseMessageNews等不同类型。

            if (!string.IsNullOrEmpty(requestMessage.Content))
            {
                AutoRlyInfo keyRly = SinGooCMS.BLL.AutoRly.GetByKey(requestMessage.Content);
                if (keyRly != null)
                {
                    return(SendReplyMsg(requestMessage, requestMessage.Content));
                }
                else
                {
                    return(SendDefaultMsg(requestMessage));
                }
            }

            return(null);
        }
Esempio n. 3
0
 protected void lnk_Delete_Click(object sender, System.EventArgs e)
 {
     if (!base.IsAuthorizedOp(ActionType.Delete.ToString()))
     {
         base.ShowAjaxMsg(this.UpdatePanel1, "Không có thẩm quyền");
     }
     else
     {
         int         @int     = WebUtils.GetInt((sender as LinkButton).CommandArgument);
         AutoRlyInfo dataById = AutoRly.GetDataById(@int);
         if (dataById == null)
         {
             base.ShowAjaxMsg(this.UpdatePanel1, "Những thông tin này không được tìm thấy, các dữ liệu không tồn tại hoặc đã bị xóa");
         }
         else if (AutoRly.Delete(@int))
         {
             this.BindData();
             PageBase.log.AddEvent(base.LoginAccount.AccountName, "删除自动回复关键字[" + dataById.MsgKey + "] thành công");
             base.ShowAjaxMsg(this.UpdatePanel1, "Thao tác thành công");
         }
         else
         {
             base.ShowAjaxMsg(this.UpdatePanel1, "Thao tác thất bại");
         }
     }
 }
Esempio n. 4
0
        /// <summary>
        /// 发送默认的消息
        /// </summary>
        private IResponseMessageBase SendReplyMsg(IRequestMessageBase requestMessage, string msgKey)
        {
            //默认回复
            AutoRlyInfo autoRly = SinGooCMS.BLL.AutoRly.GetDefaultRly();

            if (!string.IsNullOrEmpty(msgKey))
            {
                autoRly = SinGooCMS.BLL.AutoRly.GetByKey(msgKey);
            }

            switch (autoRly.MsgType)
            {
            case WeixinMsgType.Text:
                var responseMessageText = ResponseMessageBase.CreateFromRequestMessage <ResponseMessageText>(requestMessage);
                responseMessageText.Content = autoRly.MsgText;
                return(responseMessageText);

            case WeixinMsgType.Image:
            {
                var responseMessageNews = CreateResponseMessage <ResponseMessageNews>();
                responseMessageNews.Articles.Add(new Article()
                    {
                        Title       = autoRly.MsgText,
                        Description = autoRly.Description,
                        PicUrl      = Utils.GetUrlWithDomain(autoRly.MediaPath),
                        Url         = autoRly.LinkUrl
                    });

                return(responseMessageNews);
            }
            }

            return(null);
        }
Esempio n. 5
0
        public static WxStatus Add(WxMenuInfo entity, AutoRlyInfo eventKey)
        {
            int count;

            if (entity.ParentID == 0)
            {
                count = WxMenu.GetCount("ParentID=0");
            }
            else
            {
                count = WxMenu.GetCount("ParentID=" + entity.ParentID);
            }
            WxStatus result;

            if (entity.ParentID.Equals(0) && count > 3)
            {
                result = WxStatus.一级菜单个数不超过3个;
            }
            else if (entity.ParentID > 0 && count > 5)
            {
                result = WxStatus.二级菜单个数不超过5个;
            }
            else
            {
                if (entity.Type == "click" && eventKey != null)
                {
                    AutoRly.Add(eventKey);
                    entity.EventKey = eventKey.MsgKey;
                }
                int num = WxMenu.Add(entity);
                if (num > 0)
                {
                    entity.AutoID = num;
                    if (entity.ParentID.Equals(0))
                    {
                        entity.RootID = num;
                        WxMenu.Update(entity);
                    }
                    else
                    {
                        WxMenuInfo dataById = WxMenu.GetDataById(entity.ParentID);
                        entity.RootID = dataById.RootID;
                        dataById.ChildCount++;
                        dataById.ChildIDs = dataById.ChildIDs + "," + num;
                        WxMenu.Update(entity);
                        WxMenu.Update(dataById);
                    }
                    result = WxStatus.增加成功;
                }
                else
                {
                    result = WxStatus.增加失败;
                }
            }
            return(result);
        }
Esempio n. 6
0
        private void InitForModify()
        {
            AutoRlyInfo focusRly = AutoRly.GetFocusRly();

            if (focusRly != null)
            {
                this.TextBox1.Text   = focusRly.MsgText;
                this.TextBox2.Text   = focusRly.MediaPath;
                this.Image1.ImageUrl = focusRly.MediaPath;
                this.Image1.Attributes.Add("data-original", focusRly.MediaPath);
                this.TextBox3.Text = focusRly.Description;
                this.TextBox4.Text = focusRly.LinkUrl;
            }
        }
Esempio n. 7
0
        public static int Add(AutoRlyInfo entity)
        {
            int result;

            if (entity == null)
            {
                result = 0;
            }
            else
            {
                result = BizBase.dbo.InsertModel <AutoRlyInfo>(entity);
            }
            return(result);
        }
Esempio n. 8
0
        private void InitForModify()
        {
            AutoRlyInfo dataById = AutoRly.GetDataById(base.OpID);

            if (dataById != null)
            {
                this.TextBox5.Text   = dataById.MsgKey;
                this.TextBox1.Text   = dataById.MsgText;
                this.TextBox2.Text   = dataById.MediaPath;
                this.Image1.ImageUrl = dataById.MediaPath;
                this.Image1.Attributes.Add("data-original", dataById.MediaPath);
                this.TextBox3.Text = dataById.Description;
                this.TextBox4.Text = dataById.LinkUrl;
            }
        }
Esempio n. 9
0
 protected void btnok_Click(object sender, System.EventArgs e)
 {
     if (!base.IsAuthorizedOp(ActionType.Modify.ToString()))
     {
         base.ShowMsg("Không có thẩm quyền");
     }
     else
     {
         string      a           = "update";
         AutoRlyInfo autoRlyInfo = AutoRly.GetFocusRly();
         if (autoRlyInfo == null)
         {
             a                   = "add";
             autoRlyInfo         = new AutoRlyInfo();
             autoRlyInfo.RlyType = "关注回复";
             autoRlyInfo.MsgKey  = "FoucusRly";
         }
         autoRlyInfo.MsgText       = WebUtils.GetString(this.TextBox1.Text);
         autoRlyInfo.MediaPath     = WebUtils.GetString(this.TextBox2.Text);
         autoRlyInfo.Description   = WebUtils.GetString(this.TextBox3.Text);
         autoRlyInfo.LinkUrl       = WebUtils.GetString(this.TextBox4.Text);
         autoRlyInfo.AutoTimeStamp = System.DateTime.Now;
         if (string.IsNullOrEmpty(autoRlyInfo.MsgText))
         {
             base.ShowMsg("文本内容不能为空");
         }
         else if ((a == "add" && AutoRly.Add(autoRlyInfo) > 0) || (a == "update" && AutoRly.Update(autoRlyInfo)))
         {
             PageBase.log.AddEvent(base.LoginAccount.AccountName, "更新关注回复成功");
             base.ShowMsg("Thao tác thành công");
         }
         else
         {
             base.ShowMsg("Thao tác thất bại");
         }
     }
 }
Esempio n. 10
0
        private void InitForModify()
        {
            WxMenuInfo dataById = WxMenu.GetDataById(base.OpID);

            this.InitMenuType = dataById.Type;
            ListItem listItem = this.parentmenu.Items.FindByValue(dataById.ParentID.ToString());

            if (listItem != null)
            {
                listItem.Selected = true;
            }
            this.parentmenu.Enabled = false;
            this.menuname.Text      = dataById.Name;
            ListItem listItem2 = this.menutype.Items.FindByValue(dataById.Type);

            if (listItem2 != null)
            {
                listItem2.Selected = true;
            }
            if (dataById.Type == "click" && !string.IsNullOrEmpty(dataById.EventKey))
            {
                AutoRlyInfo eventRly = AutoRly.GetEventRly(dataById.EventKey);
                if (eventRly != null)
                {
                    this.TextBox1.Text   = eventRly.MsgText;
                    this.TextBox2.Text   = eventRly.MediaPath;
                    this.Image1.ImageUrl = eventRly.MediaPath;
                    this.TextBox3.Text   = eventRly.Description;
                    this.TextBox4.Text   = eventRly.LinkUrl;
                }
            }
            else
            {
                this.TextBox4.Text = dataById.Url;
            }
        }
Esempio n. 11
0
        public static WxStatus Update(WxMenuInfo entity, AutoRlyInfo eventKey)
        {
            WxMenuInfo dataById = WxMenu.GetDataById(entity.AutoID);
            WxStatus   result;

            if (WxMenu.Update(entity))
            {
                if (entity.Type == "view" && !string.IsNullOrEmpty(dataById.EventKey))
                {
                    AutoRly.DelEventKey(dataById.EventKey);
                }
                else if (entity.Type == "click" && dataById.Type != "click" && eventKey != null)
                {
                    AutoRly.Add(eventKey);
                }
                else if (entity.Type == "click" && dataById.Type == "click" && eventKey != null)
                {
                    AutoRlyInfo eventRly = AutoRly.GetEventRly(dataById.EventKey);
                    if (eventRly != null)
                    {
                        eventRly.MsgText       = eventKey.MsgText;
                        eventRly.Description   = eventKey.Description;
                        eventRly.MediaPath     = eventKey.MediaPath;
                        eventRly.LinkUrl       = eventKey.LinkUrl;
                        eventRly.AutoTimeStamp = DateTime.Now;
                        AutoRly.Update(eventRly);
                    }
                }
                result = WxStatus.修改成功;
            }
            else
            {
                result = WxStatus.修改失败;
            }
            return(result);
        }
Esempio n. 12
0
 protected void btnok_Click(object sender, System.EventArgs e)
 {
     if (base.Action.Equals(ActionType.Add.ToString()) && !base.IsAuthorizedOp(ActionType.Add.ToString()))
     {
         base.ShowMsg("Không có thẩm quyền");
     }
     else if (base.Action.Equals(ActionType.Modify.ToString()) && !base.IsAuthorizedOp(ActionType.Modify.ToString()))
     {
         base.ShowMsg("Không có thẩm quyền");
     }
     else
     {
         WxMenuInfo wxMenuInfo = new WxMenuInfo();
         if (base.IsEdit)
         {
             wxMenuInfo = WxMenu.GetDataById(base.OpID);
         }
         wxMenuInfo.ParentID = WebUtils.GetInt(this.parentmenu.SelectedValue);
         wxMenuInfo.Name     = WebUtils.GetString(this.menuname.Text);
         wxMenuInfo.Type     = this.menutype.SelectedValue;
         wxMenuInfo.Url      = WebUtils.GetString(this.TextBox4.Text);
         wxMenuInfo.EventKey = string.Empty;
         AutoRlyInfo autoRlyInfo = new AutoRlyInfo
         {
             RlyType     = "事件回复",
             MsgKey      = StringUtils.GetRandomNumber(),
             MsgText     = WebUtils.GetString(this.TextBox1.Text),
             MediaPath   = WebUtils.GetString(this.TextBox2.Text),
             Description = WebUtils.GetString(this.TextBox3.Text),
             LinkUrl     = WebUtils.GetString(this.TextBox4.Text)
         };
         if (string.IsNullOrEmpty(wxMenuInfo.Name))
         {
             base.ShowMsg("菜单名称不能为空");
         }
         else if (wxMenuInfo.ParentID == 0 && wxMenuInfo.Name.Length > 4)
         {
             base.ShowMsg("一级菜单文字长度不超过4个汉字");
         }
         else if (wxMenuInfo.ParentID > 0 && wxMenuInfo.Name.Length > 8)
         {
             base.ShowMsg("二级菜单文字长度不超过8个汉字");
         }
         else if (wxMenuInfo.Type == "click" && string.IsNullOrEmpty(autoRlyInfo.MsgText))
         {
             base.ShowMsg("图文推送文本不能为空");
         }
         else if (wxMenuInfo.Type == "click" && (autoRlyInfo.MsgText.Length > 600 || autoRlyInfo.Description.Length > 600))
         {
             base.ShowMsg("推送图文中的文本不能超过600汉字");
         }
         else if (wxMenuInfo.Type == "view" && string.IsNullOrEmpty(autoRlyInfo.LinkUrl))
         {
             base.ShowMsg("地址跳转的地址不能为空");
         }
         else
         {
             if (base.Action.Equals(ActionType.Add.ToString()))
             {
                 wxMenuInfo.Sort          = WxMenu.MaxSort + 1;
                 wxMenuInfo.AutoTimeStamp = System.DateTime.Now;
                 WxStatus wxStatus = WxMenu.Add(wxMenuInfo, autoRlyInfo);
                 if (wxStatus == WxStatus.增加成功)
                 {
                     PageBase.log.AddEvent(base.LoginAccount.AccountName, "添加微信菜单[" + wxMenuInfo.Name + "] thành công");
                     MessageUtils.DialogCloseAndParentReload(this);
                 }
                 else
                 {
                     base.ShowMsg(wxStatus.ToString());
                 }
             }
             if (base.Action.Equals(ActionType.Modify.ToString()))
             {
                 WxStatus wxStatus2 = WxMenu.Update(wxMenuInfo, autoRlyInfo);
                 if (wxStatus2 == WxStatus.修改成功)
                 {
                     PageBase.log.AddEvent(base.LoginAccount.AccountName, "修改微信菜单[" + wxMenuInfo.Name + "] thành công");
                     MessageUtils.DialogCloseAndParentReload(this);
                 }
                 else
                 {
                     base.ShowMsg(wxStatus2.ToString());
                 }
             }
         }
     }
 }
Esempio n. 13
0
 public static bool Update(AutoRlyInfo entity)
 {
     return(entity != null && BizBase.dbo.UpdateModel <AutoRlyInfo>(entity));
 }
Esempio n. 14
0
 protected void btnok_Click(object sender, System.EventArgs e)
 {
     if (!base.IsAuthorizedOp(ActionType.Modify.ToString()))
     {
         base.ShowMsg("Không có thẩm quyền");
     }
     else
     {
         AutoRlyInfo autoRlyInfo = new AutoRlyInfo();
         if (base.IsEdit)
         {
             autoRlyInfo = AutoRly.GetDataById(base.OpID);
         }
         autoRlyInfo.RlyType       = "关键字回复";
         autoRlyInfo.MsgKey        = WebUtils.GetString(this.TextBox5.Text);
         autoRlyInfo.MsgText       = WebUtils.GetString(this.TextBox1.Text);
         autoRlyInfo.MediaPath     = WebUtils.GetString(this.TextBox2.Text);
         autoRlyInfo.Description   = WebUtils.GetString(this.TextBox3.Text);
         autoRlyInfo.LinkUrl       = WebUtils.GetString(this.TextBox4.Text);
         autoRlyInfo.AutoTimeStamp = System.DateTime.Now;
         if (string.IsNullOrEmpty(autoRlyInfo.MsgText))
         {
             base.ShowMsg("文本内容不能为空");
         }
         else
         {
             if (base.Action.Equals(ActionType.Add.ToString()))
             {
                 if (AutoRly.Add(autoRlyInfo) > 0)
                 {
                     PageBase.log.AddEvent(base.LoginAccount.AccountName, "添加微信自动回复关键字[" + autoRlyInfo.MsgKey + "] thành công");
                     base.Response.Redirect(string.Concat(new object[]
                     {
                         "MessageKeyRly.aspx?CatalogID=",
                         base.CurrentCatalogID,
                         "&Module=",
                         base.CurrentModuleCode,
                         "&action=View"
                     }));
                 }
                 else
                 {
                     base.ShowMsg("添加失败");
                 }
             }
             if (base.Action.Equals(ActionType.Modify.ToString()))
             {
                 if (AutoRly.Update(autoRlyInfo))
                 {
                     PageBase.log.AddEvent(base.LoginAccount.AccountName, "修改微信自动回复关键字[" + autoRlyInfo.MsgKey + "] thành công");
                     base.Response.Redirect(string.Concat(new object[]
                     {
                         "MessageKeyRly.aspx?CatalogID=",
                         base.CurrentCatalogID,
                         "&Module=",
                         base.CurrentModuleCode,
                         "&action=View"
                     }));
                 }
                 else
                 {
                     base.ShowMsg("修改失败");
                 }
             }
         }
     }
 }