/// <summary> /// 设置实体 /// </summary> /// <param name="entity">实体</param> private void SetObject(SQLBuilder sqlBuilder, BaseDepartmentEntity entity) { sqlBuilder.SetValue(BaseDepartmentEntity.FieldParentId, entity.ParentId); sqlBuilder.SetValue(BaseDepartmentEntity.FieldCode, entity.Code); sqlBuilder.SetValue(BaseDepartmentEntity.FieldShortName, entity.ShortName); sqlBuilder.SetValue(BaseDepartmentEntity.FieldFullName, entity.FullName); sqlBuilder.SetValue(BaseDepartmentEntity.FieldCategoryCode, entity.CategoryCode); sqlBuilder.SetValue(BaseDepartmentEntity.FieldOuterPhone, entity.OuterPhone); sqlBuilder.SetValue(BaseDepartmentEntity.FieldInnerPhone, entity.InnerPhone); sqlBuilder.SetValue(BaseDepartmentEntity.FieldFax, entity.Fax); sqlBuilder.SetValue(BaseDepartmentEntity.FieldDeletionStateCode, entity.DeletionStateCode); sqlBuilder.SetValue(BaseDepartmentEntity.FieldEnabled, entity.Enabled); sqlBuilder.SetValue(BaseDepartmentEntity.FieldSortCode, entity.SortCode); sqlBuilder.SetValue(BaseDepartmentEntity.FieldDescription, entity.Description); sqlBuilder.SetValue(BaseDepartmentEntity.FieldParentName, entity.ParentName); sqlBuilder.SetValue(BaseDepartmentEntity.FieldCompanyId, entity.CompanyId); sqlBuilder.SetValue(BaseDepartmentEntity.FieldCompanyName, entity.CompanyName); sqlBuilder.SetValue(BaseDepartmentEntity.FieldCompanyCode, entity.CompanyCode); sqlBuilder.SetValue(BaseDepartmentEntity.FieldParentCode, entity.ParentCode); sqlBuilder.SetValue(BaseDepartmentEntity.FieldCategoryName, entity.CategoryName); sqlBuilder.SetValue(BaseDepartmentEntity.FieldManagerId, entity.ManagerId); sqlBuilder.SetValue(BaseDepartmentEntity.FieldManager, entity.Manager); sqlBuilder.SetValue(BaseDepartmentEntity.FieldManagerQQ, entity.ManagerQQ); sqlBuilder.SetValue(BaseDepartmentEntity.FieldManagerMobile, entity.ManagerMobile); SetObjectExpand(sqlBuilder, entity); }
public static BaseDepartmentEntity GetObjectByName(BaseUserInfo userInfo, string companyId, string fullName) { BaseDepartmentEntity result = null; string url = BaseSystemInfo.UserCenterHost + "/UserCenterV42/DepartmentService.ashx"; WebClient webClient = new WebClient(); NameValueCollection postValues = new NameValueCollection(); postValues.Add("system", BaseSystemInfo.SoftFullName); postValues.Add("systemCode", BaseSystemInfo.SystemCode); postValues.Add("securityKey", BaseSystemInfo.SecurityKey); postValues.Add("function", "GetObjectByName"); postValues.Add("userInfo", userInfo.Serialize()); postValues.Add("encrypted", true.ToString()); postValues.Add("companyId", SecretUtil.Encrypt(companyId)); postValues.Add("fullName", SecretUtil.Encrypt(fullName)); // 向服务器发送POST数据 byte[] responseArray = webClient.UploadValues(url, postValues); string response = Encoding.UTF8.GetString(responseArray); if (!string.IsNullOrEmpty(response)) { result = JsonConvert.DeserializeObject <BaseDepartmentEntity>(response); } return(result); }
public static BaseDepartmentEntity GetObjectByNameByCache(BaseUserInfo userInfo, string companyId, string fullName) { BaseDepartmentEntity result = null; string key = "DBN:" + companyId + ":" + fullName; string id = string.Empty; using (var redisClient = PooledRedisHelper.GetReadOnlyClient()) { id = redisClient.Get <string>(key); if (!string.IsNullOrWhiteSpace(id)) { key = "D:" + id; result = redisClient.Get <BaseDepartmentEntity>(key); } } // 远程通过接口获取数据 if (result == null) { result = GetObjectByName(userInfo, companyId, fullName); } return(result); }
/// <summary> /// 从缓存获取获取实体 /// </summary> /// <param name="companyId">公司主键</param> /// <param name="fullName">部门名称</param> /// <returns>实体</returns> public static BaseDepartmentEntity GetObjectByNameByCache(string companyId, string fullName) { BaseDepartmentEntity result = null; if (!string.IsNullOrEmpty(companyId) && !string.IsNullOrEmpty(fullName)) { string id = string.Empty; string key = "DBN:" + companyId + ":" + fullName; using (var redisClient = PooledRedisHelper.GetReadOnlyClient()) { id = redisClient.Get <string>(key); if (!string.IsNullOrWhiteSpace(id)) { result = GetObjectByCache(id); } if (result == null) { BaseDepartmentManager departmentManager = new BaseDepartmentManager(); result = departmentManager.GetObjectByName(companyId, fullName); // 若是空的不用缓存,继续读取实体 if (result != null) { SetCache(result); } } } } return(result); }
public static BaseDepartmentEntity GetObject(BaseUserInfo userInfo, string id) { BaseDepartmentEntity result = null; string url = BaseSystemInfo.UserCenterHost + "/UserCenterV42/DepartmentService.ashx"; WebClient webClient = new WebClient(); NameValueCollection postValues = new NameValueCollection(); postValues.Add("system", BaseSystemInfo.SoftFullName); postValues.Add("systemCode", BaseSystemInfo.SystemCode); postValues.Add("securityKey", BaseSystemInfo.SecurityKey); // 2015-11-25 吉日嘎拉,这里还是从缓存里获取就可以了,提高登录的效率。 // postValues.Add("function", "GetObject"); postValues.Add("function", "GetObjectByCache"); postValues.Add("userInfo", userInfo.Serialize()); postValues.Add("encrypted", true.ToString()); postValues.Add("id", SecretUtil.Encrypt(id)); // 向服务器发送POST数据 byte[] responseArray = webClient.UploadValues(url, postValues); string response = Encoding.UTF8.GetString(responseArray); if (!string.IsNullOrEmpty(response)) { JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer(); result = javaScriptSerializer.Deserialize <BaseDepartmentEntity>(response); } return(result); }
/// <summary> /// 从缓存获取获取实体 /// </summary> /// <param name="id">主键</param> /// <returns>实体</returns> public static BaseDepartmentEntity GetObjectByCache(string id, bool fefreshCache = false) { BaseDepartmentEntity result = null; if (!string.IsNullOrEmpty(id)) { string key = "D:" + id; if (!fefreshCache) { result = GetCacheByKey(key); } if (result == null) { BaseDepartmentManager manager = new BaseDepartmentManager(); result = manager.GetObject(id); // 若是空的不用缓存,继续读取实体 if (result != null) { SetCache(result); } } } return(result); }
public static BaseDepartmentEntity GetObjectByCodeByCache(string code) { BaseDepartmentEntity result = null; if (string.IsNullOrEmpty(code)) { return(result); } // string key = "DepartmentByCode:" + code; string key = "DBC:" + code; string id = string.Empty; using (var redisClient = PooledRedisHelper.GetReadOnlyClient()) { id = redisClient.Get <string>(key); } if (!string.IsNullOrWhiteSpace(id)) { result = GetObjectByCache(id); } else { // 从数据库读取数据 BaseDepartmentManager departmentManager = new BaseDepartmentManager(); result = departmentManager.GetObjectByCode(code); // 设置缓存,没必要来个空操作 if (result != null) { SetCache(result); } } return(result); }
/// <summary> /// 实体修改记录 /// </summary> /// <param name="newEntity">修改前的实体对象</param> /// <param name="oldEntity">修改后的实体对象</param> /// <param name="tableName">表名称</param> public void UpdateEntityLog(BaseDepartmentEntity newEntity, BaseDepartmentEntity oldEntity, string tableName = null) { if (string.IsNullOrEmpty(tableName)) { tableName = this.CurrentTableName + "_LOG"; } BaseModifyRecordManager manager = new BaseModifyRecordManager(this.UserInfo, tableName); foreach (var property in typeof(BaseDepartmentEntity).GetProperties()) { var oldValue = Convert.ToString(property.GetValue(oldEntity, null)); var newValue = Convert.ToString(property.GetValue(newEntity, null)); //不记录创建人、修改人、没有修改的记录 var fieldDescription = property.GetCustomAttributes(typeof(FieldDescription), false).FirstOrDefault() as FieldDescription; if (!fieldDescription.NeedLog || oldValue == newValue) { continue; } var record = new BaseModifyRecordEntity(); record.ColumnCode = property.Name.ToUpper(); record.ColumnDescription = fieldDescription.Text; record.NewValue = newValue; record.OldValue = oldValue; record.TableCode = this.CurrentTableName.ToUpper(); record.TableDescription = FieldExtensions.ToDescription(typeof(BaseDepartmentEntity), "TableName"); record.RecordKey = oldEntity.Id.ToString(); record.IPAddress = Utilities.GetIPAddress(true); manager.Add(record, true, false); } }
public int Update(BaseDepartmentEntity entity, out string statusCode) { int result = 0; List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BaseDepartmentEntity.FieldParentId, entity.ParentId)); parameters.Add(new KeyValuePair <string, object>(BaseDepartmentEntity.FieldFullName, entity.FullName)); parameters.Add(new KeyValuePair <string, object>(BaseDepartmentEntity.FieldDeletionStateCode, 0)); if (this.Exists(parameters, entity.Id)) { // 名称已重复 statusCode = Status.ErrorNameExist.ToString(); } else { // 检查编号是否重复 parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BaseDepartmentEntity.FieldCode, entity.Code)); parameters.Add(new KeyValuePair <string, object>(BaseDepartmentEntity.FieldDeletionStateCode, 0)); if (entity.Code.Length > 0 && this.Exists(parameters, entity.Id)) { // 编号已重复 statusCode = Status.ErrorCodeExist.ToString(); } else { // 获取原始实体信息 var entityOld = this.GetObject(entity.Id); // 保存修改记录 this.UpdateEntityLog(entity, entityOld); // 1:更新部门的信息 result = this.UpdateObject(entity); // 2:组织机构修改时,用户表的公司,部门,工作组数据给同步更新。 BaseUserManager userManager = new BaseUserManager(this.DbHelper, this.UserInfo); userManager.SetProperty(new KeyValuePair <string, object>(BaseUserEntity.FieldDepartmentId, entity.Id), new KeyValuePair <string, object>(BaseUserEntity.FieldDepartmentName, entity.FullName)); // 03:组织机构修改时,文件夹同步更新 // BaseFolderManager folderManager = new BaseFolderManager(this.DbHelper, this.UserInfo); // folderManager.SetProperty(new KeyValuePair<string, object>(BaseFolderEntity.FieldFolderName, entity.FullName), new KeyValuePair<string, object>(BaseFolderEntity.FieldId, entity.Id)); if (result == 1) { statusCode = Status.OKUpdate.ToString(); } else { statusCode = Status.ErrorDeleted.ToString(); } } } //} return(result); }
/// <summary> /// 添加之后,需要重新刷新缓存,否则其他读取数据的地方会乱了,或者不及时了 /// 宋彪 /// </summary> /// <param name="entity">实体</param> /// <returns></returns> public int AfterAdd(BaseDepartmentEntity entity) { int result = 0; // 2016-01-28 更新用户缓存 using (var redisClient = PooledRedisHelper.GetClient()) { BaseDepartmentManager.CacheContractAreaPreheatingSpelling(redisClient, entity); } return(result); }
/// <summary> /// 获取实体 /// </summary> /// <param name="userInfo">用户</param> /// <param name="id">主键</param> /// <returns>实体</returns> public BaseDepartmentEntity GetObject(BaseUserInfo userInfo, string id) { BaseDepartmentEntity result = null; var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterReadDb(userInfo, parameter, (dbHelper) => { var manager = new BaseDepartmentManager(dbHelper, userInfo); result = manager.GetObject(id); }); return(result); }
public static BaseDepartmentEntity GetCacheByKey(string key) { BaseDepartmentEntity result = null; if (!string.IsNullOrWhiteSpace(key)) { using (var redisClient = PooledRedisHelper.GetReadOnlyClient()) { result = redisClient.Get <BaseDepartmentEntity>(key); } } return(result); }
public static BaseDepartmentEntity GetCache(string key) { BaseDepartmentEntity result = null; if (!string.IsNullOrWhiteSpace(key)) { System.Web.Caching.Cache cache = HttpRuntime.Cache; if (cache != null && cache[key] != null) { result = cache[key] as BaseDepartmentEntity; } } return(result); }
/// <summary> /// 设置缓存 /// </summary> /// <param name="entity">实体</param> public static void SetCache(BaseDepartmentEntity entity) { if (entity != null && entity.Id != null) { string key = string.Empty; System.Web.Caching.Cache cache = HttpRuntime.Cache; key = "Department" + entity.Id; cache.Add(key, entity, null, DateTime.Now.AddHours(16), TimeSpan.Zero, CacheItemPriority.Normal, null); key = "DepartmentByCode" + entity.Code; cache.Add(key, entity, null, DateTime.Now.AddHours(16), TimeSpan.Zero, CacheItemPriority.Normal, null); key = "DepartmentByName" + entity.FullName; cache.Add(key, entity, null, DateTime.Now.AddHours(16), TimeSpan.Zero, CacheItemPriority.Normal, null); } }
/// <summary> /// 更新组织机构 /// </summary> /// <param name="userInfo">用户</param> /// <param name="entity">实体</param> /// <param name="statusCode">状态码</param> /// <param name="statusMessage">状态信息</param> /// <returns>影响行数</returns> public int Update(BaseUserInfo userInfo, BaseDepartmentEntity entity, out string statusCode, out string statusMessage) { int result = 0; string returnCode = string.Empty; string returnMessage = string.Empty; var parameter = ServiceInfo.Create(userInfo, MethodBase.GetCurrentMethod()); ServiceUtil.ProcessUserCenterWriteDb(userInfo, parameter, (dbHelper) => { var manager = new BaseDepartmentManager(dbHelper, userInfo); result = manager.Update(entity, out returnCode); returnMessage = manager.GetStateMessage(returnCode); }); statusCode = returnCode; statusMessage = returnMessage; return(result); }
public override int BatchSave(DataTable dt) { int result = 0; BaseDepartmentEntity entity = new BaseDepartmentEntity(); foreach (DataRow dr in dt.Rows) { // 删除状态 if (dr.RowState == DataRowState.Deleted) { string id = dr[BaseDepartmentEntity.FieldId, DataRowVersion.Original].ToString(); if (id.Length > 0) { result += this.DeleteObject(id); } } // 被修改过 if (dr.RowState == DataRowState.Modified) { string id = dr[BaseDepartmentEntity.FieldId, DataRowVersion.Original].ToString(); if (id.Length > 0) { entity.GetFrom(dr); result += this.UpdateObject(entity); } } // 添加状态 if (dr.RowState == DataRowState.Added) { entity.GetFrom(dr); result += this.AddObject(entity).Length > 0 ? 1 : 0; } if (dr.RowState == DataRowState.Unchanged) { continue; } if (dr.RowState == DataRowState.Detached) { continue; } } return(result); }
/// <summary> /// 承包区缓存预热 宋彪 /// 网点下的承包区查询条件:CATEGORYCODE = 7 AND and COMPANYID=‘网点id’ /// 找到所有承包区的条件 /// CATEGORYCODE = 7 AND COMPANYID IN(SELECT ID FROM BASEORGANIZE) /// </summary> /// <param name="flushDb"></param> public static void CacheContractAreaPreheatingSpelling(bool flushDb = false) { // 组织机构数据缓存预热实现 BaseDepartmentManager departmentManager = new Business.BaseDepartmentManager(); // 减少数据库连接、减少内存站用、一边度取、一边设置缓存,只读取需要的数据 departmentManager.SelectFields = BaseDepartmentEntity.FieldCompanyId + " , " + BaseDepartmentEntity.FieldFullName + " , " + BaseDepartmentEntity.FieldManager + " , " + BaseDepartmentEntity.FieldManagerId + " , " + BaseDepartmentEntity.FieldEnabled + " , " + BaseDepartmentEntity.FieldDeletionStateCode; using (var redisClient = PooledRedisHelper.GetClient()) { if (flushDb) { redisClient.FlushDb(); } double score = 0; // 获取某个网点下的承包区 循环进行缓存 using (IDataReader dataReader = departmentManager.ExecuteReaderByWhere(" CATEGORYCODE = 7 AND COMPANYID IN (SELECT ID FROM BASEORGANIZE) AND DeletionStateCode=0 ", null, 0, BaseDepartmentEntity.FieldFullName)) { while (dataReader.Read()) { // 具体使用时 使用承包区主管的ID和承包区的名字,不要使用部门的ID,因为费用计算时是扣到具体的承包区主管的 承包区是属于具体网点 BaseDepartmentEntity entity = new BaseDepartmentEntity(); entity.ManagerId = dataReader[BaseDepartmentEntity.FieldManagerId].ToString(); entity.Code = dataReader[BaseDepartmentEntity.FieldCode].ToString(); entity.FullName = dataReader[BaseDepartmentEntity.FieldFullName].ToString(); entity.CompanyId = dataReader[BaseDepartmentEntity.FieldCompanyId].ToString(); score++; CacheContractAreaPreheatingSpelling(redisClient, entity, score); // 2016-02-02 吉日嘎拉 设置一下排序属性 departmentManager.SetProperty(entity.Id, new KeyValuePair <string, object>(BaseDepartmentEntity.FieldSortCode, score)); } } } }
/// <summary> /// 设置缓存 /// 这里缓存的数据容量控制了一下,只保存Id,会节约内存空间 /// </summary> /// <param name="entity">实体</param> public static void SetCache(BaseDepartmentEntity entity) { if (entity != null && entity.Id != null) { string key = string.Empty; using (var redisClient = PooledRedisHelper.GetClient()) { // key = "Department:" + entity.Id; key = "D:" + entity.Id; redisClient.Set <BaseDepartmentEntity>(key, entity, DateTime.Now.AddHours(16)); // key = "DepartmentByName:"+entity.CompanyId +":"+ entity.FullName; key = "DBN:" + entity.CompanyId + ":" + entity.FullName; redisClient.Set <string>(key, entity.Id.ToString(), DateTime.Now.AddHours(16)); // key = "DepartmentByCode:" + entity.Code; // 2016-01-22 吉日嘎拉,若不同的公司编号重复,有待改进 key = "DBC:" + entity.Code; redisClient.Set <string>(key, entity.Id.ToString(), DateTime.Now.AddHours(16)); } } }
/// <summary> /// 更新实体 /// </summary> /// <param name="entity">实体</param> public int UpdateObject(BaseDepartmentEntity entity) { SQLBuilder sqlBuilder = new SQLBuilder(DbHelper); sqlBuilder.BeginUpdate(this.CurrentTableName); this.SetObject(sqlBuilder, entity); if (UserInfo != null) { sqlBuilder.SetValue(BaseDepartmentEntity.FieldModifiedUserId, UserInfo.Id); sqlBuilder.SetValue(BaseDepartmentEntity.FieldModifiedBy, UserInfo.RealName); } // 若有修改时间标示,那就按修改时间来,不是按最新的时间来 if (entity.ModifiedOn.HasValue) { sqlBuilder.SetValue(BaseDepartmentEntity.FieldModifiedOn, entity.ModifiedOn.Value); } else { sqlBuilder.SetDBNow(BaseDepartmentEntity.FieldModifiedOn); } sqlBuilder.SetWhere(BaseDepartmentEntity.FieldId, entity.Id); return(sqlBuilder.EndUpdate()); }
partial void SetObjectExpand(SQLBuilder sqlBuilder, BaseDepartmentEntity entity);
/// <summary> /// 按实体缓存承包区 宋彪 /// </summary> /// <param name="redisClient"></param> /// <param name="score"></param> /// <param name="departmentEntity"></param> public static void CacheContractAreaPreheatingSpelling(IRedisClient redisClient, BaseDepartmentEntity departmentEntity, double score = 0) { // 承包区主管id字段不可为空,对应的是用户的Id if (!string.IsNullOrWhiteSpace(departmentEntity.ManagerId)) { string contractArea = departmentEntity.ManagerId + ";" + departmentEntity.Code + ";" + departmentEntity.FullName; string key = string.Empty; // 01:所有承包区查询的缓存数据方法 编号是按网点code生成 至少输入4个编号才返回查询结果 for (int i = 4; i <= departmentEntity.Code.Length; i++) { key = "ContractArea:" + departmentEntity.CompanyId + ":" + departmentEntity.Code.Substring(0, i).ToLower(); redisClient.AddItemToSortedSet(key, contractArea, score); redisClient.ExpireEntryAt(key, DateTime.Now.AddDays(15)); } // 02:按承包区名字查询的缓存 for (int i = 1; i <= departmentEntity.FullName.Length; i++) { key = "ContractArea:" + departmentEntity.CompanyId + ":" + departmentEntity.FullName.Substring(0, i).ToLower(); redisClient.AddItemToSortedSet(key, contractArea, score); redisClient.ExpireEntryAt(key, DateTime.Now.AddDays(15)); } } }
public string Add(BaseDepartmentEntity entity, out string statusCode) { string result = string.Empty; // 检查是否重复 List <KeyValuePair <string, object> > parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BaseDepartmentEntity.FieldParentId, entity.ParentId)); parameters.Add(new KeyValuePair <string, object>(BaseDepartmentEntity.FieldFullName, entity.FullName)); parameters.Add(new KeyValuePair <string, object>(BaseDepartmentEntity.FieldDeletionStateCode, 0)); //注意Access 的时候,类型不匹配,会出错故此将 Id 传入 if (BaseSystemInfo.UserCenterDbType == CurrentDbType.Access) { if (this.Exists(parameters, entity.Id)) { // 名称已重复 statusCode = Status.ErrorNameExist.ToString(); } else { parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BaseDepartmentEntity.FieldCode, entity.Code)); parameters.Add(new KeyValuePair <string, object>(BaseDepartmentEntity.FieldDeletionStateCode, 0)); if (entity.Code.Length > 0 && this.Exists(parameters)) { // 编号已重复 statusCode = Status.ErrorCodeExist.ToString(); } else { result = this.AddObject(entity); // 运行成功 statusCode = Status.OKAdd.ToString(); AfterAdd(entity); } } } else if (this.Exists(parameters)) { // 名称已重复 statusCode = Status.ErrorNameExist.ToString(); } else { parameters = new List <KeyValuePair <string, object> >(); parameters.Add(new KeyValuePair <string, object>(BaseDepartmentEntity.FieldCode, entity.Code)); parameters.Add(new KeyValuePair <string, object>(BaseDepartmentEntity.FieldDeletionStateCode, 0)); if (entity.Code.Length > 0 && this.Exists(parameters)) { // 编号已重复 statusCode = Status.ErrorCodeExist.ToString(); } else { result = this.AddObject(entity); // 运行成功 statusCode = Status.OKAdd.ToString(); AfterAdd(entity); } } return(result); }
/// <summary> /// 添加 /// </summary> /// <param name="entity">实体</param> /// <returns>主键</returns> public string Add(BaseDepartmentEntity entity) { return(this.AddObject(entity)); }
/// <summary> /// 添加 /// </summary> /// <param name="entity">实体</param> /// <param name="identity">自增量方式</param> /// <param name="returnId">返回主鍵</param> /// <returns>主键</returns> public string Add(BaseDepartmentEntity entity, bool identity, bool returnId) { this.Identity = identity; this.ReturnId = returnId; return(this.AddObject(entity)); }
/// <summary> /// 更新 /// </summary> /// <param name="entity">实体</param> public int Update(BaseDepartmentEntity entity) { return(this.UpdateObject(entity)); }
/// <summary> /// 添加实体 /// </summary> /// <param name="entity">实体</param> public string AddObject(BaseDepartmentEntity entity) { string sequence = string.Empty; if (!entity.SortCode.HasValue) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); sequence = sequenceManager.Increment(this.CurrentTableName); entity.SortCode = int.Parse(sequence); } SQLBuilder sqlBuilder = new SQLBuilder(DbHelper, this.Identity, this.ReturnId); sqlBuilder.BeginInsert(this.CurrentTableName, BaseDepartmentEntity.FieldId); if (entity.Id.HasValue || !this.Identity) { sqlBuilder.SetValue(BaseDepartmentEntity.FieldId, entity.Id); } else { if (!this.ReturnId && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (DbHelper.CurrentDbType == CurrentDbType.Oracle) { sqlBuilder.SetFormula(BaseDepartmentEntity.FieldId, "SEQ_" + BaseDepartmentEntity.TableName.ToUpper() + ".NEXTVAL "); } if (DbHelper.CurrentDbType == CurrentDbType.DB2) { sqlBuilder.SetFormula(BaseDepartmentEntity.FieldId, "NEXT VALUE FOR SEQ_" + BaseDepartmentEntity.TableName.ToUpper()); } } else { if (this.Identity && (DbHelper.CurrentDbType == CurrentDbType.Oracle || DbHelper.CurrentDbType == CurrentDbType.DB2)) { if (entity.Id == null) { if (string.IsNullOrEmpty(sequence)) { BaseSequenceManager sequenceManager = new BaseSequenceManager(DbHelper, this.Identity); sequence = sequenceManager.Increment(BaseDepartmentEntity.TableName); } entity.Id = int.Parse(sequence); } sqlBuilder.SetValue(BaseDepartmentEntity.FieldId, entity.Id); } } } this.SetObject(sqlBuilder, entity); // 创建人信息 if (!string.IsNullOrEmpty(entity.CreateUserId)) { sqlBuilder.SetValue(BaseDepartmentEntity.FieldCreateUserId, entity.CreateUserId); } else { if (UserInfo != null) { sqlBuilder.SetValue(BaseDepartmentEntity.FieldCreateUserId, UserInfo.Id); } } if (!string.IsNullOrEmpty(entity.CreateBy)) { sqlBuilder.SetValue(BaseDepartmentEntity.FieldCreateBy, entity.CreateBy); } else { if (UserInfo != null) { sqlBuilder.SetValue(BaseDepartmentEntity.FieldCreateBy, UserInfo.RealName); } } if (entity.CreateOn.HasValue) { sqlBuilder.SetValue(BaseDepartmentEntity.FieldCreateOn, entity.CreateOn); } else { sqlBuilder.SetDBNow(BaseDepartmentEntity.FieldCreateOn); } // 修改人信息 if (!string.IsNullOrEmpty(entity.ModifiedUserId)) { sqlBuilder.SetValue(BaseDepartmentEntity.FieldModifiedUserId, entity.ModifiedUserId); } else { if (UserInfo != null) { sqlBuilder.SetValue(BaseDepartmentEntity.FieldModifiedUserId, UserInfo.Id); } } if (!string.IsNullOrEmpty(entity.ModifiedBy)) { sqlBuilder.SetValue(BaseDepartmentEntity.FieldModifiedBy, entity.ModifiedBy); } else { if (UserInfo != null) { sqlBuilder.SetValue(BaseDepartmentEntity.FieldModifiedBy, UserInfo.RealName); } } if (entity.ModifiedOn.HasValue) { sqlBuilder.SetValue(BaseDepartmentEntity.FieldModifiedOn, entity.ModifiedOn); } else { sqlBuilder.SetDBNow(BaseDepartmentEntity.FieldModifiedOn); } if (DbHelper.CurrentDbType == CurrentDbType.SqlServer && this.Identity) { sequence = sqlBuilder.EndInsert().ToString(); } else { sqlBuilder.EndInsert(); } return(sequence); }