1
hutongqing
2025-01-11 9be8d6e3232971246ec6cb2acac1ad4d05798e9b
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_Core/BaseRepository/RepositoryBase.cs
@@ -36,38 +36,38 @@
                ISqlSugarClient db = _dbBase;
                //多租户
                var mta = typeof(TEntity).GetCustomAttribute<MultiTenantAttribute>();
                if (mta is { TenantType: TenantTypeEnum.Db })
                {
                    //获取租户信息 ç§Ÿæˆ·ä¿¡æ¯å¯ä»¥æå‰ç¼“存下来
                    if (App.User is { TenantId: > 0 })
                    {
                        dynamic tenant = db.Queryable(MainDb.TenantTableName, "x").Where(MainDb.TenantId, "=", App.User.TenantId).First();
                        if (tenant != null)
                        {
                            var iTenant = db.AsTenant();
                            if (!iTenant.IsAnyConnection(tenant.TenantId))
                            {
                                string conStr = tenant.ConnectionString;
                                ConnectionConfig connectionConfig = new ConnectionConfig()
                                {
                                    ConfigId = tenant.TenantId,
                                    ConnectionString = conStr.DecryptDES(AppSecret.DB),
                                    DbType = (SqlSugar.DbType)tenant.DbType,
                                    IsAutoCloseConnection = true,
                                    AopEvents = new AopEvents()
                                    {
                                        DataExecuting = SqlSugarAop.DataExecuting,
                //var mta = typeof(TEntity).GetCustomAttribute<MultiTenantAttribute>();
                //if (mta is { TenantType: TenantTypeEnum.Db })
                //{
                //    //获取租户信息 ç§Ÿæˆ·ä¿¡æ¯å¯ä»¥æå‰ç¼“存下来
                //    if (App.User is { TenantId: > 0 })
                //    {
                //        dynamic tenant = db.Queryable(MainDb.TenantTableName, "x").Where(MainDb.TenantId, "=", App.User.TenantId).First();
                //        if (tenant != null)
                //        {
                //            var iTenant = db.AsTenant();
                //            if (!iTenant.IsAnyConnection(tenant.TenantId))
                //            {
                //                string conStr = tenant.ConnectionString;
                //                ConnectionConfig connectionConfig = new ConnectionConfig()
                //                {
                //                    ConfigId = tenant.TenantId,
                //                    ConnectionString = conStr.DecryptDES(AppSecret.DB),
                //                    DbType = (SqlSugar.DbType)tenant.DbType,
                //                    IsAutoCloseConnection = true,
                //                    AopEvents = new AopEvents()
                //                    {
                //                        DataExecuting = SqlSugarAop.DataExecuting,
                                    }
                                };
                                iTenant.AddConnection(connectionConfig);
                            }
                //                    }
                //                };
                //                iTenant.AddConnection(connectionConfig);
                //            }
                            return iTenant.GetConnection(tenant.TenantId);
                        }
                    }
                }
                //            return iTenant.GetConnection(tenant.TenantId);
                //        }
                //    }
                //}
                return db;
            }
@@ -122,6 +122,11 @@
        {
            IInsertable<TEntity> insert = _db.Insertable(entity);
            return insert.ExecuteReturnIdentity();
        }
        public virtual bool AddData<TChild>(TEntity entity, Expression<Func<TEntity, List<TChild>>> expression) where TChild : class, new()
        {
            return _db.InsertNav(entity).Include(expression).ExecuteCommand();
        }
        /// <summary>
@@ -873,8 +878,8 @@
            {
                object? obj = Activator.CreateInstance(htyType);
                PropertyInfo keyPro = typeof(TEntity).GetKeyProperty();
                PropertyInfo? operateTypePro = htyType.GetProperty(nameof(OperateTypeEnum));
                PropertyInfo? sourceIdPro = htyType.GetProperty("SourceId");
                PropertyInfo? operateTypePro = htyType.GetProperty(nameof(IBaseHistoryEntity.OperateType));
                PropertyInfo? sourceIdPro = htyType.GetProperty(nameof(IBaseHistoryEntity.SourceId));
                if (obj != null && keyPro != null && operateTypePro != null && sourceIdPro != null)
                {
                    operateTypePro.SetValue(obj, operateType.ToString());
@@ -903,7 +908,8 @@
                            }
                        }
                    }
                    _db.InsertableByObject(obj).AS(type.Name + "_Hty").ExecuteCommand();
                    if (obj != null)
                        _db.InsertableByObject(obj).AS(type.Name + "_Hty").ExecuteCommand();
                }
            }
            return DeleteData(entity);
@@ -918,8 +924,8 @@
            {
                object? obj2 = Activator.CreateInstance(htyType);
                PropertyInfo keyPro = typeof(TEntity).GetKeyProperty();
                PropertyInfo? operateTypePro = htyType.GetProperty(nameof(OperateTypeEnum));
                PropertyInfo? sourceIdPro = htyType.GetProperty("SourceId");
                PropertyInfo? operateTypePro = htyType.GetProperty(nameof(IBaseHistoryEntity.OperateType));
                PropertyInfo? sourceIdPro = htyType.GetProperty(nameof(IBaseHistoryEntity.SourceId));
                if (obj2 != null && keyPro != null && operateTypePro != null && sourceIdPro != null)
                {
                    List<PropertyInfo> propertyInfos = htyType.GetProperties().Where(x => x.Name != operateTypePro.Name && x.Name != sourceIdPro.Name && x.Name != keyPro.Name).ToList();
@@ -955,7 +961,8 @@
                            list.Add(obj);
                        }
                    }
                    _db.InsertableByObject(list).AS(type.Name + "_Hty").ExecuteCommand();
                    if (list.Count > 0)
                        _db.InsertableByObject(list).AS(type.Name + "_Hty").ExecuteCommand();
                }
            }