From 7620ece055c34a13c868d846f4f34cd0a0fb3c4d Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期四, 07 八月 2025 18:26:28 +0800
Subject: [PATCH] feat:任务开发

---
 FlexJobApi.Core/Enums/Tasks/EnumTaskUserSubmitCheckReceiveStatus.cs             |   31 ++
 FlexJobApi.Core/Models/Main/Tasks/Commands/SaveTaskInfoCommand.cs               |   10 
 FlexJobApi.Core/Models/Main/Tasks/Commands/SetTaskInfoRecommendStatusCommand.cs |   31 ++
 FlexJobApi.Core/Entities/Tasks/TaskInfo.cs                                      |   25 ++
 FlexJobApi.Core/Models/Main/Tasks/Queries/GetTaskInfosQuery.cs                  |   54 ++++
 FlexJobApi.Core/Models/Main/Tasks/Repositories/TaskInfoRepository.cs            |    1 
 FlexJobApi.Core/Enums/Tasks/EnumTaskSettlementStatus.cs                         |   23 ++
 FlexJobApi.Application/Tasks/Queries/TaskInfoQueryHandler.cs                    |   73 +++++
 FlexJobApi.Core/Enums/Tasks/EnumTaskCheckReceiveStatus.cs                       |   23 ++
 FlexJobApi.Application/FlexJobApi.Application.xml                               |   16 +
 FlexJobApi.Core/Models/Main/Tasks/Queries/GetTaskInfoQuery.cs                   |   22 +
 FlexJobApi.Core/Enums/Tasks/EnumTaskUserSettlementStatus.cs                     |   31 ++
 FlexJobApi.Core/Enums/Tasks/EnumTaskRecommendStatus.cs                          |   23 ++
 FlexJobApi.Core/Models/Main/Tasks/Commands/SetTaskInfoReleaseStatusCommand.cs   |   31 ++
 FlexJobApi.Core/FlexJobApi.Core.xml                                             |  166 +++++++++++++++
 FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs                 |   47 ++++
 16 files changed, 593 insertions(+), 14 deletions(-)

diff --git a/FlexJobApi.Application/FlexJobApi.Application.xml b/FlexJobApi.Application/FlexJobApi.Application.xml
index 0874d90..280b148 100644
--- a/FlexJobApi.Application/FlexJobApi.Application.xml
+++ b/FlexJobApi.Application/FlexJobApi.Application.xml
@@ -145,6 +145,22 @@
             <returns></returns>
             <exception cref="T:System.NotImplementedException"></exception>
         </member>
+        <member name="M:FlexJobApi.Application.TaskInfoCommandHandler.Handle(FlexJobApi.Core.SetTaskInfoReleaseStatusCommand,System.Threading.CancellationToken)">
+            <summary>
+            璁剧疆浠诲姟鍙戝竷鐘舵��
+            </summary>
+            <param name="request"></param>
+            <param name="cancellationToken"></param>
+            <returns></returns>
+        </member>
+        <member name="M:FlexJobApi.Application.TaskInfoCommandHandler.Handle(FlexJobApi.Core.SetTaskInfoRecommendStatusCommand,System.Threading.CancellationToken)">
+            <summary>
+            璁剧疆浠诲姟鏄惁鎺ㄨ崘
+            </summary>
+            <param name="request"></param>
+            <param name="cancellationToken"></param>
+            <returns></returns>
+        </member>
         <member name="T:FlexJobApi.Application.TaskInfoQueryHandler">
             <summary>
             浠诲姟鏌ヨ澶勭悊鍣�
