using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using System.Collections; using MySql.Data.MySqlClient; namespace FangYar.OracleDAL { /// /// 用户(Oracle数据库实现) /// public class BaseUserDAL : FangYar.IDAL.BaseUserIDAL { #region 私有方法 /// /// 把DataRow行转成实体类对象 /// private void DataRowToModel(FangYar.Model.BaseUserModel model, DataRow dr) { if (!DBNull.Value.Equals(dr["ID"])) model.ID = dr["ID"].ToString(); if (!DBNull.Value.Equals(dr["USERS_UID"])) model.USERS_UID = dr["USERS_UID"].ToString(); if (!DBNull.Value.Equals(dr["USERS_NAME"])) model.USERS_NAME = dr["USERS_NAME"].ToString(); if (!DBNull.Value.Equals(dr["USERS_PWD"])) model.USERS_PWD = dr["USERS_PWD"].ToString(); if (!DBNull.Value.Equals(dr["USERS_AUTH"])) model.USERS_AUTH = dr["USERS_AUTH"].ToString(); if (!DBNull.Value.Equals(dr["USERS_RULE"])) model.USERS_RULE = dr["USERS_RULE"].ToString(); if (!DBNull.Value.Equals(dr["USERS_TYPE"])) model.USERS_TYPE = dr["USERS_TYPE"].ToString(); } /// /// 把DataRow行转成实体类对象 /// private FangYar.Model.BaseUserModel DataRowToModel(DataRow dr) { FangYar.Model.BaseUserModel model = new Model.BaseUserModel(); if (!DBNull.Value.Equals(dr["ID"])) model.ID = dr["ID"].ToString(); if (!DBNull.Value.Equals(dr["USERS_UID"])) model.USERS_UID = dr["USERS_UID"].ToString(); if (!DBNull.Value.Equals(dr["USERS_NAME"])) model.USERS_NAME = dr["USERS_NAME"].ToString(); if (!DBNull.Value.Equals(dr["USERS_PWD"])) model.USERS_PWD = dr["USERS_PWD"].ToString(); if (!DBNull.Value.Equals(dr["USERS_AUTH"])) model.USERS_AUTH = dr["USERS_AUTH"].ToString(); if (!DBNull.Value.Equals(dr["USERS_RULE"])) model.USERS_RULE = dr["USERS_RULE"].ToString(); if (!DBNull.Value.Equals(dr["USERS_TYPE"])) model.USERS_TYPE = dr["USERS_TYPE"].ToString(); return model; } /// /// 把DataTable行转成实体类List集合 /// private List DataTableToList(DataTable dt) { List modellist = new List(); if (dt.Rows.Count > 0) { foreach (DataRow myRow in dt.Rows) { modellist.Add(DataRowToModel(myRow)); } } return modellist; } #endregion #region 基本方法 /// /// 添加用户 /// public bool Add(Model.BaseUserModel user) { StringBuilder strSql = new StringBuilder(); strSql.Append("insert into TBL_BASE_USERS(USERS_UID,USERS_PWD,USERS_NAME,USERS_TYPE)"); strSql.Append(" values "); strSql.Append("(@USERS_UID,@USERS_PWD,@USERS_NAME,@USERS_TYPE)"); MySqlParameter[] paras = { new MySqlParameter("@USERS_UID",MySqlDbType.VarChar,50), new MySqlParameter("@USERS_PWD",MySqlDbType.VarChar,50), new MySqlParameter("@USERS_NAME",MySqlDbType.VarChar,50), new MySqlParameter("@USERS_TYPE",MySqlDbType.VarChar,50) }; paras[0].Value = user.USERS_UID; paras[1].Value = user.USERS_PWD; paras[2].Value = user.USERS_NAME; paras[3].Value = user.USERS_TYPE; int i = FangYar.Common.MySqlHelper.ExecuteSql(strSql.ToString(), paras); if (i > 0) { return true; } else { return false; } } /// /// 修改用户信息 /// public bool Edit(Model.BaseUserModel user) { StringBuilder strSql = new StringBuilder(); strSql.Append("update TBL_BASE_USERS set "); strSql.Append("USERS_UID=@USERS_UID,"); strSql.Append("USERS_PWD=@USERS_PWD,"); strSql.Append("USERS_NAME=@USERS_NAME,"); strSql.Append("USERS_RULE=@USERS_RULE,"); strSql.Append("USERS_AUTH=@USERS_AUTH,"); strSql.Append("USERS_TYPE=@USERS_TYPE "); strSql.Append(" where ID=@ID"); MySqlParameter[] paras = { new MySqlParameter("@USERS_UID",user.USERS_UID), new MySqlParameter("@USERS_PWD",user.USERS_PWD), new MySqlParameter("@USERS_NAME",user.USERS_NAME), new MySqlParameter("@USERS_RULE",user.USERS_RULE), new MySqlParameter("@USERS_AUTH",user.USERS_AUTH), new MySqlParameter("@USERS_TYPE",user.USERS_TYPE), new MySqlParameter("@ID",user.ID) }; paras[0].Value = user.USERS_UID; paras[1].Value = user.USERS_PWD; paras[2].Value = user.USERS_NAME; paras[3].Value = user.USERS_RULE; paras[4].Value = user.USERS_AUTH; paras[5].Value = user.USERS_TYPE; paras[6].Value = user.ID; int i = FangYar.Common.MySqlHelper.ExecuteSql(strSql.ToString(), paras); ; if (i > 0) return true; else return false; } /// /// 删除用户(可批量删除,删除用户同时删除对应的权限和所处的部门) /// public bool Delete(string IDList) { string sql = "delete from TBL_BASE_USERS where ID in ('" + IDList + "')"; try { FangYar.Common.MySqlHelper.ExecuteSql(sql); return true; } catch { return false; } } /// /// 根据用户账号获取用户 /// public Model.BaseUserModel GetModelByUserID(string USERS_UID) { string sql = "select * from TBL_BASE_USERS where USERS_UID =@USERS_UID"; FangYar.Model.BaseUserModel user = null; MySqlParameter[] paras = { new MySqlParameter("@USERS_UID",MySqlDbType.VarChar,50)// }; paras[0].Value = USERS_UID; DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sql, paras); if (dt.Rows.Count > 0) { user = new FangYar.Model.BaseUserModel(); DataRowToModel(user, dt.Rows[0]); return user; } else return null; } /// /// 根据ID获取用户 /// public Model.BaseUserModel GetModelByID(string ID) { string sql = "select * from TBL_BASE_USERS where ID =@ID"; FangYar.Model.BaseUserModel user = null; MySqlParameter[] paras = { new MySqlParameter("@ID",MySqlDbType.VarChar,50)// }; paras[0].Value = ID; DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sql, paras); if (dt.Rows.Count > 0) { user = new FangYar.Model.BaseUserModel(); DataRowToModel(user, dt.Rows[0]); return user; } else return null; } #endregion #region 分页 /// /// 分页无排序 /// /// 页面索引 /// 页面大小 /// 查询条件 /// public string QueryJsonList(int PageIndex, int PageSize, string strwhere) { return FangYar.Common.JsonHelper.ToJson(QueryPage(PageIndex, PageSize, strwhere)); } /// /// 分页无排序 /// /// 页面索引 /// 页面大小 /// 查询条件 /// public string QueryJsonList(int PageIndex, int PageSize, string strwhere, string order) { return FangYar.Common.JsonHelper.ToJson(QueryPage(PageIndex, PageSize, strwhere, order)); } /// /// 分页无排序 /// /// 页面索引 /// 页面大小 /// 查询条件 /// public List QueryList(int PageIndex, int PageSize, string strwhere) { return DataTableToList(QueryPage(PageIndex, PageSize, strwhere)); } /// /// 分页无排序 /// /// 页面索引 /// 页面大小 /// 查询条件 /// public List QueryList(int PageIndex, int PageSize, string strwhere, string order) { return DataTableToList(QueryPage(PageIndex, PageSize, strwhere, order)); } /// /// 分页无排序 /// /// 页面索引 /// 页面大小 /// 查询条件 /// public DataTable QueryPage(int PageIndex, int PageSize, string strwhere) { return FangYar.Common.MySqlHelper.QueryPage(PageIndex, PageSize, "TBL_BASE_USERS", strwhere); } /// /// 分页无排序 /// /// 页面索引 /// 页面大小 /// 查询条件 /// 排序 /// public DataTable QueryPage(int PageIndex, int PageSize, string strwhere, string order) { return FangYar.Common.MySqlHelper.QueryPage(PageIndex, PageSize, "TBL_BASE_USERS", strwhere, order); } /// /// 存储过程分页 /// /// 页面索引 /// 页面大小 /// 查询条件 /// 排序 /// public void QueryProc(int PageIndex, int PageSize, string strwhere, string order) { int totalcount=0; FangYar.Common.SqlPagerHelperOra.Select(PageSize,PageIndex,out totalcount, "TBL_BASE_USERS","*", null,null, null); } #endregion #region 扩展业务方法 /// /// 首次登陆强制修改密码 /// public bool InitUserPwd(Model.BaseUserModel user) { string sql = "update TBL_BASE_USERS set USERS_PWD =@USERS_PWD where ID =@ID"; MySqlParameter[] paras = { new MySqlParameter("@USERS_PWD",MySqlDbType.VarChar,50), new MySqlParameter("@ID",MySqlDbType.VarChar,50) }; paras[0].Value = user.USERS_PWD; paras[1].Value = user.ID; int i= FangYar.Common.MySqlHelper.ExecuteSql(sql, paras);; if (i > 0) return true; else return false; } /// /// 修改密码 /// public bool ChangePwd(Model.BaseUserModel user) { string sql = "update TBL_BASE_USERS set USERS_PWD =@USERS_PWD where ID =@ID"; MySqlParameter[] paras = { new MySqlParameter("@USERS_PWD",MySqlDbType.VarChar,50), new MySqlParameter("@ID",MySqlDbType.VarChar,50) }; paras[0].Value = user.USERS_PWD; paras[1].Value = user.ID; int i = FangYar.Common.MySqlHelper.ExecuteSql(sql, paras); ; if (i > 0) return true; else return false; } /// /// 用户登录 /// public Model.BaseUserModel UserLogin(string loginID, string loginPwd) { StringBuilder sbSql = new StringBuilder(); sbSql.Append("select ID,USERS_UID,USERS_PWD,USERS_NAME,USERS_RULE,USERS_AUTH,USERS_TYPE from TBL_BASE_USERS "); sbSql.Append(" where USERS_UID=@USERS_UID and USERS_PWD=@USERS_PWD"); MySqlParameter[] paras = { new MySqlParameter("@USERS_UID",MySqlDbType.VarChar,50), new MySqlParameter("@USERS_PWD",MySqlDbType.VarChar,50) }; paras[0].Value = loginID; paras[1].Value = loginPwd; FangYar.Model.BaseUserModel user = null; DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sbSql.ToString(), paras); if (dt.Rows.Count > 0) { user = new Model.BaseUserModel(); //DataRowToModel(user, dt.Rows[0]); //只取部分属性写入cookie(防止某些列特别长,例如description,导致cookie过长): if (!DBNull.Value.Equals(dt.Rows[0]["ID"])) user.ID = dt.Rows[0]["ID"].ToString(); if (!DBNull.Value.Equals(dt.Rows[0]["USERS_UID"])) user.USERS_UID = dt.Rows[0]["USERS_UID"].ToString(); if (!DBNull.Value.Equals(dt.Rows[0]["USERS_NAME"])) user.USERS_NAME = dt.Rows[0]["USERS_NAME"].ToString(); if (!DBNull.Value.Equals(dt.Rows[0]["USERS_PWD"])) user.USERS_PWD = dt.Rows[0]["USERS_PWD"].ToString(); if (!DBNull.Value.Equals(dt.Rows[0]["USERS_AUTH"])) user.USERS_AUTH = dt.Rows[0]["USERS_AUTH"].ToString(); if (!DBNull.Value.Equals(dt.Rows[0]["USERS_RULE"])) user.USERS_RULE = dt.Rows[0]["USERS_RULE"].ToString(); return user; } return user; } /// /// 根据用户ID判断用户是否可用 /// public Model.BaseUserModel CheckLoginByUserID(string USERS_UID) { string sql = " select ID,USERS_UID,USERS_PWD,USERS_NAME,USERS_RULE,USERS_AUTH,USERS_TYPE from TBL_BASE_USERS where USERS_UID=@USERS_UID"; FangYar.Model.BaseUserModel user = null; MySqlParameter[] paras = { new MySqlParameter("@USERS_UID",MySqlDbType.VarChar,50) }; paras[0].Value = USERS_UID; DataTable dt = FangYar.Common.MySqlHelper.QueryTable(sql, paras); if (dt.Rows.Count > 0) { user = new FangYar.Model.BaseUserModel(); DataRowToModel(user, dt.Rows[0]); return user; } else { return null; } } #endregion } }