Files
YunTongJackYunTask/Reportapi/MyCode.Project.Services/BLL/ReportExport/MemberAssetInquiryExport.cs
2025-07-04 09:50:02 +08:00

93 lines
3.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MyCode.Project.Domain.Message.Request.LxmZHMDReport;
using MyCode.Project.Domain.Message.Response.LxmZHMDReport;
using MyCode.Project.Infrastructure;
using MyCode.Project.Infrastructure.Cache;
using MyCode.Project.Infrastructure.Common;
using MyCode.Project.Infrastructure.Constant;
using MyCode.Project.Infrastructure.Enumeration;
using MyCode.Project.Services.IServices;
namespace MyCode.Project.Services.BLL.ReportExport
{
public class MemberAssetInquiryExport : BaseExport
{
#region
private readonly ILxmReport2023Service _reportService;
private IMyCodeCacheService _myCodeCacheService;
public MemberAssetInquiryExport(ILxmReport2023Service reportService
, IMyCodeCacheService myCodeCacheService)
{
_reportService = reportService;
}
#endregion
#region Execute()
public override string Execute()
{
var req = JsonHelper.ToObject<ShopDiagnosisReportReq>(Condition.ToString());
var resultData = new ReportCalRateResp()
{
Total = 0,
Rate = 0.01m
};
var result = new Result()
{
Data = resultData,
Code = ResultCode.Success
};
if (base.ExcelFileType == (int)ExportFileType.Zip)
{
//类型为0是报表专用验证客户端是否在线
WebSocketBLL.CheckOnline(ReportId, 0);
//开始运算先发送个进度0%,表明开始
WebSocketBLL.SendSocketMsg(ReportId, JsonHelper.ToJson(result, false, true));
}
var pageSearch = base.GetPageSearch<MemberAssetInquiryReq>(Condition, 1);
var list = _reportService.GetMemberAssetInquiry(pageSearch, this.CurrentUser);
resultData.Total = list.TotalCount;
var fileName = $"会员统计--会员查询";
if (base.ExcelFileType == (int)ExportFileType.Zip)
{
resultData.Rate = 0.02m;
result.Data = resultData;
WebSocketBLL.SendSocketMsg(ReportId, JsonHelper.ToJson(result, false, true));
}
pageSearch.Page = 1;
pageSearch.PageSize = 10000;
int maxPage = (list.TotalCount+ pageSearch.PageSize-1) / pageSearch.PageSize;
string zipFile = "";
string hasDownloadZipCacheKey = CacheKey.HasDownloadZipCacheKey + $@":{ReportId}";
while (pageSearch.Page <= maxPage)
{
list = _reportService.GetMemberAssetInquiry(pageSearch, this.CurrentUser);
zipFile =base.PageListExecute<MemberAssetInquiryResp>(list, pageSearch.Page, pageSearch.PageSize, list.TotalCount, fileName, hasDownloadZipCacheKey);
pageSearch.Page++;
}
if (zipFile == "")
{
resultData.CurQty = list.TotalCount;
resultData.Rate = 1;
WebSocketBLL.SendSocketMsg(ReportId, JsonHelper.ToJson(result, false, true));
//移除正在下载
_myCodeCacheService.Delete($"{hasDownloadZipCacheKey}");
}
return zipFile;
}
#endregion
}
}