diff --git a/FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs b/FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs
index b55ad0e..63e63bf 100644
--- a/FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs
+++ b/FlexJobApi.Application/Tasks/Commands/TaskInfoCommandHandler.cs
@@ -17,8 +17,10 @@
     /// </summary>
     public class TaskInfoCommandHandler(
             IRepository<TaskInfo> rep
-        )
-        : IRequestHandler<SaveTaskInfoCommand, Guid>
+        ) :
+        IRequestHandler<SaveTaskInfoCommand, Guid>,
+        IRequestHandler<SetTaskInfoReleaseStatusCommand, int>,
+        IRequestHandler<SetTaskInfoRecommendStatusCommand, int>
     {
         private readonly IRepository<TaskInfo> rep = rep;
 
@@ -34,7 +36,8 @@
         {
             var logier = JwtUtils.GetCurrentLogier();
             return await request.SaveData<TaskInfo, SaveTaskInfoCommand>(
-                 q => {
+                 q =>
+                 {
                      q = TaskInfoRepository.GetQueryable(rep)
                           .Include(it => it.Benefits)
                           .Include(it => it.CredentialLimits);
@@ -65,6 +68,44 @@
                  cancellationToken);
         }
 
+        /// <summary>
+        /// 璁剧疆浠诲姟鍙戝竷鐘舵��
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task<int> Handle(SetTaskInfoReleaseStatusCommand request, CancellationToken cancellationToken)
+        {
+            var entities = await TaskInfoRepository.GetQueryable(rep)
+                .Where(it => request.Ids.Contains(it.Id))
+                .ToListAsync();
+            foreach (var entity in entities)
+            {
+                entity.ReleaseStatus = request.ReleaseStatus;
+            }
+            await rep.UpdateAsync(entities);
+            return entities.Count;
+        }
+
+        /// <summary>
+        /// 璁剧疆浠诲姟鏄惁鎺ㄨ崘
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task<int> Handle(SetTaskInfoRecommendStatusCommand request, CancellationToken cancellationToken)
+        {
+            var entities = await TaskInfoRepository.GetQueryable(rep)
+                .Where(it => request.Ids.Contains(it.Id))
+                .ToListAsync();
+            foreach (var entity in entities)
+            {
+                entity.RecommendStatus = request.RecommendStatus;
+            }
+            await rep.UpdateAsync(entities);
+            return entities.Count;
+        }
+
         private async Task BuildCode(TaskInfo entity)
         {
             entity.Code = $"{DateTime.Now:yyyyMMddHHmm}{new Random(IDGen.NextID().GetHashCode()).Next(1000, 9999)}";
diff --git a/FlexJobApi.Application/Tasks/Queries/TaskInfoQueryHandler.cs b/FlexJobApi.Application/Tasks/Queries/TaskInfoQueryHandler.cs
index 7b635b7..fdc31e5 100644
--- a/FlexJobApi.Application/Tasks/Queries/TaskInfoQueryHandler.cs
+++ b/FlexJobApi.Application/Tasks/Queries/TaskInfoQueryHandler.cs
@@ -30,12 +30,20 @@
         /// <param name="request"></param>
         /// <param name="cancellationToken"></param>
         /// <returns></returns>
-        public Task<GetTaskInfoQueryResult> Handle(GetTaskInfoQuery request, CancellationToken cancellationToken)
+        public async Task<GetTaskInfoQueryResult> Handle(GetTaskInfoQuery request, CancellationToken cancellationToken)
         {
-            return TaskInfoRepository.GetQueryable(rep)
+            var model = await TaskInfoRepository.GetQueryable(rep)
                 .Where(it => it.Id == request.Id)
                 .ProjectToType<GetTaskInfoQueryResult>()
                 .FirstOrDefaultAsync(cancellationToken);
+            model.EnterpriseName = await rep.Change<Enterprise>().AsQueryable().AsNoTracking()
+                .Where(it => it.EnterpriseAuthId == model.EnterpriseId)
+                .Select(it => it.EnterpriseAuth.EnterpriseName)
+                .FirstOrDefaultAsync();
+            model.TaskCount = await rep.AsQueryable().AsNoTracking()
+                .Where(it => it.EnterpriseId == model.EnterpriseId && it.ReleaseStatus == EnumTaskReleaseStatus.Stopped)
+                .CountAsync();
+            return model;
         }
 
         /// <summary>
@@ -46,12 +54,61 @@
         /// <returns></returns>
         public Task<PagedListQueryResult<GetTaskInfosQueryResultItem>> Handle(GetTaskInfosQuery request, CancellationToken cancellationToken)
         {
-            return request.PageModel.GetPagedListAsync<TaskInfo, GetTaskInfosQueryResultItem>(
-                q =>
-                {
-                    q = TaskInfoRepository.GetQueryable(rep);
-                    return q;
-                });
+            var q = TaskInfoRepository.GetQueryable(rep);
+            if (request.Keywords.IsNotNull())
+            {
+                q = q.Where(it => it.Name.Contains(request.Keywords));
+            }
+            if (request.Time.HasValue)
+            {
+                q = q.Where(it => it.BeginTime <= request.Time && request.Time <= it.EndTime);
+            }
+            if (request.CityCode.IsNotNull())
+            {
+                q = q.Where(it => it.CityCode == request.CityCode);
+            }
+            if (request.SettlementCycle.HasValue)
+            {
+                q = q.Where(it => it.SettlementCycle == request.SettlementCycle);
+            }
+            if (request.BenefitCodes.IsNotNull())
+            {
+                q = q.Where(it => it.Benefits.Any(b => request.BenefitCodes.Contains(b.BenefitCode)));
+            }
+            if (request.GenderLimit.HasValue)
+            {
+                q = q.Where(it => it.GenderLimit == request.GenderLimit);
+            }
+            if (request.Status.HasValue)
+            {
+                q = q.Where(it => it.Status == request.Status);
+            }
+            if (request.ReleaseStatus.HasValue)
+            {
+                q = q.Where(it => it.ReleaseStatus == request.ReleaseStatus);
+            }
+            if (request.RecommendStatus.HasValue)
+            {
+                q = q.Where(it => it.RecommendStatus == request.RecommendStatus);
+            }
+            var s = from t in q
+                    join tu in rep.Change<TaskInfoUser>().AsQueryable().AsNoTracking() on t.Id equals tu.TaskInfoId into tug
+                    select new GetTaskInfosQueryResultItem
+                    {
+                        Id = t.Id,
+                        Name = t.Name,
+                        Code = t.Code,
+                        BillingMethod = t.BillingMethod,
+                        ServiceFee = t.ServiceFee,
+                        SettlementCycle = t.SettlementCycle,
+                        GenderLimit = t.GenderLimit,
+                        UserCount = tug.Count(),
+                        Status = t.Status,
+                        BeginTime = t.BeginTime,
+                        EndTime = t.EndTime,
+                        ReleaseStatus = t.ReleaseStatus
+                    };
+            return request.PageModel.GetPagedListAsync(s, cancellationToken);
         }
     }
 }
diff --git a/FlexJobApi.Core/Entities/Tasks/TaskInfo.cs b/FlexJobApi.Core/Entities/Tasks/TaskInfo.cs
index e92201f..d5a480a 100644
--- a/FlexJobApi.Core/Entities/Tasks/TaskInfo.cs
+++ b/FlexJobApi.Core/Entities/Tasks/TaskInfo.cs
@@ -108,6 +108,16 @@
         public string Address { get; set; }
 
         /// <summary>
+        /// 缁忓害
+        /// </summary>
+        public decimal? Longitude { get; set; }
+
+        /// <summary>
+        /// 绾害
+        /// </summary>
+        public decimal? Latitude { get; set; }
+
+        /// <summary>
         /// 浠诲姟寮�濮嬫椂闂�
         /// </summary>
         public DateTime BeginTime { get; set; }
@@ -127,6 +137,21 @@
         /// </summary>
         public EnumTaskReleaseStatus ReleaseStatus { get; set; }
 
+        /// <summary>
+        /// 楠屾敹鐘舵��
+        /// </summary>
+        public EnumTaskCheckReceiveStatus? CheckReceiveStatus { get; set; }
+
+        /// <summary>
+        /// 缁撶畻鐘舵��
+        /// </summary>
+        public EnumTaskSettlementStatus? SettlementStatus { get; set; }
+
+        /// <summary>
+        /// 鎺ㄨ崘鐘舵��
+        /// </summary>
+        public EnumTaskRecommendStatus RecommendStatus { get; set; }
+
         public void Configure(EntityTypeBuilder<TaskInfo> entityBuilder, DbContext dbContext, Type dbContextLocator)
         {
             entityBuilder
diff --git a/FlexJobApi.Core/Enums/Tasks/EnumTaskCheckReceiveStatus.cs b/FlexJobApi.Core/Enums/Tasks/EnumTaskCheckReceiveStatus.cs
new file mode 100644
index 0000000..8fb8d6a
--- /dev/null
+++ b/FlexJobApi.Core/Enums/Tasks/EnumTaskCheckReceiveStatus.cs
@@ -0,0 +1,23 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 浠诲姟缁撶畻鐘舵��
+    /// </summary>
+    public enum EnumTaskCheckReceiveStatus
+    {
+        /// <summary>
+        /// 寰呴獙鏀�
+        /// </summary>
+        Wait = 10,
+        /// <summary>
+        /// 宸查獙鏀�
+        /// </summary>
+        Completed = 30
+    }
+}
diff --git a/FlexJobApi.Core/Enums/Tasks/EnumTaskRecommendStatus.cs b/FlexJobApi.Core/Enums/Tasks/EnumTaskRecommendStatus.cs
new file mode 100644
index 0000000..72773e1
--- /dev/null
+++ b/FlexJobApi.Core/Enums/Tasks/EnumTaskRecommendStatus.cs
@@ -0,0 +1,23 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 浠诲姟鎺ㄨ崘鐘舵��
+    /// </summary>
+    public enum EnumTaskRecommendStatus
+    {
+        /// <summary>
+        /// 鏈帹鑽�
+        /// </summary>
+        No = 10,
+        /// <summary>
+        /// 宸叉帹鑽�
+        /// </summary>
+        Yes = 20
+    }
+}
diff --git a/FlexJobApi.Core/Enums/Tasks/EnumTaskSettlementStatus.cs b/FlexJobApi.Core/Enums/Tasks/EnumTaskSettlementStatus.cs
new file mode 100644
index 0000000..0745d45
--- /dev/null
+++ b/FlexJobApi.Core/Enums/Tasks/EnumTaskSettlementStatus.cs
@@ -0,0 +1,23 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 浠诲姟缁撶畻鐘舵��
+    /// </summary>
+    public enum EnumTaskSettlementStatus
+    {
+        /// <summary>
+        /// 寰呯粨绠�
+        /// </summary>
+        Wait = 10,
+        /// <summary>
+        /// 宸茬粨绠�
+        /// </summary>
+        Completed = 30,
+    }
+}
diff --git a/FlexJobApi.Core/Enums/Tasks/EnumTaskUserSettlementStatus.cs b/FlexJobApi.Core/Enums/Tasks/EnumTaskUserSettlementStatus.cs
new file mode 100644
index 0000000..2c5910b
--- /dev/null
+++ b/FlexJobApi.Core/Enums/Tasks/EnumTaskUserSettlementStatus.cs
@@ -0,0 +1,31 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 浠诲姟鐢ㄦ埛缁撶畻鐘舵��
+    /// </summary>
+    public enum EnumTaskUserSettlementStatus
+    {
+        /// <summary>
+        /// 寰呯粨绠�
+        /// </summary>
+        Wait = 10,
+        /// <summary>
+        /// 缁撶畻涓�
+        /// </summary>
+        InProcess = 20,
+        /// <summary>
+        /// 宸茬粨绠�
+        /// </summary>
+        Completed = 30,
+        /// <summary>
+        /// 缁撶畻澶辫触
+        /// </summary>
+        Fail = 40
+    }
+}
diff --git a/FlexJobApi.Core/Enums/Tasks/EnumTaskUserSubmitCheckReceiveStatus.cs b/FlexJobApi.Core/Enums/Tasks/EnumTaskUserSubmitCheckReceiveStatus.cs
new file mode 100644
index 0000000..bc3fc8b
--- /dev/null
+++ b/FlexJobApi.Core/Enums/Tasks/EnumTaskUserSubmitCheckReceiveStatus.cs
@@ -0,0 +1,31 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 浠诲姟楠屾敹鐘舵��
+    /// </summary>
+    public enum EnumTaskUserSubmitCheckReceiveStatus
+    {
+        /// <summary>
+        /// 寰呮彁浜�
+        /// </summary>
+        Submit = 10,
+        /// <summary>
+        /// 寰呴獙鏀�
+        /// </summary>
+        Wait = 20,
+        /// <summary>
+        /// 楠屾敹閫氳繃
+        /// </summary>
+        Success = 30,
+        /// <summary>
+        /// 楠屾敹鏈�氳繃
+        /// </summary>
+        Fail = 40
+    }
+}
diff --git a/FlexJobApi.Core/FlexJobApi.Core.xml b/FlexJobApi.Core/FlexJobApi.Core.xml
index 97f842d..8c732bc 100644
--- a/FlexJobApi.Core/FlexJobApi.Core.xml
+++ b/FlexJobApi.Core/FlexJobApi.Core.xml
@@ -644,6 +644,21 @@
             鍙戝竷鐘舵��
             </summary>
         </member>
