|
@@ -16,6 +16,7 @@ using ZhonTai.Admin.Core.Consts;
|
|
|
using ZhonTai.Admin.Core.Dto;
|
|
|
using ZhonTai.Admin.Core.Helpers;
|
|
|
using ZhonTai.Admin.Domain.File;
|
|
|
+using ZhonTai.Admin.Domain.Org;
|
|
|
using ZhonTai.Admin.Domain.Project;
|
|
|
using ZhonTai.Admin.Domain.ProjectLink;
|
|
|
using ZhonTai.Admin.Domain.Role;
|
|
@@ -40,6 +41,7 @@ namespace ZhonTai.Admin.Services.ProjectLink
|
|
|
private IProjectRepository _projectRepository => LazyGetRequiredService<IProjectRepository>();
|
|
|
private OSSConfig _oSSConfig => LazyGetRequiredService<IOptions<OSSConfig>>().Value;
|
|
|
private IHttpContextAccessor _httpContextAccessor => LazyGetRequiredService<IHttpContextAccessor>();
|
|
|
+ private IOrgRepository _orgRepository => LazyGetRequiredService<IOrgRepository>();
|
|
|
|
|
|
public ProjectLinkService()
|
|
|
{
|
|
@@ -55,6 +57,54 @@ namespace ZhonTai.Admin.Services.ProjectLink
|
|
|
// var result = await _ProjectLinkRepository.GetAsync<ProjectLinkGetOutput>(id);
|
|
|
// return result;
|
|
|
//}
|
|
|
+ /// <summary>
|
|
|
+ /// 查询推广管理分页
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="input"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ public async Task<PageOutput<ProjectLinkManagePageOutput>> GetPageAsync(PageInput<ProjectLinkManagePageInput> input)
|
|
|
+ {
|
|
|
+ var ProjectId = input.Filter?.ProjectId;
|
|
|
+ var key = input.Filter?.Keywords;
|
|
|
+
|
|
|
+ var list = _ProjectLinkRepository.Select.DisableGlobalFilter(FilterNames.Tenant)
|
|
|
+ .WhereIf(ProjectId.HasValue && ProjectId.Value >= 0, a => a.ProjectId == ProjectId)
|
|
|
+ .WhereIf(key.NotNull(), a => a.Company.Contains(key))
|
|
|
+ .GroupBy(m=>new { m.ProjectId,m.Company})
|
|
|
+ .Count(out var total)
|
|
|
+ .Page(input.CurrentPage, input.PageSize)
|
|
|
+ .ToList(m => new ProjectLinkManagePageOutput()
|
|
|
+ {
|
|
|
+ ProjectId= m.Key.ProjectId,
|
|
|
+ Company= m.Key.Company,
|
|
|
+ Count= m.Count(),
|
|
|
+ UseCount= m.Sum(m.Value.IsUse==1?1:0),
|
|
|
+ ProjectName=""
|
|
|
+ });
|
|
|
+
|
|
|
+ var listProjectId = list.Select(m => m.ProjectId).Distinct().ToList();
|
|
|
+ if (listProjectId.Count() > 0)
|
|
|
+ {
|
|
|
+ var listProject = await _projectRepository.Select.DisableGlobalFilter(FilterNames.Tenant).Where(m => listProjectId.Contains(m.Id)).ToListAsync(m=>new {
|
|
|
+ m.Id,
|
|
|
+ m.Name
|
|
|
+ });
|
|
|
+ foreach (var item in list)
|
|
|
+ {
|
|
|
+ var project = listProject.FirstOrDefault(m => m.Id == item.ProjectId);
|
|
|
+ if (project != null)
|
|
|
+ item.ProjectName = project.Name;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ var data = new PageOutput<ProjectLinkManagePageOutput>()
|
|
|
+ {
|
|
|
+ List = list,
|
|
|
+ Total = total
|
|
|
+ };
|
|
|
+
|
|
|
+ return data;
|
|
|
+ }
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询分页
|
|
@@ -65,20 +115,21 @@ namespace ZhonTai.Admin.Services.ProjectLink
|
|
|
public async Task<PageOutput<ProjectLinkListOutput>> GetPageAsync(PageInput<ProjectLinkGetPageDto> input)
|
|
|
{
|
|
|
var IsUse = input.Filter?.IsUse;
|
|
|
- var Company = input.Filter?.Company;
|
|
|
+ var TenantId = input.Filter?.TenantId;
|
|
|
var key = input.Filter?.Keywords;
|
|
|
|
|
|
var list = await _ProjectLinkRepository.Select.DisableGlobalFilter(FilterNames.Tenant)
|
|
|
.WhereIf(IsUse.HasValue && IsUse.Value >= 0, a => a.IsUse == IsUse)
|
|
|
- .WhereIf(Company.NotNull(), a => a.Company == Company)
|
|
|
+ .WhereIf(TenantId.HasValue && TenantId.Value > 0, a => a.TenantId == TenantId)
|
|
|
.WhereIf(key.NotNull(), a => a.Num == key || a.Salesman == key || a.SalesmanPhone == key)
|
|
|
.Count(out var total)
|
|
|
+ .OrderByDescending(true, c => c.UseTime)
|
|
|
.OrderByDescending(true, c => c.Id)
|
|
|
.Page(input.CurrentPage, input.PageSize)
|
|
|
.ToListAsync(m => new ProjectLinkListOutput()
|
|
|
{
|
|
|
Company = m.Company,
|
|
|
- OrgName = m.TenantId.ToString(),
|
|
|
+ OrgName = "",
|
|
|
Num = m.Num,
|
|
|
ShortUrl = m.ShortUrl,
|
|
|
QrcodeUrl = m.QrcodeUrl,
|
|
@@ -88,8 +139,20 @@ namespace ZhonTai.Admin.Services.ProjectLink
|
|
|
Salesman = m.Salesman,
|
|
|
SalesmanPhone = m.SalesmanPhone,
|
|
|
SalesmanRemark = m.SalesmanRemark,
|
|
|
+ TenantId = m.TenantId
|
|
|
});
|
|
|
-
|
|
|
+ List<OrgEntity> listOrg = null;
|
|
|
+ var listTenantId = list.Where(m => m.TenantId.HasValue).Select(m => m.TenantId).Distinct().ToList();
|
|
|
+ if (listTenantId.Count() > 0)
|
|
|
+ {
|
|
|
+ listOrg = await _orgRepository.Select.Where(m => listTenantId.Contains(m.TenantId.Value)).ToListAsync();
|
|
|
+ foreach (var item in list)
|
|
|
+ {
|
|
|
+ var org = listOrg.FirstOrDefault(m => m.TenantId == item.TenantId);
|
|
|
+ if (org != null)
|
|
|
+ item.OrgName = org.Name;
|
|
|
+ }
|
|
|
+ }
|
|
|
var data = new PageOutput<ProjectLinkListOutput>()
|
|
|
{
|
|
|
List = list,
|
|
@@ -184,10 +247,10 @@ namespace ZhonTai.Admin.Services.ProjectLink
|
|
|
QueryUrl = row["查单链接"]?.ToString(),
|
|
|
ProjectId = ProjectId,
|
|
|
Company = Company,
|
|
|
- TenantId=-1
|
|
|
+ TenantId = -1
|
|
|
});
|
|
|
}
|
|
|
- await _ProjectLinkRepository.InsertAsync(list);
|
|
|
+ await _ProjectLinkRepository.InsertAsync(list);
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 下载推广码模板
|