⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userdal.cs

📁 会员管理系统
💻 CS
字号:
using System;
using System.Data;
using System.Text;
using com.sungoal.MemberManage.Common;
using System.Data.OleDb;

namespace com.sungoal.MemberManage.DataAccess
{
	/// <summary>
	/// 关于用户信息的数据库操作类
	/// </summary>
	public class UserDAL
	{
		private int retVal = 0;
		private const string SELECT_USERADDINFO_BY_USERID = "select * from UserAddInfo where UserID=";
		private const string SELECT_USERBASEINFO_BY_USERID = "select * from UserBaseInfo where UserID=";

		public UserDAL()
		{
			
		}

		#region		用户基本信息数据库操作

		/// <summary>
		/// 检查登录
		/// </summary>
		/// <param name="userID">用户ID</param>
		/// <param name="password">密码</param>
		/// <returns>
		/// 1:登录成功,用户是普通用户
		/// 2:登录成功,用户是企业用户
		/// 3:登录成功,用户是管理员
		/// 0:登录成功,用户需要充值
		/// -1:用户不存在
		/// -2:密码错误
		/// </returns>
		public int CheckLogin(string userID, string password)
		{
			CommonUserData.UserBaseInfoDataTable table = (CommonUserData.UserBaseInfoDataTable)this.GetUserBaseInfoByUserID(userID);
			if (table.Rows.Count == 0)
			{
				return -1;
			}
			CommonUserData.UserBaseInfoRow row = (CommonUserData.UserBaseInfoRow)table.Rows[0];
			if (row.Password == password)
			{
				if (row.UserType == "3")
				{
					return 3;
				}
				else
				{
					AccountDAL accountDAL = new AccountDAL();
					AccountData.AccountInfoDataTable aTable = (AccountData.AccountInfoDataTable)accountDAL.GetAccountByAccountID(row.AccountID);
					AccountData.AccountInfoRow aRow = (AccountData.AccountInfoRow)aTable.Rows[0];
					if (aRow.OverDate <= DateTime.Now)
					{
						return 0;
					}
					else
					{
						return Int32.Parse(row.UserType);
					}
				}
			}
			else
			{
				return -2;
			}
		}

		/// <summary>
		/// 检查用户ID是不是管理员
		/// </summary>
		/// <param name="userID">用户ID</param>
		/// <returns>
		/// 1:是
		/// 0:否
		/// -1:用户不存在
		/// </returns>
		public int IsAdmin(string userID)
		{
			CommonUserData.UserBaseInfoDataTable data = (CommonUserData.UserBaseInfoDataTable)this.GetUserBaseInfoByUserID(userID);
			if (data.Rows.Count != 0)
			{
				CommonUserData.UserBaseInfoRow row = (CommonUserData.UserBaseInfoRow)data.Rows[0];
				if (row.UserType == "3")
				{
					return 1;
				}
				else
				{
					return 0;
				}
			}
			else
			{
				return -1;
			}
		}

		public DataTable GetUserBaseInfoByUserID(string userID)
		{
			UserBaseData.UserBaseInfoDataTable data = new UserBaseData().UserBaseInfo;
			new OleDBHelper().ExecuteSQL(SELECT_USERBASEINFO_BY_USERID + "'" + userID + "'", data);

			return data;
		}