+        <member name="P:FlexJobApi.Core.TaskInfo.CheckReceiveStatus">
+            <summary>
+            楠屾敹鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.TaskInfo.SettlementStatus">
+            <summary>
+            缁撶畻鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.TaskInfo.RecommendStatus">
+            <summary>
+            鎺ㄨ崘鐘舵��
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.TaskInfoBenefit">
             <summary>
             浠诲姟绂忓埄
@@ -1949,6 +1964,36 @@
             鏃ョ粨
             </summary>
         </member>
+        <member name="T:FlexJobApi.Core.EnumTaskCheckReceiveStatus">
+            <summary>
+            浠诲姟缁撶畻鐘舵��
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumTaskCheckReceiveStatus.Wait">
+            <summary>
+            寰呴獙鏀�
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumTaskCheckReceiveStatus.Completed">
+            <summary>
+            宸查獙鏀�
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.EnumTaskRecommendStatus">
+            <summary>
+            浠诲姟鎺ㄨ崘鐘舵��
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumTaskRecommendStatus.No">
+            <summary>
+            鏈帹鑽�
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumTaskRecommendStatus.Yes">
+            <summary>
+            宸叉帹鑽�
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.EnumTaskReleaseStatus">
             <summary>
             浠诲姟鍙戝竷鐘舵��
