/// <summary> /// 同步用户权限 /// </summary> internal void SyncUser(PositionPersonnelData personnel) { if (personnel == null) { return; } _posAccess.DataBase = Access.DataBase; if (personnel.AuditState != AuditStateType.Pass || personnel.DepartmentId <= 0) { DiscardUser(personnel); return; } if (personnel.UserId <= 0) { InsertUser(personnel); return; } var user = Access.First(personnel.UserId); if (user == null) { InsertUser(personnel); return; } EnableUser(user, personnel); }
/// <summary> /// 读取Form传过来的数据 /// </summary> /// <param name="data">数据</param> /// <param name="convert">转化器</param> protected void DefaultReadFormData(PositionPersonnelData data, FormConvert convert) { //数据 data.Appellation = convert.ToString("Appellation"); data.OrganizePositionId = convert.ToInteger("OrganizePositionId"); //备注 data.Memo = convert.ToString("Memo"); }
/// <summary> /// 保存完成后期处理(Insert或Update) /// </summary> /// <param name="entity"></param> protected sealed override void OnDataSaved(PositionPersonnelData entity) { using (var proxy = new RedisProxy(RedisProxy.DbComboCache)) { proxy.RemoveKey(treeKey); proxy.RemoveKey(comboKey); } }
private static void CacheUser(PositionPersonnelData personnel, UserData user) { using (var proxy = new RedisProxy(RedisProxy.DbSystem)) { Cache(proxy, user); proxy.SetValue(BuildDataKey("depid", personnel.UserId), personnel.DepartmentId); proxy.SetEntity(personnel); } }
private void EnableUser(UserData user, PositionPersonnelData personnel) { user.UserName = personnel.Mobile; user.RealName = personnel.Personnel; if (personnel.RoleId > 0) { user.RoleId = personnel.RoleId; } else if (user.RoleId > 0) { _posAccess.SetValue(p => p.RoleId, user.RoleId, personnel.PersonnelId); } user.AuditState = AuditStateType.Pass; user.DataState = DataStateType.Enable; user.Memo = personnel.Department; Access.Update(user); LogRecorder.RecordLoginLog("用户{0}-{1}({2})已重新启用", personnel.Personnel, user.UserName, user.Id); CacheUser(personnel, user); }
private void InsertUser(PositionPersonnelData personnel) { UserData user; Access.Insert(user = new UserData { Id = personnel.PersonnelId, UserName = personnel.Mobile, RealName = personnel.Personnel, RoleId = personnel.RoleId, PassWord = default_password, AuditState = AuditStateType.Pass, DataState = DataStateType.Enable, Memo = personnel.Department }); var pAccess = new PersonnelDataAccess(); pAccess.SetValue(p => p.UserId, user.Id, personnel.PersonnelId); LogRecorder.RecordLoginLog("用户{0}-{1}({2})已加入系统", user.UserName, personnel.Personnel, user.Id); CacheUser(personnel, user); }
private void DiscardUser(PositionPersonnelData personnel) { if (personnel.UserId <= 0) { return; } var user = Details(personnel.UserId); if (user == null) { return; } user.DataState = DataStateType.Discard; user.AuditState = AuditStateType.None; Access.Update(user); LogRecorder.RecordLoginLog(personnel.DepartmentId == 0 ? "用户{0}-{1}因为没有分配职位而被系统废弃" : "用户{0}-{1}职位分配数据未审核通过被系统废弃" , personnel.Personnel , personnel.UserId); CacheUser(personnel, user); }
/// <summary> /// 载入数据 /// </summary> /// <param name="reader">数据读取器</param> /// <param name="entity">读取数据的实体</param> public override void SimpleLoad(MySqlDataReader reader, PositionPersonnelData entity) { using (new EditScope(entity.__EntityStatus, EditArrestMode.All, false)) { entity._id = (int)reader.GetInt32(0); if (!reader.IsDBNull(1)) { entity._personnel = reader.GetString(1).ToString(); } if (!reader.IsDBNull(2)) { entity._appellation = reader.GetString(2).ToString(); } if (!reader.IsDBNull(3)) { entity._position = reader.GetString(3).ToString(); } if (!reader.IsDBNull(4)) { entity._role = reader.GetString(4).ToString(); } if (!reader.IsDBNull(5)) { entity._six = (bool)reader.GetBoolean(5); } if (!reader.IsDBNull(6)) { try{ entity._birthday = reader.GetMySqlDateTime(6).Value; }catch {} } if (!reader.IsDBNull(7)) { entity._tel = reader.GetString(7).ToString(); } if (!reader.IsDBNull(8)) { entity._mobile = reader.GetString(8).ToString(); } if (!reader.IsDBNull(9)) { entity._organization = reader.GetString(9).ToString(); } if (!reader.IsDBNull(10)) { entity._department = reader.GetString(10).ToString(); } if (!reader.IsDBNull(11)) { entity._memo = reader.GetString(11).ToString(); } if (!reader.IsDBNull(12)) { entity._datastate = (DataStateType)reader.GetInt32(12); } if (!reader.IsDBNull(13)) { entity._isfreeze = (bool)reader.GetBoolean(13); } if (!reader.IsDBNull(14)) { entity._auditstate = (AuditStateType)reader.GetInt32(14); } } }
/// <summary> /// 设置插入数据的命令 /// </summary> /// <param name="entity">实体对象</param> /// <param name="cmd">命令</param> /// <returns>返回真说明要取主键</returns> protected sealed override bool SetInsertCommand(PositionPersonnelData entity, MySqlCommand cmd) { cmd.CommandText = InsertSqlCode; CreateFullSqlParameter(entity, cmd); return(true); }
/// <summary> /// 设置更新数据的命令 /// </summary> /// <param name="entity">实体对象</param> /// <param name="cmd">命令</param> protected sealed override void SetUpdateCommand(PositionPersonnelData entity, MySqlCommand cmd) { cmd.CommandText = UpdateSqlCode; CreateFullSqlParameter(entity, cmd); }
/// <summary> /// 设置插入数据的命令 /// </summary> /// <param name="entity">实体对象</param> /// <param name="cmd">命令</param> /// <returns>返回真说明要取主键</returns> private void CreateFullSqlParameter(PositionPersonnelData entity, MySqlCommand cmd) { //02:标识(Id) cmd.Parameters.Add(new MySqlParameter("Id", MySqlDbType.Int32) { Value = entity.Id }); //03:员工标识(PersonnelId) cmd.Parameters.Add(new MySqlParameter("PersonnelId", MySqlDbType.Int32) { Value = entity.PersonnelId }); //04:职员(Personnel) var isNull = string.IsNullOrWhiteSpace(entity.Personnel); var parameter = new MySqlParameter("Personnel", MySqlDbType.VarString, isNull ? 10 : (entity.Personnel).Length); if (isNull) { parameter.Value = DBNull.Value; } else { parameter.Value = entity.Personnel; } cmd.Parameters.Add(parameter); //05:称谓(Appellation) isNull = string.IsNullOrWhiteSpace(entity.Appellation); parameter = new MySqlParameter("Appellation", MySqlDbType.VarString, isNull ? 10 : (entity.Appellation).Length); if (isNull) { parameter.Value = DBNull.Value; } else { parameter.Value = entity.Appellation; } cmd.Parameters.Add(parameter); //06:职位标识(OrganizePositionId) cmd.Parameters.Add(new MySqlParameter("OrganizePositionId", MySqlDbType.Int32) { Value = entity.OrganizePositionId }); //07:职位(Position) isNull = string.IsNullOrWhiteSpace(entity.Position); parameter = new MySqlParameter("Position", MySqlDbType.VarString, isNull ? 10 : (entity.Position).Length); if (isNull) { parameter.Value = DBNull.Value; } else { parameter.Value = entity.Position; } cmd.Parameters.Add(parameter); //08:角色标识(RoleId) cmd.Parameters.Add(new MySqlParameter("RoleId", MySqlDbType.Int32) { Value = entity.RoleId }); //09:角色(Role) isNull = string.IsNullOrWhiteSpace(entity.Role); parameter = new MySqlParameter("Role", MySqlDbType.VarString, isNull ? 10 : (entity.Role).Length); if (isNull) { parameter.Value = DBNull.Value; } else { parameter.Value = entity.Role; } cmd.Parameters.Add(parameter); //10:性别(Six) cmd.Parameters.Add(new MySqlParameter("Six", MySqlDbType.Byte) { Value = entity.Six ? (byte)1 : (byte)0 }); //11:生日(Birthday) isNull = entity.Birthday.Year < 1900; parameter = new MySqlParameter("Birthday", MySqlDbType.DateTime); if (isNull) { parameter.Value = DBNull.Value; } else { parameter.Value = entity.Birthday; } cmd.Parameters.Add(parameter); //12:电话(Tel) isNull = string.IsNullOrWhiteSpace(entity.Tel); parameter = new MySqlParameter("Tel", MySqlDbType.VarString, isNull ? 10 : (entity.Tel).Length); if (isNull) { parameter.Value = DBNull.Value; } else { parameter.Value = entity.Tel; } cmd.Parameters.Add(parameter); //13:手机(Mobile) isNull = string.IsNullOrWhiteSpace(entity.Mobile); parameter = new MySqlParameter("Mobile", MySqlDbType.VarString, isNull ? 10 : (entity.Mobile).Length); if (isNull) { parameter.Value = DBNull.Value; } else { parameter.Value = entity.Mobile; } cmd.Parameters.Add(parameter); //14:机构标识(OrganizationId) cmd.Parameters.Add(new MySqlParameter("OrganizationId", MySqlDbType.Int32) { Value = entity.OrganizationId }); //15:所在机构(Organization) isNull = string.IsNullOrWhiteSpace(entity.Organization); parameter = new MySqlParameter("Organization", MySqlDbType.VarString, isNull ? 10 : (entity.Organization).Length); if (isNull) { parameter.Value = DBNull.Value; } else { parameter.Value = entity.Organization; } cmd.Parameters.Add(parameter); //16:部门外键(DepartmentId) cmd.Parameters.Add(new MySqlParameter("DepartmentId", MySqlDbType.Int32) { Value = entity.DepartmentId }); //17:部门(Department) isNull = string.IsNullOrWhiteSpace(entity.Department); parameter = new MySqlParameter("Department", MySqlDbType.VarString, isNull ? 10 : (entity.Department).Length); if (isNull) { parameter.Value = DBNull.Value; } else { parameter.Value = entity.Department; } cmd.Parameters.Add(parameter); //18:备注(Memo) isNull = string.IsNullOrWhiteSpace(entity.Memo); parameter = new MySqlParameter("Memo", MySqlDbType.Text, isNull ? 10 : (entity.Memo).Length); if (isNull) { parameter.Value = DBNull.Value; } else { parameter.Value = entity.Memo; } cmd.Parameters.Add(parameter); //19:数据状态(DataState) cmd.Parameters.Add(new MySqlParameter("DataState", MySqlDbType.Int32) { Value = (int)entity.DataState }); //20:数据是否已冻结(IsFreeze) cmd.Parameters.Add(new MySqlParameter("IsFreeze", MySqlDbType.Byte) { Value = entity.IsFreeze ? (byte)1 : (byte)0 }); //21:制作人(AuthorID) cmd.Parameters.Add(new MySqlParameter("AuthorID", MySqlDbType.Int32) { Value = entity.AuthorID }); //22:制作时间(AddDate) isNull = entity.AddDate.Year < 1900; parameter = new MySqlParameter("AddDate", MySqlDbType.DateTime); if (isNull) { parameter.Value = DBNull.Value; } else { parameter.Value = entity.AddDate; } cmd.Parameters.Add(parameter); //23:最后修改者(LastReviserID) cmd.Parameters.Add(new MySqlParameter("LastReviserID", MySqlDbType.Int32) { Value = entity.LastReviserID }); //24:最后修改日期(LastModifyDate) isNull = entity.LastModifyDate.Year < 1900; parameter = new MySqlParameter("LastModifyDate", MySqlDbType.DateTime); if (isNull) { parameter.Value = DBNull.Value; } else { parameter.Value = entity.LastModifyDate; } cmd.Parameters.Add(parameter); //25:审核状态(AuditState) cmd.Parameters.Add(new MySqlParameter("AuditState", MySqlDbType.Int32) { Value = (int)entity.AuditState }); //26:审核人(AuditorId) cmd.Parameters.Add(new MySqlParameter("AuditorId", MySqlDbType.Int32) { Value = entity.AuditorId }); //27:审核时间(AuditDate) isNull = entity.AuditDate.Year < 1900; parameter = new MySqlParameter("AuditDate", MySqlDbType.DateTime); if (isNull) { parameter.Value = DBNull.Value; } else { parameter.Value = entity.AuditDate; } cmd.Parameters.Add(parameter); //29:系统用户外键(UserId) cmd.Parameters.Add(new MySqlParameter("UserId", MySqlDbType.Int32) { Value = entity.UserId }); //30:级别(OrgLevel) cmd.Parameters.Add(new MySqlParameter("OrgLevel", MySqlDbType.Int32) { Value = entity.OrgLevel }); }
/// <summary> /// 载入数据 /// </summary> /// <param name="reader">数据读取器</param> /// <param name="entity">读取数据的实体</param> protected sealed override void LoadEntity(MySqlDataReader reader, PositionPersonnelData entity) { using (new EditScope(entity.__EntityStatus, EditArrestMode.All, false)) { entity._id = (int)reader.GetInt32(0); entity._personnelid = (int)reader.GetInt32(1); if (!reader.IsDBNull(2)) { entity._personnel = reader.GetString(2).ToString(); } if (!reader.IsDBNull(3)) { entity._appellation = reader.GetString(3).ToString(); } entity._organizepositionid = (int)reader.GetInt32(4); if (!reader.IsDBNull(5)) { entity._position = reader.GetString(5).ToString(); } if (!reader.IsDBNull(6)) { entity._roleid = (int)reader.GetInt32(6); } if (!reader.IsDBNull(7)) { entity._role = reader.GetString(7).ToString(); } if (!reader.IsDBNull(8)) { entity._six = (bool)reader.GetBoolean(8); } if (!reader.IsDBNull(9)) { try{ entity._birthday = reader.GetMySqlDateTime(9).Value; }catch {} } if (!reader.IsDBNull(10)) { entity._tel = reader.GetString(10).ToString(); } if (!reader.IsDBNull(11)) { entity._mobile = reader.GetString(11).ToString(); } if (!reader.IsDBNull(12)) { entity._organizationid = (int)reader.GetInt32(12); } if (!reader.IsDBNull(13)) { entity._organization = reader.GetString(13).ToString(); } if (!reader.IsDBNull(14)) { entity._departmentid = (int)reader.GetInt32(14); } if (!reader.IsDBNull(15)) { entity._department = reader.GetString(15).ToString(); } if (!reader.IsDBNull(16)) { entity._memo = reader.GetString(16).ToString(); } if (!reader.IsDBNull(17)) { entity._datastate = (DataStateType)reader.GetInt32(17); } if (!reader.IsDBNull(18)) { entity._isfreeze = (bool)reader.GetBoolean(18); } if (!reader.IsDBNull(19)) { entity._authorid = (int)reader.GetInt32(19); } if (!reader.IsDBNull(20)) { try{ entity._adddate = reader.GetMySqlDateTime(20).Value; }catch {} } if (!reader.IsDBNull(21)) { entity._lastreviserid = (int)reader.GetInt32(21); } if (!reader.IsDBNull(22)) { try{ entity._lastmodifydate = reader.GetMySqlDateTime(22).Value; }catch {} } if (!reader.IsDBNull(23)) { entity._auditstate = (AuditStateType)reader.GetInt32(23); } if (!reader.IsDBNull(24)) { entity._auditorid = (int)reader.GetInt32(24); } if (!reader.IsDBNull(25)) { try{ entity._auditdate = reader.GetMySqlDateTime(25).Value; }catch {} } if (!reader.IsDBNull(26)) { entity._userid = (int)reader.GetInt32(26); } if (!reader.IsDBNull(27)) { entity._orglevel = (int)reader.GetInt32(27); } } }
/// <summary> /// 取得仅更新的SQL语句 /// </summary> internal string GetModifiedSqlCode(PositionPersonnelData data) { if (data.__EntityStatusNull || !data.__EntityStatus.IsModified) { return(";"); } StringBuilder sql = new StringBuilder(); sql.AppendLine("UPDATE `tb_sys_position_personnel` SET"); //员工标识 if (data.__EntityStatus.ModifiedProperties[PositionPersonnelData.Real_PersonnelId] > 0) { sql.AppendLine(" `personnel_id` = ?PersonnelId"); } //称谓 if (data.__EntityStatus.ModifiedProperties[PositionPersonnelData.Real_Appellation] > 0) { sql.AppendLine(" `appellation` = ?Appellation"); } //职位标识 if (data.__EntityStatus.ModifiedProperties[PositionPersonnelData.Real_OrganizePositionId] > 0) { sql.AppendLine(" `organize_position_id` = ?OrganizePositionId"); } //备注 if (data.__EntityStatus.ModifiedProperties[PositionPersonnelData.Real_Memo] > 0) { sql.AppendLine(" `memo` = ?Memo"); } //数据状态 if (data.__EntityStatus.ModifiedProperties[PositionPersonnelData.Real_DataState] > 0) { sql.AppendLine(" `data_state` = ?DataState"); } //数据是否已冻结 if (data.__EntityStatus.ModifiedProperties[PositionPersonnelData.Real_IsFreeze] > 0) { sql.AppendLine(" `is_freeze` = ?IsFreeze"); } //制作人 if (data.__EntityStatus.ModifiedProperties[PositionPersonnelData.Real_AuthorID] > 0) { sql.AppendLine(" `author_id` = ?AuthorID"); } //制作时间 if (data.__EntityStatus.ModifiedProperties[PositionPersonnelData.Real_AddDate] > 0) { sql.AppendLine(" `add_date` = ?AddDate"); } //最后修改者 if (data.__EntityStatus.ModifiedProperties[PositionPersonnelData.Real_LastReviserID] > 0) { sql.AppendLine(" `last_reviser_id` = ?LastReviserID"); } //最后修改日期 if (data.__EntityStatus.ModifiedProperties[PositionPersonnelData.Real_LastModifyDate] > 0) { sql.AppendLine(" `last_modify_date` = ?LastModifyDate"); } //审核状态 if (data.__EntityStatus.ModifiedProperties[PositionPersonnelData.Real_AuditState] > 0) { sql.AppendLine(" `audit_state` = ?AuditState"); } //审核人 if (data.__EntityStatus.ModifiedProperties[PositionPersonnelData.Real_AuditorId] > 0) { sql.AppendLine(" `auditor_id` = ?AuditorId"); } //审核时间 if (data.__EntityStatus.ModifiedProperties[PositionPersonnelData.Real_AuditDate] > 0) { sql.AppendLine(" `audit_date` = ?AuditDate"); } sql.Append(" WHERE `id` = ?Id;"); return(sql.ToString()); }