		/// <summary>
		/// 创建新用户
		/// </summary>
		/// <param name="dtBaseInfo">用户基本信息记录</param>
		/// <param name="dtAddInfo">附加信息记录</param>
		/// <param name="dtAccountInfo">账户信息记录</param>
		/// <returns>
		/// 1:操作成功
		/// 0:什么也没做
		/// -1:操作失败
		/// </returns>
		public int CreateUser(DataRow drBaseInfo, DataRow userAddInfo, DataRow companyAddInfo, DataRow drAccountInfo)
		{
			string sqlBaseInfo = "";
			string sqlUserAddInfo = "";
			string sqlCompanyAddInfo = "";
			string sqlAccountInfo = "";

			if (drAccountInfo == null)
			{
				return 0;
			}

			sqlBaseInfo = OleDBHelper.GetInsertSql(drBaseInfo, "UserBaseInfo");
			sqlAccountInfo = OleDBHelper.GetInsertSql(drAccountInfo, "AccountInfo");

			if (companyAddInfo == null && drBaseInfo["UserType"].ToString() == "2")
			{
				return 0;
			}

			if (userAddInfo == null)
			{
				sqlUserAddInfo = "";
			}
			else
			{
				sqlUserAddInfo = OleDBHelper.GetInsertSql(userAddInfo, "UserAddInfo");
			}

			if (companyAddInfo == null)
			{
				sqlCompanyAddInfo = "";
			}
			else
			{
				sqlCompanyAddInfo = OleDBHelper.GetInsertSql(companyAddInfo, "CompanyInfo");
			}
			
			using (OleDbConnection conn = new OleDbConnection(AppConfiguration.GetConnectionString())) 
			{
				conn.Open();
				using (OleDbTransaction trans = conn.BeginTransaction()) 
				{
					try 
					{
						OleDBHelper.ExecuteSQL(sqlAccountInfo, trans);
						if (drBaseInfo["UserType"].ToString() == "2")
						{
							OleDBHelper.ExecuteSQL(sqlCompanyAddInfo, trans);
							OleDBHelper.ExecuteSQL(sqlBaseInfo, trans);
							if (sqlUserAddInfo != "")
							{
								OleDBHelper.ExecuteSQL(sqlUserAddInfo, trans);
							}
							trans.Commit();
							retVal = 1;
						}
						else
						{
							OleDBHelper.ExecuteSQL(sqlBaseInfo, trans);
							if (sqlUserAddInfo != "")
							{
								OleDBHelper.ExecuteSQL(sqlUserAddInfo, trans);
							}
							trans.Commit();
							retVal = 1;
						}
					}
					catch
					{
						retVal=-1;
						throw;
					}
				}
			}

			return retVal;
		}

		/// <summary>
		/// 根据传入的参数添加用户基本信息记录(可能是多个),对在数据库中已经存在的记录的添加操作将导致意外,并使整个事务回滚。
		/// </summary>
		/// <param name="dtUserBaseInfo">需要添加的关于用户基本信息的内存表。</param>
		/// <returns>返回-1:操作失败;0:没有操作;1操作成功。</returns>
		public int InsertUserBaseInfo(DataTable dtUserBaseInfo)
		{
			return 1;
		}

		
		/// <summary>
		/// 根据传入的参数更新用户基本信息,对在数据库中不存在的记录的更新操作将被忽略。
		/// </summary>
		/// <param name="dtUserBaseInfo">需要更新的关于用户基本信息的内存表。</param>
		/// <returns>返回-1:操作失败;0:没有操作;1操作成功。</returns>		
		public int UpdateUserBaseInfo(DataTable dtUserBaseInfo)
		{
			return 1;
		}

		
		/// <summary>
		/// 根据传入的参数删除相应的用户基本信息记录,对在数据库中不存在的记录的删除操作将被忽略。删除用户基本信息的操作
		/// 将导致于该用户相关的附加信息以及用户的书架信息的删除。
		/// </summary>
		/// <param name="userID">需要删除的关于用户基本信息的主键数组。</param>
		/// <returns>返回-1:操作失败;0:没有操作;1操作成功。</returns>		
		public int DeleteUserBaseInfo(string[] userID)
		{
			return 1;
		}

		
		#endregion

		#region		企业用户附加企业信息数据库操作
		
		/// <summary>
		/// 根据传入的参数添加企业用户附加企业信息记录(可能是多个),对在数据库中已经存在的记录的添加操作将导致意外,并使整个事务回滚。
		/// </summary>
		/// <param name="dtCompanyUserAddInfo">需要添加的关于企业用户附加企业信息的内存表。</param>
		/// <returns>返回-1:操作失败;0:没有操作;1操作成功。</returns>
		public	int InsertCompanyUserAddInfo(DataTable dtCompanyUserAddInfo)
		{
			return 1;
		}

		
		/// <summary>
		/// 根据传入的参数更新企业用户附加企业信息,对在数据库中不存在的记录的更新操作将被忽略。
		/// </summary>
		/// <param name="dtCompanyUserAddInfo">需要更新的关于企业用户附加企业信息的内存表。</param>
		/// <returns>返回-1:操作失败;0:没有操作;1操作成功。</returns>		
		public int UpdateCompanyUserAddInfo(DataTable dtCompanyUserAddInfo)
		{
			return 1;
		}

		
		/// <summary>
		/// 根据传入的参数删除相应的企业用户附加企业信息记录,对在数据库中不存在的记录的删除操作将被忽略。删除企业用户附加企业信息的操作
		/// 将导致于该企业用户所属的所有用户(附加)信息以及所有用户书架信息的删除。
		/// </summary>
		/// <param name="CompanyID">需要删除的关于企业用户附加企业信息的主键数组。</param>
		/// <returns>返回-1:操作失败;0:没有操作;1操作成功。</returns>		
		public int DeleteCompanyUserAddInfo(string[] CompanyID)
		{
			return 1;
		}

