| | |
| | | CodeRuleAttribute? codeRuleAttribute = propertyInfo.GetCustomAttribute<CodeRuleAttribute>(); |
| | | if (codeRuleAttribute != null) |
| | | { |
| | | SqlSugarClient sugarClient = new SqlSugarClient(new ConnectionConfig |
| | | if (propertyInfo.GetValue(entityInfo.EntityValue) == null) |
| | | { |
| | | ConfigId = MainDb.CurrentDbConnId, |
| | | ConnectionString = DBContext.GetMainConnectionDb().Connection, |
| | | IsAutoCloseConnection = true, |
| | | DbType = MainDb.DbType, |
| | | }); |
| | | dynamic ruleConfig = sugarClient.Queryable(MainDb.CodeRuleConfig, "x").Where(nameof(CodeRuleAttribute.RuleCode), "=", codeRuleAttribute.RuleCode.ToString()).First(); |
| | | if (ruleConfig != null) |
| | | { |
| | | string code = CreateCodeByRule(ruleConfig, sugarClient); |
| | | propertyInfo.SetValue(entityInfo.EntityValue, code, null); |
| | | SqlSugarClient sugarClient = new SqlSugarClient(new ConnectionConfig |
| | | { |
| | | ConfigId = MainDb.CurrentDbConnId, |
| | | ConnectionString = DBContext.GetMainConnectionDb().Connection, |
| | | IsAutoCloseConnection = true, |
| | | DbType = MainDb.DbType, |
| | | }); |
| | | dynamic ruleConfig = sugarClient.Queryable(MainDb.CodeRuleConfig, "x").Where(nameof(CodeRuleAttribute.RuleCode), "=", codeRuleAttribute.RuleCode.ToString()).First(); |
| | | if (ruleConfig != null) |
| | | { |
| | | string code = CreateCodeByRule(ruleConfig, sugarClient); |
| | | propertyInfo.SetValue(entityInfo.EntityValue, code, null); |
| | | } |
| | | } |
| | | } |
| | | |
| | | SequenceAttirbute? sequenceAttirbute = propertyInfo.GetCustomAttribute<SequenceAttirbute>(); |
| | | SequenceAttribute? sequenceAttirbute = propertyInfo.GetCustomAttribute<SequenceAttribute>(); |
| | | if (sequenceAttirbute != null) |
| | | { |
| | | if (propertyInfo.GetValue(entityInfo.EntityValue)?.ObjToInt() <= 0) |
| | |
| | | int seq = sugarClient.Ado.GetScalar($"SELECT NEXT VALUE FOR {sequenceAttirbute.SequenceName}").ObjToInt(); |
| | | propertyInfo.SetValue(entityInfo.EntityValue, seq, null); |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | if (entityInfo.EntityValue is BaseEntity baseEntity) |
| | | { |
| | | // 鏂板鎿嶄綔 |
| | | if (entityInfo.OperationType == DataFilterType.InsertByObject) |
| | | if (entityInfo.OperationType == DataFilterType.InsertByObject && entityInfo.PropertyName == nameof(BaseEntity.CreateDate)) |
| | | { |
| | | if (entityInfo.PropertyName == nameof(BaseEntity.CreateDate)) |
| | | { |
| | | baseEntity.CreateDate = DateTime.Now; |
| | | } |
| | | baseEntity.CreateDate = DateTime.Now; |
| | | } |
| | | |
| | | if (entityInfo.OperationType == DataFilterType.UpdateByObject) |
| | | if (entityInfo.OperationType == DataFilterType.UpdateByObject && entityInfo.PropertyName == nameof(BaseEntity.ModifyDate)) |
| | | { |
| | | baseEntity.ModifyDate = DateTime.Now; |
| | | } |
| | | |
| | | |
| | | //if (App.User?.UserId > 0) |
| | | { |
| | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | private static void UpdateConfigData(dynamic ruleConfig) |
| | | { |
| | | try |
| | | if (entityInfo.EntityValue is IBaseHistoryEntity baseHistoryEntity) |
| | | { |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | |
| | | if (entityInfo.OperationType == DataFilterType.InsertByObject && entityInfo.PropertyName == nameof(IBaseHistoryEntity.InsertTime)) |
| | | { |
| | | baseHistoryEntity.InsertTime = DateTime.Now; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | sugarClient.Updateable(keyValuePairs).AS(MainDb.CodeRuleConfig).WhereColumns(nameof(ruleConfig.Id)).ExecuteCommand(); |
| | | } |
| | | return code; |
| | | } |
| | | |
| | | 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 = "銆怱QL鍙傛暟銆戯細"; |
| | | foreach (var param in pars) |
| | | { |
| | | key += $"{param.ParameterName}:{param.Value}\n"; |
| | | } |
| | | |
| | | return key; |
| | | } |
| | | } |
| | | } |