From df19a6d58ef1d94e11c4dbfd76074e0e54d3d32c Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期五, 05 九月 2025 10:59:32 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.CommonServer.Application/CodeUrls/Queries/CodeUrlQueryHandler.cs |   43 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 43 insertions(+), 0 deletions(-)

diff --git a/FlexJobApi.CommonServer.Application/CodeUrls/Queries/CodeUrlQueryHandler.cs b/FlexJobApi.CommonServer.Application/CodeUrls/Queries/CodeUrlQueryHandler.cs
new file mode 100644
index 0000000..5848b3d
--- /dev/null
+++ b/FlexJobApi.CommonServer.Application/CodeUrls/Queries/CodeUrlQueryHandler.cs
@@ -0,0 +1,43 @@
+锘縰sing FlexJobApi.Core;
+using Furion.DatabaseAccessor;
+using MediatR;
+using Microsoft.EntityFrameworkCore;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.CommonServer.Application
+{
+    /// <summary>
+    /// 鏌ヨ缂栧彿鍦板潃
+    /// </summary>
+    /// <param name="rep"></param>
+    public class CodeUrlQueryHandler(
+            IRepository<CodeUrl> rep
+        ) :
+        IRequestHandler<GetCodeUrlQuery, string?>
+    {
+        private readonly IRepository<CodeUrl> rep = rep;
+
+        /// <summary>
+        /// 鏌ヨ缂栧彿鍦板潃
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task<string?> Handle(GetCodeUrlQuery request, CancellationToken cancellationToken)
+        {
+            var now = DateTime.Now;
+            return await rep.AsQueryable().AsNoTracking()
+                .Where(it =>
+                    it.Scene == request.Scene
+                    && it.Code == request.Code
+                    && (it.ExpiredTime == null
+                    || it.ExpiredTime > now))
+                .Select(it => it.Url)
+                .FirstOrDefaultAsync();
+        }
+    }
+}

--
Gitblit v1.9.1