/// <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()); }
/// <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); }