@@ -1962,6 +2007,21 @@
         <member name="F:FlexJobApi.Core.EnumTaskReleaseStatus.Stopped">
             <summary>
             宸插仠姝�
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.EnumTaskSettlementStatus">
+            <summary>
+            浠诲姟缁撶畻鐘舵��
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumTaskSettlementStatus.Wait">
+            <summary>
+            寰呯粨绠�
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumTaskSettlementStatus.Completed">
+            <summary>
+            宸茬粨绠�
             </summary>
         </member>
         <member name="T:FlexJobApi.Core.EnumTaskStatus">
@@ -1999,6 +2059,31 @@
             宸茶阿缁�
             </summary>
         </member>
+        <member name="T:FlexJobApi.Core.EnumTaskUserSettlementStatus">
+            <summary>
+            浠诲姟鐢ㄦ埛缁撶畻鐘舵��
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumTaskUserSettlementStatus.Wait">
+            <summary>
+            寰呯粨绠�
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumTaskUserSettlementStatus.InProcess">
+            <summary>
+            缁撶畻涓�
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumTaskUserSettlementStatus.Completed">
+            <summary>
+            宸茬粨绠�
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumTaskUserSettlementStatus.Fail">
+            <summary>
+            缁撶畻澶辫触
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.EnumTaskUserSignContractStatus">
             <summary>
             浠诲姟鐢ㄦ埛绛剧害鐘舵��
