Esempio n. 1
0
        public static bool SaveKey(mpmsgreplykey keyItem)
        {
            string sql = @"MERGE INTO MpMsgReplyKeys e
USING ( SELECT @KeyId AS KeyId, @MsgId AS MsgId,@KeyVal AS KeyVal,@MatchMode AS MatchMode) t
ON t.KeyId = e.KeyId
WHEN MATCHED THEN
    UPDATE SET e.KeyVal = t.KeyVal ,
               e.MatchMode = t.MatchMode,
               e.UpdateOn=GETDATE()
WHEN NOT MATCHED THEN
  INSERT (MsgId,KeyVal,MatchMode) VALUES(t.MsgId,t.KeyVal,t.MatchMode);";

            //SqlParameter[] parameters = new SqlParameter[]
            //        {
            //            new SqlParameter("@KeyId",keyItem.KeyId),
            //            new SqlParameter("@MsgId",keyItem.MsgId),
            //            new SqlParameter("@KeyVal",keyItem.KeyVal),
            //            new SqlParameter("@MatchMode",keyItem.MatchMode)
            //        };


            try
            {
                using (var db = DbFactory.OpenDbConnection())
                {
                    var model = db.Select <mpmsgreplykey>(s => s.Id == keyItem.Id).FirstOrDefault();
                    if (model == null)
                    {
                        keyItem.CreateOn = DateTime.Now;
                        keyItem.UpdateOn = DateTime.Now;
                        return(db.Insert <mpmsgreplykey>(keyItem) > 0);
                    }
                    else
                    {
                        keyItem.UpdateOn = DateTime.Now;
                        return(db.Update <mpmsgreplykey>(keyItem) > 0);
                        //var parameters = new { KeyId = keyItem.KeyId, MsgId = keyItem.MsgId, KeyVal = keyItem.KeyVal, MatchMode = keyItem.MatchMode };
                        //return ExecuteSql(sql, parameters) > 0;
                    }
                }
            }
            catch (Exception ex)
            {
                LogHandler.Error(ex);
                return(false);
            }
        }
Esempio n. 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);
        }