using SqlSugar; 
 | 
using System; 
 | 
using System.Collections.Generic; 
 | 
using System.Linq; 
 | 
using System.Reflection; 
 | 
using System.Text; 
 | 
using System.Threading.Tasks; 
 | 
using WIDESEAWCS_Core.Const; 
 | 
using WIDESEAWCS_Core.DB.Models; 
 | 
using WIDESEAWCS_Core.Helper; 
 | 
using WIDESEAWCS_Core.HttpContextUser; 
 | 
using WIDESEAWCS_Core.Tenants; 
 | 
  
 | 
namespace WIDESEAWCS_Core.AOP 
 | 
{ 
 | 
    public static class SqlSugarAop 
 | 
    { 
 | 
        public static void DataExecuting(object oldValue, DataFilterModel entityInfo) 
 | 
        { 
 | 
            if (entityInfo.EntityValue is BaseEntity baseEntity) 
 | 
            { 
 | 
                // 新增操作 
 | 
                if (entityInfo.OperationType == DataFilterType.InsertByObject) 
 | 
                { 
 | 
                    if (entityInfo.PropertyName == nameof(BaseEntity.CreateDate)) 
 | 
                    { 
 | 
                        baseEntity.CreateDate = DateTime.Now; 
 | 
                    } 
 | 
                } 
 | 
  
 | 
                else if (entityInfo.OperationType == DataFilterType.UpdateByObject) 
 | 
                { 
 | 
                    baseEntity.ModifyDate = DateTime.Now; 
 | 
                } 
 | 
  
 | 
                try 
 | 
                { 
 | 
                    if (App.User?.UserId > 0) 
 | 
                    { 
 | 
                        switch (entityInfo.OperationType) 
 | 
                        { 
 | 
                            case DataFilterType.UpdateByObject: 
 | 
                                baseEntity.Modifier = App.User.UserName; 
 | 
                                break; 
 | 
                            case DataFilterType.InsertByObject: 
 | 
                                baseEntity.Creater = App.User.UserName; 
 | 
                                break; 
 | 
                        } 
 | 
                    } 
 | 
                    else 
 | 
                    { 
 | 
                        switch (entityInfo.OperationType) 
 | 
                        { 
 | 
                            case DataFilterType.UpdateByObject: 
 | 
                                baseEntity.Modifier = "System"; 
 | 
                                break; 
 | 
                            case DataFilterType.InsertByObject: 
 | 
                                baseEntity.Creater = "System"; 
 | 
                                break; 
 | 
                        } 
 | 
                    } 
 | 
                } 
 | 
                catch (NullReferenceException) 
 | 
                { 
 | 
                    switch (entityInfo.OperationType) 
 | 
                    { 
 | 
                        case DataFilterType.UpdateByObject: 
 | 
                            baseEntity.Modifier = "System"; 
 | 
                            break; 
 | 
                        case DataFilterType.InsertByObject: 
 | 
                            baseEntity.Creater = "System"; 
 | 
                            break; 
 | 
                    } 
 | 
                } 
 | 
                 
 | 
            } 
 | 
        } 
 | 
  
 | 
        private static string GetWholeSql(SugarParameter[] paramArr, string sql) 
 | 
        { 
 | 
            foreach (var param in paramArr) 
 | 
            { 
 | 
                sql = sql.Replace(param.ParameterName, $@"'{param.Value.ObjToString()}'"); 
 | 
            } 
 | 
  
 | 
            return sql; 
 | 
        } 
 | 
  
 | 
        private static string GetParas(SugarParameter[] pars) 
 | 
        { 
 | 
            string key = "【SQL参数】:"; 
 | 
            foreach (var param in pars) 
 | 
            { 
 | 
                key += $"{param.ParameterName}:{param.Value}\n"; 
 | 
            } 
 | 
  
 | 
            return key; 
 | 
        } 
 | 
    } 
 | 
} 
 |