@@ -2017,6 +2102,31 @@
         <member name="F:FlexJobApi.Core.EnumTaskUserSignContractStatus.Refuse">
             <summary>
             宸叉嫆绛�
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.EnumTaskUserSubmitCheckReceiveStatus">
+            <summary>
+            浠诲姟楠屾敹鐘舵��
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumTaskUserSubmitCheckReceiveStatus.Submit">
+            <summary>
+            寰呮彁浜�
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumTaskUserSubmitCheckReceiveStatus.Wait">
+            <summary>
+            寰呴獙鏀�
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumTaskUserSubmitCheckReceiveStatus.Success">
+            <summary>
+            楠屾敹閫氳繃
+            </summary>
+        </member>
+        <member name="F:FlexJobApi.Core.EnumTaskUserSubmitCheckReceiveStatus.Fail">
+            <summary>
+            楠屾敹鏈�氳繃
             </summary>
         </member>
         <member name="T:FlexJobApi.Core.EnumClientType">
@@ -2765,6 +2875,36 @@
             浠诲姟缁撴潫鏃堕棿
             </summary>
         </member>
+        <member name="T:FlexJobApi.Core.SetTaskInfoRecommendStatusCommand">
+            <summary>
+            璁剧疆浠诲姟鏄惁鎺ㄨ崘
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SetTaskInfoRecommendStatusCommand.Ids">
+            <summary>
+            Id
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SetTaskInfoRecommendStatusCommand.RecommendStatus">
+            <summary>
+            鎺ㄨ崘鐘舵��
+            </summary>
+        </member>
+        <member name="T:FlexJobApi.Core.SetTaskInfoReleaseStatusCommand">
+            <summary>
+            璁剧疆浠诲姟鍙戝竷鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SetTaskInfoReleaseStatusCommand.Ids">
+            <summary>
+            Id
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.SetTaskInfoReleaseStatusCommand.ReleaseStatus">
+            <summary>
+            鍙戝竷鐘舵��
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.GetTaskInfoQuery">
             <summary>
             鏌ヨ浠诲姟璇︽儏
