From e9960b323c486a3d34275824fd9bd6259d1b5c20 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 22 八月 2025 14:16:53 +0800
Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/ApiFlexJob

---
 FlexJobApi.Core/Utils/DbUtils/DbUtils.cs |   65 ++++++++++++++++++--------------
 1 files changed, 36 insertions(+), 29 deletions(-)

diff --git a/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs b/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs
index 2e1639d..e8e12e3 100644
--- a/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs
+++ b/FlexJobApi.Core/Utils/DbUtils/DbUtils.cs
@@ -273,7 +273,7 @@
             if (model == null)
             {
                 var summary = await typeof(TEntity).GetSummary();
-                throw Oops.Oh(EnumErrorCodeType.s404, $"璇summary ?? "淇℃伅"}");
+                throw Oops.Oh(EnumErrorCodeType.s404, $"{summary ?? "淇℃伅"}");
             }
             return model;
         }
@@ -342,7 +342,7 @@
             if (entity == null)
             {
                 var summary = await typeof(TEntity).GetSummary();
-                throw Oops.Oh(EnumErrorCodeType.s404, $"璇summary ?? "淇℃伅"}");
+                throw Oops.Oh(EnumErrorCodeType.s404, $"{summary ?? "淇℃伅"}");
             }
 
             if (update != null) update(entity);
@@ -362,7 +362,7 @@
         /// <param name="update"></param>
         /// <param name="cancellationToken"></param>
         /// <returns></returns>
-        public static async Task<Guid> SaveData<TEntity, TRequest>(
+        public static async Task<TEntity> SaveData<TEntity, TRequest>(
             this TRequest request,
             Func<IQueryable<TEntity>, IQueryable<TEntity>> query = null,
             Expression<Func<TEntity, bool>> checkExist = null,
@@ -375,17 +375,17 @@
             var summary = await typeof(TEntity).GetSummary(xmlDoc);
             var rep = Db.GetRepository<TEntity>();
             if (checkExist != null && await rep.AsQueryable().AsNoTracking().AnyAsync(checkExist))
-                throw Oops.Oh(EnumErrorCodeType.s405, $"璇summary ?? "淇℃伅"}");
+                throw Oops.Oh(EnumErrorCodeType.s405, $"{summary ?? "淇℃伅"}");
             if (request.Id.HasValue)
             {
                 var q = rep.AsQueryable();
                 if (query != null) q = query(q);
                 var entity = await q.FirstOrDefaultAsync(it => it.Id == request.Id, cancellationToken);
-                if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, $"璇summary ?? "淇℃伅"}");
+                if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, $"{summary ?? "淇℃伅"}");
                 if (update != null) update(entity);
                 else request.Adapt(entity);
                 await rep.UpdateAsync(entity);
-                return entity.Id;
+                return entity;
             }
             else
             {
@@ -393,7 +393,7 @@
                 if (update != null) update(entity);
                 else request.Adapt(entity);
                 await rep.InsertAsync(entity);
-                return entity.Id;
+                return entity;
             }
         }
 
@@ -568,37 +568,44 @@
                     continue;
                 }
 
-                Db.GetRepository<DbAuditLog, LogDbContextLocator>().InsertNow(new DbAuditLog
+                var log = new DbAuditLog
                 {
                     Id = IDGen.NextID(),
                     TableName = entityType.Name,
                     PrimaryKey = (Guid)entity.Property("Id").CurrentValue,
-                    NewValues = entity.State == EntityState.Added || entity.State == EntityState.Modified
-                        ? GetPropertyValuesAsJson(entity)
-                        : null,
-                    OldValues = entity.State == EntityState.Deleted || entity.State == EntityState.Modified
-                        ? GetPropertyValuesAsJson(entity, entity.State == EntityState.Modified)
-                        : null,
-                    Operate = entity.State == EntityState.Added
-                        ? EnumDbAuditOperate.Added
-                        : entity.State == EntityState.Modified
-                        ? EnumDbAuditOperate.Modified
-                        : EnumDbAuditOperate.Deleted,
                     TraceId = App.GetTraceId(),
                     CreatedTime = DateTime.Now,
                     CreatedUserId = logier?.Id,
                     CreatedEnterpriseId = logier?.EnterpriseId
-                });
+                };
+                log.Operate =
+                    entity.State == EntityState.Added
+                    ? EnumDbAuditOperate.Added
+                    : entity.State == EntityState.Modified
+                    ? EnumDbAuditOperate.Modified
+                    : EnumDbAuditOperate.Deleted;
+                if (entity.Property(nameof(CommonEntity.IsDeleted)).CurrentValue is bool isDeleted && isDeleted == true)
+                {
+                    log.Operate = EnumDbAuditOperate.Deleted;
+                }
+                log.NewValues =
+                    log.Operate == EnumDbAuditOperate.Deleted
+                    ? null
+                    : JsonConvert.SerializeObject(entity.Properties
+                        .Where(p => log.Operate == EnumDbAuditOperate.Modified
+                            ? p.IsModified
+                            : true)
+                        .ToDictionary(p => p.Metadata.Name, p => p.CurrentValue));
+                log.OldValues =
+                    log.Operate == EnumDbAuditOperate.Added
+                    ? null
+                    : JsonConvert.SerializeObject(entity.Properties
+                        .Where(p => log.Operate == EnumDbAuditOperate.Modified
+                            ? p.IsModified
+                            : true)
+                        .ToDictionary(p => p.Metadata.Name, p => p.OriginalValue));
+                Db.GetRepository<DbAuditLog, LogDbContextLocator>().InsertNow(log);
             }
-        }
-
-        private static string GetPropertyValuesAsJson(EntityEntry entry, bool getOldValues = false)
-        {
-            var properties = entry.Properties
-                .Where(p => getOldValues ? p.IsModified : true)
-                .ToDictionary(p => p.Metadata.Name, p => getOldValues ? p.OriginalValue : p.CurrentValue);
-
-            return JsonConvert.SerializeObject(properties);
         }
     }
 }

--
Gitblit v1.9.1