Forráskód Böngészése

推广码相关接口完善

zmq 2 éve
szülő
commit
2c9ec7c232

+ 14 - 0
src/platform/ZhonTai.Admin/Services/Project/Dto/ProjectSelectOutput.cs

@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ZhonTai.Admin.Services.Project.Dto
+{
+    public class ProjectSelectOutput
+    {
+        public long Id { get; set; }
+        public string Name { get; set; }
+    }
+}

+ 16 - 0
src/platform/ZhonTai.Admin/Services/Project/ProjectService.cs

@@ -244,6 +244,21 @@ namespace ZhonTai.Admin.Services.Project
                 Type = status,
             });
         }
+
+        /// <summary>
+        /// 查询所有项目
+        /// </summary>        
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<List<ProjectSelectOutput>> GetAllAsync()
+        {            
+            var list = await _projectRepository.Select
+                .DisableGlobalFilter(FilterNames.Tenant)
+            .ToListAsync<ProjectSelectOutput>();           
+
+            return list;
+        }
+
         #region 私有方法
         /// <summary>
         /// 获取项目状态
@@ -261,5 +276,6 @@ namespace ZhonTai.Admin.Services.Project
         };
         #endregion
 
+
     }
 }

+ 2 - 2
src/platform/ZhonTai.Admin/Services/ProjectLink/Dto/ProjectLinkGetPageDto.cs

@@ -13,9 +13,9 @@ namespace ZhonTai.Admin.Services.ProjectLink.Dto
         /// </summary>
         public int IsUse { get; set; }
         /// <summary>
-        /// 公司
+        /// 平台Id
         /// </summary>
-        public string Company { get; set; }
+        public long TenantId { get; set; }
         /// <summary>
         /// 关键字 编号,业务员姓名,手机号
         /// </summary>

+ 1 - 1
src/platform/ZhonTai.Admin/Services/ProjectLink/Dto/ProjectLinkListOutput.cs

@@ -64,6 +64,6 @@ namespace ZhonTai.Admin.Services.ProjectLink.Dto
         /// 业务员备注
         /// </summary>
         public string SalesmanRemark { get; set; }
-        public long TenantId { get; set; }
+        public long? TenantId { get; set; }
     }
 }

+ 20 - 0
src/platform/ZhonTai.Admin/Services/ProjectLink/Dto/ProjectLinkManagePageInput.cs

@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ZhonTai.Admin.Services.ProjectLink.Dto
+{
+    public class ProjectLinkManagePageInput
+    {
+        /// <summary>
+        /// 项目Id
+        /// </summary>
+        public long ProjectId { get; set; }        
+        /// <summary>
+        /// 关键字 推广码来源
+        /// </summary>
+        public string Keywords { get; set; }
+    }
+}

+ 32 - 0
src/platform/ZhonTai.Admin/Services/ProjectLink/Dto/ProjectLinkManagePageOutput.cs

@@ -0,0 +1,32 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ZhonTai.Admin.Services.ProjectLink.Dto
+{
+    public class ProjectLinkManagePageOutput
+    {
+        /// <summary>
+        /// 公司(推广码来源)
+        /// </summary>
+        public string ProjectName { get; set; }
+        /// <summary>
+        /// 公司(推广码来源)
+        /// </summary>
+        public string Company { get; set; }    
+        /// <summary>
+        /// 使用数量
+        /// </summary>
+        public decimal UseCount { get; set; }
+        /// <summary>
+        /// 总数
+        /// </summary>
+        public int Count { get; set; }
+        /// <summary>
+        /// 项目Id
+        /// </summary>
+        public long ProjectId { get; set; }       
+    }
+}

+ 69 - 6
src/platform/ZhonTai.Admin/Services/ProjectLink/ProjectLinkService.cs

@@ -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>
         /// 下载推广码模板

+ 21 - 0
src/platform/ZhonTai.Admin/Services/Tenant/Dto/TenantSelectListOutput.cs

@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ZhonTai.Admin.Services.Tenant.Dto
+{
+    public class TenantSelectListOutput
+    {
+        /// <summary>
+        /// 主键
+        /// </summary>
+        public long Id { get; set; }
+
+        /// <summary>
+        /// 企业名称
+        /// </summary>
+        public string Name { get; set; }        
+    }
+}

+ 20 - 4
src/platform/ZhonTai.Admin/Services/Tenant/TenantService.cs

@@ -325,8 +325,8 @@ public class TenantService : BaseService, ITenantService, IDynamicApi
             tenant.PlatfromUserId = platfromUserId;
             await _tenantRepository.UpdateAsync(tenant);
 
-            
-            
+
+
             return tenant.Id;
         }
     }
@@ -434,11 +434,11 @@ public class TenantService : BaseService, ITenantService, IDynamicApi
                 //清除租户下所有用户权限缓存
                 await LazyGetRequiredService<PkgService>().ClearUserPermissionsAsync(new List<long> { tenant.Id });
             }
