Example #1
0
        /// <summary>
        /// 获取渠道关键词回复内容
        /// </summary>
        /// <param name="channelId">渠道id</param>
        /// <param name="keyword">关键词</param>
        /// <param name="preKeywordContextId">上一关键词id</param>
        /// <returns></returns>
        public static async Task <KeywordReplyDetailEntity> GetKeywordReplyAsync(int channelId, string keyword, int preKeywordContextId = -1)
        {
            try
            {
                var redisKey         = string.Format("{0}_{1}_{2}", channelId, keyword, preKeywordContextId);
                var replyDetailCache = await RedisHelper.StringGetAsync <KeywordReplyDetailEntity>(redisKey);

                if (replyDetailCache == null || replyDetailCache.KeywordContextId <= 0)
                {
                    var sql             = @"SELECT a.* FROM KeywordReplyDetail a
                                        JOIN ChannelKeywordRelation b ON a.KeywordContextId=b.KeywordContextId
                                        WHERE b.ChannelId=@ChannelId
                                        ORDER BY a.LastModifyTime DESC";
                    var keywordEntities = await DapperDBHelper.QueryAsync <KeywordReplyDetailEntity>(sql, new { ChannelId = channelId });

                    if (keywordEntities.Count() > 0)
                    {
                        replyDetailCache = keywordEntities.SingleOrDefault();
                        var setResult = await RedisHelper.StringSetAsync(redisKey, replyDetailCache, TimeSpan.FromHours(1.0));
                    }
                }
                return(replyDetailCache);
            }
            catch (Exception ex)
            {
                ex.WriteExceptionLog("获取渠道关键词回复内容出错");
            }
            return(new KeywordReplyDetailEntity());
        }
Example #2
0
        /// <summary>
        /// 查询方法
        /// </summary>
        /// <param name="condition"></param>
        /// <param name="columns"></param>
        /// <param name="isOr"></param>
        /// <param name="commandTimeout"></param>
        /// <returns></returns>
        public async Task <IEnumerable <T> > QueryListAsync(dynamic condition, string columns = "*", bool isOr = false, int?commandTimeout = null)
        {
            object obj;
            var    sql = BuildQuerySql(condition, out obj, columns, isOr);

            var result = await DapperDBHelper.QueryAsync <T>(sql, obj, commandTimeout);

            return(result);
        }