@@ -2895,9 +3035,19 @@
             鍙戝竷鐘舵��
             </summary>
         </member>
+        <member name="P:FlexJobApi.Core.GetTaskInfosQuery.RecommendStatus">
+            <summary>
+            鎺ㄨ崘鐘舵��
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.GetTaskInfosQueryResultItem">
             <summary>
             鏌ヨ浠诲姟鍒嗛〉鍒楄〃-缁撴灉-椤�
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetTaskInfosQueryResultItem.Id">
+            <summary>
+            Id
             </summary>
         </member>
         <member name="P:FlexJobApi.Core.GetTaskInfosQueryResultItem.Name">
@@ -2955,6 +3105,21 @@
             鍙戝竷鐘舵��
             </summary>
         </member>
+        <member name="P:FlexJobApi.Core.GetTaskInfosQueryResultItem.CheckReceiveStatus">
+            <summary>
+            楠屾敹鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetTaskInfosQueryResultItem.SettlementStatus">
+            <summary>
+            缁撶畻鐘舵��
+            </summary>
+        </member>
+        <member name="P:FlexJobApi.Core.GetTaskInfosQueryResultItem.RecommendStatus">
+            <summary>
+            鎺ㄨ崘鐘舵��
+            </summary>
+        </member>
         <member name="T:FlexJobApi.Core.TaskInfoRepository">
             <summary>
             浠诲姟浠撳簱
@@ -2965,7 +3130,6 @@
             鑾峰彇浠诲姟鏌ヨ
             </summary>
             <param name="rep"></param>
-            <param name="query"></param>
             <param name="logier"></param>
             <returns></returns>
         </member>
diff --git a/FlexJobApi.Core/Models/Main/Tasks/Commands/SaveTaskInfoCommand.cs b/FlexJobApi.Core/Models/Main/Tasks/Commands/SaveTaskInfoCommand.cs
index 4f6c983..abdc8b9 100644
--- a/FlexJobApi.Core/Models/Main/Tasks/Commands/SaveTaskInfoCommand.cs
+++ b/FlexJobApi.Core/Models/Main/Tasks/Commands/SaveTaskInfoCommand.cs
@@ -93,6 +93,16 @@
         public string Address { get; set; }
 
         /// <summary>
+        /// 缁忓害
+        /// </summary>
+        public decimal? Longitude { get; set; }
+
+        /// <summary>
+        /// 绾害
+        /// </summary>
+        public decimal? Latitude { get; set; }
+
+        /// <summary>
         /// 浠诲姟寮�濮嬫椂闂�
         /// </summary>
         [Required]