-            
+
             //更新平台用户
             await _platformUserRepository.UpdateDiy.DisableGlobalFilter(FilterNames.Tenant).SetSource(new PlatformUserEntity()
             {
-                Id=tenant.PlatfromUserId,
+                Id = tenant.PlatfromUserId,
                 Name = input.RealName,
                 Phone = input.Phone,
             }).UpdateColumns(m => new { m.Name, m.Phone }).ExecuteAffrowsAsync();
@@ -584,4 +584,20 @@ public class TenantService : BaseService, ITenantService, IDynamicApi
         }
         return invite;
     }
+    /// <summary>
+    /// 查询所有租户企业信息
+    /// </summary>    
+    /// <returns></returns>
+    [HttpGet]
+    public async Task<List<TenantSelectListOutput>> GetAllAsync()
+    {
+        var list = await _tenantRepository.Select.DisableGlobalFilter(FilterNames.Tenant)
+        .ToListAsync(a => new TenantSelectListOutput
+        {
+            Id = a.Id,
+            Name = a.Org.Name
+        });
+
+        return list;
+    }
 }

+ 66 - 2
src/platform/ZhonTai.Admin/ZhonTai.Admin.xml

@@ -6832,9 +6832,9 @@
             是否使用 1使用 0未使用
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Services.ProjectLink.Dto.ProjectLinkGetPageDto.Company">
+        <member name="P:ZhonTai.Admin.Services.ProjectLink.Dto.ProjectLinkGetPageDto.TenantId">
             <summary>
-            公司
+            平台Id
             </summary>
         </member>
         <member name="P:ZhonTai.Admin.Services.ProjectLink.Dto.ProjectLinkGetPageDto.Keywords">
@@ -6912,11 +6912,53 @@
             业务员备注
             </summary>
         </member>
+        <member name="P:ZhonTai.Admin.Services.ProjectLink.Dto.ProjectLinkManagePageInput.ProjectId">
+            <summary>
+            项目Id
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.ProjectLink.Dto.ProjectLinkManagePageInput.Keywords">
+            <summary>
+            关键字 推广码来源
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.ProjectLink.Dto.ProjectLinkManagePageOutput.ProjectName">
+            <summary>
+            公司(推广码来源)
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.ProjectLink.Dto.ProjectLinkManagePageOutput.Company">
+            <summary>
+            公司(推广码来源)
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.ProjectLink.Dto.ProjectLinkManagePageOutput.UseCount">
+            <summary>
+            使用数量
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.ProjectLink.Dto.ProjectLinkManagePageOutput.Count">
+            <summary>
+            总数
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.ProjectLink.Dto.ProjectLinkManagePageOutput.ProjectId">
+            <summary>
+            项目Id
+            </summary>
+        </member>
         <member name="T:ZhonTai.Admin.Services.ProjectLink.ProjectLinkService">
             <summary>
             项目推广码服务
             </summary>
         </member>
+        <member name="M:ZhonTai.Admin.Services.ProjectLink.ProjectLinkService.GetPageAsync(ZhonTai.Admin.Core.Dto.PageInput{ZhonTai.Admin.Services.ProjectLink.Dto.ProjectLinkManagePageInput})">
+            <summary>
+            查询推广管理分页
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
         <member name="M:ZhonTai.Admin.Services.ProjectLink.ProjectLinkService.GetPageAsync(ZhonTai.Admin.Core.Dto.PageInput{ZhonTai.Admin.Services.ProjectLink.Dto.ProjectLinkGetPageDto})">
             <summary>
             查询分页
@@ -7085,6 +7127,12 @@
             <param name="status">状态 2上架 3下架 4暂停</param>
              <returns></returns>
         </member>
+        <member name="M:ZhonTai.Admin.Services.Project.ProjectService.GetAllAsync">
+            <summary>
+            查询所有项目
+            </summary>        
+            <returns></returns>
+        </member>
         <member name="M:ZhonTai.Admin.Services.Project.ProjectService.GetStatusText(System.Int32)">
             <summary>
             获取项目状态
@@ -7709,6 +7757,16 @@
             创建时间
             </summary>
         </member>
+        <member name="P:ZhonTai.Admin.Services.Tenant.Dto.TenantSelectListOutput.Id">
+            <summary>
+            主键
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.Tenant.Dto.TenantSelectListOutput.Name">
+            <summary>
+            企业名称
+            </summary>
+        </member>
         <member name="T:ZhonTai.Admin.Services.Tenant.Dto.TenantSetEnableInput">
             <summary>
             设置启用
@@ -7800,6 +7858,12 @@
             <param name="input"></param>
             <returns></returns>
         </member>
+        <member name="M:ZhonTai.Admin.Services.Tenant.TenantService.GetAllAsync">
+            <summary>
+            查询所有租户企业信息
+            </summary>    
+            <returns></returns>
+        </member>
         <member name="T:ZhonTai.Admin.Services.Tenant.MapConfig">
             <summary>
             映射配置