Browse Source

项目统计

zmq 1 year ago
parent
commit
9f5c1799bf

+ 1 - 1
src/platform/ZhonTai.Admin/Domain/Project/ProjectStatEntity.cs

@@ -17,7 +17,7 @@ namespace ZhonTai.Admin.Domain.Project
         /// <summary>
         /// 用户ID
         /// </summary>
-        public long UsedUserId { get; set; }
+        public long? UsedUserId { get; set; }
         /// <summary>
         /// 项目Id
         /// </summary>

+ 2 - 1
src/platform/ZhonTai.Admin/Services/Project/ProjectService.cs

@@ -1,4 +1,5 @@
-using System;
+
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;

+ 2 - 2
src/platform/ZhonTai.Admin/Services/ProjectStat/Dto/ProjectStatManagePageInput.cs

@@ -11,11 +11,11 @@ namespace ZhonTai.Admin.Services.ProjectStat.Dto
         /// <summary>
         /// 项目Id
         /// </summary>
-        public long ProjectId { get; set; }
+        public long? ProjectId { get; set; }
         /// <summary>
         /// 平台Id
         /// </summary>
-        public long TenantId { get; set; }
+        public long? TenantId { get; set; }
         /// <summary>
         /// 结算状态
         /// </summary>

+ 36 - 3
src/platform/ZhonTai.Admin/Services/ProjectStat/ProjectStatService.cs

@@ -24,6 +24,8 @@ using Microsoft.AspNetCore.Hosting;
 using System.Data;
 using ZhonTai.Admin.Domain.ProjectLink;
 using ZhonTai.Common.Extensions;
+using ZhonTai.Admin.Repositories.Project;
+using ZhonTai.Admin.Services.Project.Dto;
 
 namespace ZhonTai.Admin.Services.ProjectStat
 {
@@ -61,7 +63,7 @@ namespace ZhonTai.Admin.Services.ProjectStat
             var list = _projectStatRepository.Select.DisableGlobalFilter(FilterNames.Tenant)
                 .WhereIf(ProjectId.HasValue && ProjectId.Value > 0, a => a.ProjectId == ProjectId)
                 .WhereIf(TenantId.HasValue && TenantId.Value > 0, a => a.TenantId == TenantId)
-                .WhereIf(IsSettele.HasValue, a => a.IsSettle == IsSettele)
+                .WhereIf(IsSettele.HasValue && IsSettele.Value >= 0, a => a.IsSettle == IsSettele)
                 .WhereIf(EffectDate.HasValue, a => a.EffectDate == EffectDate)
                 .GroupBy(m => new { m.ProjectId, m.TenantId, m.EffectDate })
             .Count(out var total)
@@ -211,8 +213,13 @@ namespace ZhonTai.Admin.Services.ProjectStat
                 var listFuGai = await _projectStatRepository.Select.DisableGlobalFilter(FilterNames.Tenant).Where(m => m.ProjectId == ProjectId && listDateInt.Contains(m.EffectDateNum) && m.IsSettle == 0).ToListAsync(m=>m.EffectDateNum);
                 if (listFuGai.Count() > 0)
                 {
-                     listFuGai = listFuGai.Distinct().ToList();
-                     await _projectStatRepository.UpdateDiy.Set(m=>m.IsDeleted,true).Where(m => listFuGai.Contains(m.EffectDateNum)).ExecuteUpdatedAsync();
+                    listFuGai = listFuGai.Distinct().ToList();
+
+                    await _projectStatRepository.Orm.Delete<ProjectStatEntity>().DisableGlobalFilter(FilterNames.Tenant).Where(m => listFuGai.Contains(m.EffectDateNum)).ExecuteAffrowsAsync();
+                    //await _projectStatRepository.Select.DisableGlobalFilter(FilterNames.Tenant).Where(m => listFuGai.Contains(m.EffectDateNum)).ToDelete().ExecuteAffrowsAsync();
+                    //await _projectStatRepository.DisableGlobalFilter(FilterNames.Tenant).SetSource(new ProjectStatEntity() { 
+                    //    IsDeleted=true
+                    //}).UpdateColumns(m =>new { m.IsDeleted}).Where(m => listFuGai.Contains(m.EffectDateNum)).ExecuteUpdatedAsync();
                 }
                 List<ProjectStatEntity> list = new List<ProjectStatEntity>();
                 foreach (DataRow row in datatable.Rows)
@@ -236,6 +243,7 @@ namespace ZhonTai.Admin.Services.ProjectStat
                             CommissionPrice = 0,
                             IsSettle = 0,
                             TenantId = link?.TenantId,
+                            UsedUserId=link?.UsedUserId
                         };
                         list.Add(model);
                     }
@@ -272,5 +280,30 @@ namespace ZhonTai.Admin.Services.ProjectStat
 
             return linkUrl;
         }
+        /// <summary>
+        /// 确认结算
+        /// </summary>
+        ///<param name="ProjectId">项目Id</param>
+        ///<param name="EffecDate">状态 2上架 3下架 4暂停</param>
+        /// <returns></returns>    
+        [HttpGet]
+        public async Task UpdateSettleAsync(long ProjectId,int EffecDate)
+        {
+            var count = await _projectStatRepository.Select.DisableGlobalFilter(FilterNames.Tenant).Where(m => m.ProjectId==ProjectId&&m.EffectDateNum== EffecDate&&m.IsSettle==0).CountAsync();
+            if (count <= 0)
+            {
+                throw ResultOutput.Exception("无可结算数据");
+            }
+            //更新项目
+            await _projectStatRepository.UpdateDiy.SetSource(
+            new ProjectStatEntity()
+            {
+                IsSettle=1,
+                SettleTime=DateTime.Now                
+            })
+                .UpdateColumns(a => new { a.IsSettle,a.SettleTime })
+            .Where(m => m.ProjectId == ProjectId && m.EffectDateNum == EffecDate && m.IsSettle == 0)
+            .DisableGlobalFilter(FilterNames.Tenant).ExecuteAffrowsAsync();          
+        }
     }
 }