fix
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 4m27s
Docker Build & Deploy / Deploy to Production (push) Successful in 7s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
Docker Build & Deploy / WeChat Notification (push) Successful in 1s

This commit is contained in:
SunCheng
2026-02-11 13:00:01 +08:00
parent ca3e929770
commit 51172e8c5a
88 changed files with 10076 additions and 142 deletions

View File

@@ -0,0 +1,36 @@
using Application;
using Application.Dto;
using Microsoft.AspNetCore.Authorization;
namespace WebApi.Controllers;
/// <summary>
/// 节假日控制器
/// </summary>
[ApiController]
[Route("api/[controller]/[action]")]
[AllowAnonymous] // 允许匿名访问
public class HolidayController(HolidayApplication holidayApplication) : ControllerBase
{
/// <summary>
/// 获取指定年月的节假日数据
/// </summary>
[HttpGet]
public async Task<BaseResponse<List<HolidayDto>>> GetMonthHolidays([FromQuery] int year, [FromQuery] int month)
{
var holidays = await holidayApplication.GetMonthHolidaysAsync(year, month);
return holidays.Ok();
}
/// <summary>
/// 手动同步节假日数据
/// </summary>
[HttpPost]
public async Task<BaseResponse<bool>> SyncHolidays([FromQuery] int year)
{
var result = await holidayApplication.SyncHolidaysAsync(year);
return result
? result.Ok()
: BaseResponse<bool>.Fail("同步失败");
}
}

View File

@@ -77,6 +77,17 @@ public static class Expand
.WithIdentity("CategoryIconGenerationTrigger")
.WithCronSchedule("0 0 0 * * ?") // 每24小时执行一次
.WithDescription("每24小时扫描并为无图标分类生成SVG图标"));
// 配置节假日同步任务 - 每10天凌晨3点执行
var holidaySyncJobKey = new JobKey("HolidaySyncJob");
q.AddJob<HolidaySyncJob>(opts => opts
.WithIdentity(holidaySyncJobKey)
.WithDescription("节假日同步任务"));
q.AddTrigger(opts => opts
.ForJob(holidaySyncJobKey)
.WithIdentity("HolidaySyncTrigger")
.WithCronSchedule("0 0 3 */10 * ?") // 每10天凌晨3点执行
.WithDescription("每10天同步节假日数据"));
});
// 添加 Quartz Hosted Service