diff --git a/FlexJobApi.Core/Models/Main/Tasks/Commands/SetTaskInfoRecommendStatusCommand.cs b/FlexJobApi.Core/Models/Main/Tasks/Commands/SetTaskInfoRecommendStatusCommand.cs
new file mode 100644
index 0000000..dddc701
--- /dev/null
+++ b/FlexJobApi.Core/Models/Main/Tasks/Commands/SetTaskInfoRecommendStatusCommand.cs
@@ -0,0 +1,31 @@
+锘縰sing MediatR;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 璁剧疆浠诲姟鏄惁鎺ㄨ崘
+    /// </summary>
+    [Resource([EnumResourceController.Task])]
+    public class SetTaskInfoRecommendStatusCommand : IRequest<int>
+    {
+        public SetTaskInfoRecommendStatusCommand()
+        {
+            Ids = [];
+        }
+
+        /// <summary>
+        /// Id
+        /// </summary>
+        public List<Guid> Ids { get; set; }
+
+        /// <summary>
+        /// 鎺ㄨ崘鐘舵��
+        /// </summary>
+        public EnumTaskRecommendStatus RecommendStatus { get; set; }
+    }
+}
diff --git a/FlexJobApi.Core/Models/Main/Tasks/Commands/SetTaskInfoReleaseStatusCommand.cs b/FlexJobApi.Core/Models/Main/Tasks/Commands/SetTaskInfoReleaseStatusCommand.cs
new file mode 100644
index 0000000..d2a9e78
--- /dev/null
+++ b/FlexJobApi.Core/Models/Main/Tasks/Commands/SetTaskInfoReleaseStatusCommand.cs
@@ -0,0 +1,31 @@
+锘縰sing MediatR;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FlexJobApi.Core
+{
+    /// <summary>
+    /// 璁剧疆浠诲姟鍙戝竷鐘舵��
+    /// </summary>
+    [Resource([EnumResourceController.Task])]
+    public class SetTaskInfoReleaseStatusCommand : IRequest<int>
+    {
+        public SetTaskInfoReleaseStatusCommand()
+        {
+            Ids = [];
+        }
+
+        /// <summary>
+        /// Id
+        /// </summary>
+        public List<Guid> Ids { get; set; }
+
+        /// <summary>
+        /// 鍙戝竷鐘舵��
+        /// </summary>
+        public EnumTaskReleaseStatus ReleaseStatus { get; set; }
+    }
+}
diff --git a/FlexJobApi.Core/Models/Main/Tasks/Queries/GetTaskInfoQuery.cs b/FlexJobApi.Core/Models/Main/Tasks/Queries/GetTaskInfoQuery.cs
index 1481353..ccecf9e 100644
--- a/FlexJobApi.Core/Models/Main/Tasks/Queries/GetTaskInfoQuery.cs
+++ b/FlexJobApi.Core/Models/Main/Tasks/Queries/GetTaskInfoQuery.cs
@@ -23,7 +23,7 @@
     }
 
     /// <summary>
-    /// 鏌ヨ浠诲姟璇︽儏-缁撴灉
+    /// 鏌ヨ浠诲姟璇︽儏-缁撴灉-浼佷笟
     /// </summary>
     public class GetTaskInfoQueryResult
     {
@@ -37,6 +37,21 @@
         /// Id
         /// </summary>
         public Guid Id { get; set; }
+
+        /// <summary>
+        /// 浼佷笟Id
+        /// </summary>
+        public Guid EnterpriseId { get; set; }
+
+        /// <summary>
+        /// 浼佷笟鍏ㄧО
+        /// </summary>
+        public string EnterpriseName { get; set; }
+
+        /// <summary>
+        /// 鍦ㄦ嫑宀椾綅鏁伴噺
+        /// </summary>
+        public int TaskCount { get; set; }
 
         /// <summary>
         /// 浠诲姟鍚嶇О
@@ -122,5 +137,10 @@
         /// 鍒涘缓鏃堕棿
         /// </summary>
         public DateTimeOffset CreatedTime { get; set; }
+
+        /// <summary>
+        /// 鏄惁宸叉敹钘�
+        /// </summary>
+        public bool IsCollected { get; set; }
     }
 }