		#endregion

		#region		用户附加信息数据库操作

		/// <summary>
		/// 生成新的账户ID
		/// </summary>
		/// <param name="number">生成个数</param>
		/// <returns>账户ID</returns>
		public string[] CreateNewCompanyID(long number)
		{
			// 1。获取账户信息的最大ID
			// 2。根据步骤 1 得到的最大编号计算新的阅读卡编号
			if (number > 99999999)
			{
				return null;
			}
			string identity = "";
			string[] serial = new string[number];
			string[] newID = new string[number];
			int maxID = 0;

			OleDbConnection conn = new OleDbConnection(AppConfiguration.GetConnectionString());
			OleDBHelper helper = new OleDBHelper(conn);

			string sqlString = "select max(CompanyID) from CompanyInfo";
			DataSet dataSet = new DataSet();
			helper.ExecuteSQL(sqlString, dataSet);
			if (dataSet.Tables[0].Rows[0][0] == DBNull.Value)
			{
				serial[0] = "00000000";
				maxID = 0;
				newID[0] = identity + serial[0];
			}
			else
			{
				serial[0] = dataSet.Tables[0].Rows[0][0].ToString();
				serial[0] = serial[0].Substring(serial[0].Length - 8, 8);
				maxID = Int32.Parse(serial[0]);
				maxID = maxID + 1;
				if (maxID > 99999999)
				{
					throw new Exception("Too many Company!");
				}
				serial[0] = maxID.ToString();
				int zeroCount = 8 - (int)Math.Log10(maxID) - 1;
				for (int j = 0; j < zeroCount; j ++)
				{
					serial[0] = "0" + serial[0];
				}
				newID[0] = identity + serial[0];
			}
			for (long i = 1; i < number; i ++)
			{
				maxID ++;
				if (maxID > 99999999)
				{
					throw new Exception("Too many Company!");
				}
				serial[i] = maxID.ToString();
				int zeroCount = 8 - (int)Math.Log10(maxID) - 1;
				for (int j = 0; j < zeroCount; j ++)
				{
					serial[i] = "0" + serial[i];
				}
				newID[i] = identity + serial[i];
			}

			return newID;
		}

		public DataTable GetUserAddInfoByUserID(string userID)
		{
			DataTable data = new CommonUserData().UserAddInfo;
			new OleDBHelper().ExecuteSQL(SELECT_USERADDINFO_BY_USERID + "'" + userID + "'", data);
			return data;
		}

		/// <summary>
		/// 根据传入的参数添加用户附加信息记录(可能是多个),对在数据库中已经存在的记录的添加操作将导致意外,并使整个事务回滚。
		/// </summary>
		/// <param name="dtUserAddInfo">需要添加的关于用户附加信息的内存表。</param>
		/// <returns>返回-1:操作失败;0:没有操作;1操作成功。</returns>
		public	int InsertUserAddInfo(DataTable dtUserAddInfo)
		{
			return 1;
		}

		
		/// <summary>
		/// 根据传入的参数更新用户附加信息,对在数据库中不存在的记录的更新操作将被忽略。
		/// </summary>
		/// <param name="dtUserAddInfo">需要更新的关于用户附加信息的内存表。</param>
		/// <returns>返回-1:操作失败;0:没有操作;1操作成功。</returns>		
		public int UpdateUserAddInfo(DataTable dtUserAddInfo)
		{
			return 1;
		}

		
		/// <summary>
		/// 根据传入的参数删除相应的用户附加信息记录,对在数据库中不存在的记录的删除操作将被忽略。
		/// </summary>
		/// <param name="userID">需要删除的关于用户附加信息的主键数组。</param>
		/// <returns>返回-1:操作失败;0:没有操作;1操作成功。</returns>		
		public int DeleteUserAddInfo(string[] userID)
		{
			return 1;
		}

		#endregion

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -