Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
chr233 committed Oct 16, 2023
1 parent f31ebcc commit 2da8f20
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 50 deletions.
2 changes: 1 addition & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<Project>
<PropertyGroup>
<Version>2.2.3.3</Version>
<Version>2.2.3.4</Version>
</PropertyGroup>

<PropertyGroup>
Expand Down
12 changes: 2 additions & 10 deletions XinjingdailyBot.Interface/Data/IAdvertisePostService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,16 @@ namespace XinjingdailyBot.Interface.Data;
/// </summary>
public interface IAdvertisePostService : IBaseService<AdvertisePosts>
{
/// <summary>
/// 删除旧的广告消息
/// </summary>
/// <param name="advertises"></param>
/// <param name="chatId"></param>
/// <returns></returns>
Task DeleteOldAdPosts(Advertises advertises, long chatId);
/// <summary>
/// 删除旧的广告消息
/// </summary>
/// <param name="advertises"></param>
/// <returns></returns>
Task DeleteOldAdPosts(Advertises advertises);

/// <summary>
/// 是否为第一次发布
/// 取消置顶广告消息
/// </summary>
/// <param name="advertises"></param>
/// <returns></returns>
Task<bool> IsFirstAdPost(Advertises advertises);
Task UnPinOldAdPosts(Advertises advertises);
}
18 changes: 6 additions & 12 deletions XinjingdailyBot.Service/Data/AdvertisePostsService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,37 +52,31 @@ await Updateable(oldPost)
}
}

public async Task DeleteOldAdPosts(Advertises advertises, long chatId)
public async Task UnPinOldAdPosts(Advertises advertises)
{
var oldPosts = await Queryable()
.Where(x => x.AdId == advertises.Id && x.ChatID == chatId && !x.Deleted)
.Where(x => x.AdId == advertises.Id && x.Pined)
.ToListAsync();

foreach (var oldPost in oldPosts)
{
try
{
await _botClient.DeleteMessageAsync(oldPost.ChatID, (int)oldPost.MessageID);
await _botClient.UnpinChatMessageAsync(oldPost.ChatID, (int)oldPost.MessageID);
}
catch (Exception ex)
{
_logger.LogError(ex, "删除消息失败");
_logger.LogError(ex, "取消置顶消息失败");
await Task.Delay(500);
}
finally
{
oldPost.Deleted = true;
oldPost.Pined = false;
oldPost.ModifyAt = DateTime.Now;
await Updateable(oldPost)
.UpdateColumns(static x => new { x.Deleted, x.ModifyAt })
.UpdateColumns(static x => new { x.Pined, x.ModifyAt })
.ExecuteCommandAsync();
}
}
}

public async Task<bool> IsFirstAdPost(Advertises advertises)
{
var post = await Queryable().Where(x => x.AdId == advertises.Id).FirstAsync();
return post == null;
}
}
22 changes: 1 addition & 21 deletions XinjingdailyBot.Service/Data/AdvertiseService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,27 +19,6 @@ public AdvertiseService(
_advertisePostService = advertisePostService;
}

public async Task DisableExpiredAdvertise()
{
var ads = await Queryable()
.Where(static x => x.Enable)
.OrderBy(static x => x.Weight)
.ToListAsync();

var now = DateTime.Now;
//检查是否过期
foreach (var ad in ads)
{
if ((ad.MaxShowCount > 0 && ad.ShowCount >= ad.MaxShowCount) ||
now >= ad.ExpiredAt || ad.Weight == 0)
{
ad.Enable = false;
await Updateable(ad).UpdateColumns(static x => new { x.Enable }).ExecuteCommandAsync();
await _advertisePostService.DeleteOldAdPosts(ad);
}
}
}

public async Task<Advertises?> GetPostableAdvertise()
{
var ads = await Queryable()
Expand All @@ -56,6 +35,7 @@ public async Task DisableExpiredAdvertise()
{
ad.Enable = false;
await Updateable(ad).UpdateColumns(static x => new { x.Enable }).ExecuteCommandAsync();
//删除过期广告
await _advertisePostService.DeleteOldAdPosts(ad);
}
}
Expand Down
10 changes: 4 additions & 6 deletions XinjingdailyBot.Tasks/PostAdvertiseTask.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ namespace XinjingdailyBot.Tasks;
/// <summary>
/// 发布广告
/// </summary>
[Job("0 0 9 * * ?")]
[Job("0 0 10 * * ?")]
internal class PostAdvertiseTask : IJob
{
private readonly ILogger<PostAdvertiseTask> _logger;
Expand Down Expand Up @@ -51,6 +51,9 @@ public async Task Execute(IJobExecutionContext context)
return;
}

//取消置顶旧的广告
await _advertisePostService.UnPinOldAdPosts(ad);

var channelService = _serviceProvider.GetRequiredService<IChannelService>();

var operates = new List<(EAdMode, ChatId)>
Expand All @@ -75,8 +78,6 @@ public async Task Execute(IJobExecutionContext context)

try
{
var isFirst = await _advertisePostService.IsFirstAdPost(ad);

var msgId = await _botClient.CopyMessageAsync(chatId, ad.ChatID, (int)ad.MessageID, disableNotification: true);

var kbd = _markupHelperService.AdvertiseExternalLinkButton(ad.ExternalLink, ad.ExternalLinkName);
Expand All @@ -85,9 +86,6 @@ public async Task Execute(IJobExecutionContext context)
await _botClient.EditMessageReplyMarkupAsync(chat, msgId.Id, kbd);
}

//删除旧的广告
await _advertisePostService.DeleteOldAdPosts(ad, chatId);

var adpost = new AdvertisePosts {
AdId = ad.Id,
ChatID = chatId,
Expand Down

0 comments on commit 2da8f20

Please sign in to comment.