diff --git a/FlexJobApi.Core/Models/Main/Tasks/Queries/GetTaskInfosQuery.cs b/FlexJobApi.Core/Models/Main/Tasks/Queries/GetTaskInfosQuery.cs
index 655a275..57f3d30 100644
--- a/FlexJobApi.Core/Models/Main/Tasks/Queries/GetTaskInfosQuery.cs
+++ b/FlexJobApi.Core/Models/Main/Tasks/Queries/GetTaskInfosQuery.cs
@@ -13,6 +13,11 @@
     [Resource([EnumResourceController.Task])]
     public class GetTaskInfosQuery : PagedListQuery<PagedListQueryResult<GetTaskInfosQueryResultItem>, GetTaskInfosQueryResultItem>
     {
+        public GetTaskInfosQuery()
+        {
+            BenefitCodes = [];
+        }
+
         /// <summary>
         /// 鍏抽敭瀛楋紙浠诲姟鍚嶇О锛�
         /// </summary>
@@ -24,6 +29,26 @@
         public DateTime? Time { get; set; }
 
         /// <summary>
+        /// 浠诲姟鍦扮偣鎵�灞炲煄甯傜紪鍙�
+        /// </summary>
+        public string CityCode { get; set; }
+
+        /// <summary>
+        /// 缁撶畻鏂瑰紡
+        /// </summary>
+        public EnumSettlementCycle? SettlementCycle { get; set; }
+
+        /// <summary>
+        /// 鍛樺伐绂忓埄
+        /// </summary>
+        public List<string> BenefitCodes { get; set; }
+
+        /// <summary>
+        /// 鎬у埆瑕佹眰
+        /// </summary>
+        public EnumUserGender? GenderLimit { get; set; }
+
+        /// <summary>
         /// 浠诲姟鐘舵��
         /// </summary>
         public EnumTaskStatus? Status { get; set; }
@@ -32,6 +57,11 @@
         /// 鍙戝竷鐘舵��
         /// </summary>
         public EnumTaskReleaseStatus? ReleaseStatus { get; set; }
+
+        /// <summary>
+        /// 鎺ㄨ崘鐘舵��
+        /// </summary>
+        public EnumTaskRecommendStatus? RecommendStatus { get; set; }
     }
 
     /// <summary>
@@ -39,6 +69,11 @@
     /// </summary>
     public class GetTaskInfosQueryResultItem
     {
+        /// <summary>
+        /// Id
+        /// </summary>
+        public Guid Id { get; set; }
+
         /// <summary>
         /// 浠诲姟鍚嶇О
         /// </summary>
@@ -95,5 +130,24 @@
         /// </summary>
         public EnumTaskReleaseStatus ReleaseStatus { get; set; }
 
+        /// <summary>
+        /// 楠屾敹鐘舵��
+        /// </summary>
+        public EnumTaskCheckReceiveStatus CheckReceiveStatus { get; set; }
+
+        /// <summary>
+        /// 缁撶畻鐘舵��
+        /// </summary>
+        public EnumTaskSettlementStatus SettlementStatus { get; set; }
+
+        /// <summary>
+        /// 鎺ㄨ崘鐘舵��
+        /// </summary>
+        public EnumTaskRecommendStatus RecommendStatus { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        public DateTimeOffset CreatedTime { get; set; }
     }
 }
diff --git a/FlexJobApi.Core/Models/Main/Tasks/Repositories/TaskInfoRepository.cs b/FlexJobApi.Core/Models/Main/Tasks/Repositories/TaskInfoRepository.cs
index c8c5b2a..2f73592 100644
--- a/FlexJobApi.Core/Models/Main/Tasks/Repositories/TaskInfoRepository.cs
+++ b/FlexJobApi.Core/Models/Main/Tasks/Repositories/TaskInfoRepository.cs
@@ -18,7 +18,6 @@
         /// 鑾峰彇浠诲姟鏌ヨ
         /// </summary>
         /// <param name="rep"></param>
-        /// <param name="query"></param>
         /// <param name="logier"></param>
         /// <returns></returns>
         public static IQueryable<TaskInfo> GetQueryable(this IRepository<TaskInfo> rep, CurrentLogier logier = null)

--
Gitblit v1.9.1