src/SSCMS.Core/Services/WxManager.Reply.cs
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using SSCMS.Enums;
using SSCMS.Models;
using SSCMS.Utils;
namespace SSCMS.Core.Services
{
////群发媒体文件时传入mediaId,群发文本消息时传入content,群发卡券时传入cardId
public partial class WxManager
{
private static bool IsMatch(WxReplyKeyword keyword, string content)
{
if (keyword.Exact)
{
return StringUtils.EqualsIgnoreCase(keyword.Text, content);
}
return StringUtils.ContainsIgnoreCase(keyword.Text, content) ||
StringUtils.ContainsIgnoreCase(content, keyword.Text);
}
public async Task<List<WxReplyMessage>> GetMessagesAsync(int siteId, string content, int defaultMessageId)
{
List<WxReplyMessage> messages = null;
var keywords = await _wxReplyKeywordRepository.GetKeywordsAsync(siteId);
var keyword = keywords.FirstOrDefault(x => IsMatch(x, content));
if (keyword != null)
{
var rule = await _wxReplyRuleRepository.GetAsync(keyword.RuleId);
if (rule != null)
{
var allMessages = await GetMessagesAsync(siteId, keyword.RuleId);
if (rule.Random)
{
var index = StringUtils.GetRandomInt(0, allMessages.Count - 1);
messages = new List<WxReplyMessage>
{
allMessages[index]
};
}
else
{
messages = allMessages;
}
}
}
else if (defaultMessageId > 0)
{
var message = await GetMessageAsync(siteId, defaultMessageId);
if (message != null)
{
messages = new List<WxReplyMessage>
{
message
};
}
}
后面还有 81 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
