Jelajahi Sumber

增加导出文件名称

qinchaoyue 3 bulan lalu
induk
melakukan
d86e4b1499

+ 11 - 1
src/Hotline.Api/Controllers/ExportData/ExportDataController.cs

@@ -9,6 +9,16 @@ using XF.Domain.Exceptions;
 
 namespace Hotline.Api.Controllers.ExportData;
 
+/// <summary>
+/// 只要URL结尾是 export_excel 的请求都会进入这个控制器
+/// 逻辑:
+///     1. 通过URL找到对应的Controller和Action
+///     2. 通过Controller和Action找到对应的ApplicationService
+///        比如: RedPackController.GetRedPackList 就会去查找 RedPackApplication.GetRedPackList 方法
+///     3. 通过反射调用对应的方法
+///     4. ApplicationService 的方法返回的必须是 ISugarQueryable
+///     5. ApplicationService 中方法的Description 属性会作为导出的文件名
+/// </summary>
 [ApiController]
 [Route("{*path:regex(.*export_excel$)}")]
 public class ExportDataController : BaseController
@@ -86,7 +96,7 @@ public class ExportDataController : BaseController
         var result = method.Invoke(serviceInstance, [queryDto]);
 
         var returnType = method.ReturnType.GetGenericArguments()[0];
-        var description = method.GetCustomAttribute<DescriptionAttribute>()?.Description;
+        var description = method.GetCustomAttribute<DescriptionAttribute>()?.Description + "_";
         if (pageIndex == null || pageSize == null)
         {
             isExportAll = true;

+ 1 - 0
src/Hotline.Application/Snapshot/IndustryApplication.cs

@@ -379,6 +379,7 @@ public class IndustryApplication : IIndustryApplication, IScopeDependency
     /// </summary>
     /// <param name="dto"></param>
     /// <returns></returns>
+    [Description("志愿者上报")]
     public ISugarQueryable<VolunteerReportItemsOutDto> GetVolunteerReportItems(VolunteerReportItemsInDto dto)
     {
         var query = _volunteerReportRepository.Queryable()