Exemple #1
0
        public static bool SaveReplyContent(mpmsgreplycontent dto)
        {
            string sql = @"MERGE INTO MpMsgReplyContent e
USING ( SELECT @ReplyId AS ReplyId, @MsgId AS MsgId,@ReplyType AS ReplyType,@ReplyContent AS ReplyContent) t
ON t.ReplyId = e.ReplyId
WHEN MATCHED THEN
    UPDATE SET e.ReplyType = t.ReplyType ,
               e.ReplyContent = t.ReplyContent,
               e.UpdateOn=GETDATE()
WHEN NOT MATCHED THEN
  INSERT (MsgId,ReplyType,ReplyContent) VALUES(t.MsgId,t.ReplyType,t.ReplyContent);";


            try
            {
                using (var db = DbFactory.OpenDbConnection())
                {
                    var model = db.Select <mpmsgreplycontent>(s => s.Id == dto.Id).FirstOrDefault();
                    if (model == null)
                    {
                        dto.CreateOn = DateTime.Now;
                        dto.UpdateOn = DateTime.Now;
                        return(db.Insert <mpmsgreplycontent>(dto) > 0);
                    }
                    else
                    {
                        dto.UpdateOn = DateTime.Now;
                        return(db.Update <mpmsgreplycontent>(dto) > 0);
                        //var parameters = new { ReplyId = dto.ReplyId, MsgId = dto.MsgId, ReplyType = dto.ReplyType, ReplyContent = dto.ReplyContent };
                        //return ExecuteSql(sql, parameters) > 0;
                    }
                }
            }
            catch (Exception ex)
            {
                LogHandler.Error(ex);
                return(false);
            }
        }
Exemple #2
0
        public bool SaveMsgReplyData()
        {
            var mpMsgData = AutoReplyApi.GetCurrentAutoreplyInfo(BaseClass.AppId);

            if (mpMsgData.errcode == 0)
            {
                //初始化关注回复
                if (mpMsgData.add_friend_autoreply_info != null)
                {
                    var sereply = mpMsgData.add_friend_autoreply_info;
                    if (sereply.type.ToString() == "text")
                    {
                        sereply.content = EConvert.DConvertEmojiHtml(sereply.content).UrlEncode().Replace("+", "%20");
                    }
                    MpEventBll.SaveEventInfo(new mpeventreply()
                    {
                        EventType    = WxEventTypeEnum.subscribe.ToString(),
                        EventKey     = "ych_subscribe",
                        ReplyType    = sereply.type.ToString(),
                        ReplyContent = sereply.content,
                    });
                }
                //初始化自动消息回复
                if (mpMsgData.message_default_autoreply_info != null)
                {
                    var autoreply = mpMsgData.message_default_autoreply_info;
                    if (autoreply.type.ToString() == "text")
                    {
                        autoreply.content = EConvert.DConvertEmojiHtml(autoreply.content).UrlEncode().Replace("+", "%20");
                    }
                    MpEventBll.SaveEventInfo(new mpeventreply()
                    {
                        EventType    = WxEventTypeEnum.automsg.ToString(),
                        EventKey     = "ych_automsg",
                        ReplyType    = autoreply.type.ToString(),
                        ReplyContent = autoreply.content
                    });
                }
                //初始化关键字回复
                if (mpMsgData.keyword_autoreply_info?.list != null && mpMsgData.keyword_autoreply_info.list.Count > 0)
                {
                    mpMsgData.keyword_autoreply_info.list.Reverse();
                    foreach (var ruleItem in mpMsgData.keyword_autoreply_info.list)
                    {
                        var dto = new MsgReplyResult
                        {
                            Msg =
                            {
                                RuleName  = ruleItem.rule_name,
                                ReplyMode = ruleItem.reply_mode.ToString()
                            }
                        };
                        if (ruleItem.keyword_list_info != null && ruleItem.keyword_list_info.Count > 0)
                        {
                            foreach (var keyItem in ruleItem.keyword_list_info)
                            {
                                mpmsgreplykey key = new mpmsgreplykey
                                {
                                    KeyVal    = keyItem.content,
                                    MatchMode = keyItem.match_mode.ToString()
                                };
                                dto.Keys.Add(key);
                            }
                        }
                        if (ruleItem.reply_list_info != null && ruleItem.reply_list_info.Count > 0)
                        {
                            foreach (var contentItem in ruleItem.reply_list_info)
                            {
                                if (contentItem.type.ToString() == "text")
                                {
                                    contentItem.content = EConvert.DConvertEmojiHtml(contentItem.content).UrlEncode().Replace("+", "%20");
                                }
                                mpmsgreplycontent content = new mpmsgreplycontent
                                {
                                    ReplyType    = contentItem.type.ToString(),
                                    ReplyContent = contentItem.content
                                };
                                dto.Contents.Add(content);
                            }
                        }
                        MsgReplyBll.SaveMsgRule(dto);
                    }
                }
            }
            return(true);
        }