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

📄 accountdal.cs

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

namespace com.sungoal.MemberManage.DataAccess
{
	/// <summary>
	/// 关于帐户和帐户历史信息的数据库操作类
	/// </summary>
	public class AccountDAL
	{
		private int retVal = 0;
		private const string SELECT_ACCOUNTINFO_BY_ACCOUNTID = "select * from AccountInfo where AccountID=";

		public AccountDAL()
		{
			
		}

		#region 帐户信息数据库操作

		/// <summary>
		/// 生成新的账户ID
		/// </summary>
		/// <param name="number">生成个数</param>
		/// <returns>账户ID</returns>
		public string[] CreateNewID(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(AccountID) from AccountInfo";
			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 Account!");
				}
				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 Account!");
				}
				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;
		}

		/// <summary>
		/// 根据账户ID获取账户信息
		/// </summary>
		/// <param name="accountID">账户ID</param>
		/// <returns>账户信息DataTable</returns>
		public DataTable GetAccountByAccountID(string accountID)
		{
			AccountData.AccountInfoDataTable data = new AccountData().AccountInfo;
			new OleDBHelper().ExecuteSQL(SELECT_ACCOUNTINFO_BY_ACCOUNTID + "'" + accountID + "'", data);

			return data;
		}

		public int RemoveMoneyFromAccountByUserID(string userID, string removeType)
		{
			string updateAccountInfo = "";
			string updateUserBaseInfo = "";
			string insertAccountHistory = "";

			UserDAL userDAL = new UserDAL();
			UserBaseData.UserBaseInfoDataTable uTable = (UserBaseData.UserBaseInfoDataTable)userDAL.GetUserBaseInfoByUserID(userID);
			UserBaseData.UserBaseInfoRow uRow = (UserBaseData.UserBaseInfoRow)uTable.Rows[0];
			
			AccountData.AccountInfoDataTable aTable = (AccountData.AccountInfoDataTable)this.GetAccountByAccountID(uRow.AccountID);
			AccountData.AccountInfoRow aRow = (AccountData.AccountInfoRow)aTable.Rows[0];

			float removeMoney = 0; // 此处计算扣费金额
			
//			if (aRow.Balance >= removeMoney)
//			{
////				aRow.Balance = aRow.Balance - removeMoney; // 此处计算余额
//
//				aRow.OverDate = aRow.OverDate.AddMonths(1); // 此处计算截止日期
//
//				aRow.Status = "1"; // 此处更改账户状态
//
//				uRow.Status = "1"; // 此处更改用户状态
//
////				AccountData.AccountHistoryInfoDataTable hTable = new AccountData
////
////				updateAccountInfo = OleDBHelper.GetUpdateSql(aRow, "AccountInfo", "AccountID");
////				updateUserBaseInfo = OleDBHelper.GetUpdateSql(uRow, "UserBaseInfo", "UserID");
//
//			}
//			else
//			{
				return 0;
//			}
		}
		
		/// <summary>
		/// 根据传入的参数更新帐户信息,对在数据库中不存在的记录的更新操作将被忽略。
		/// </summary>
		/// <param name="dtAccount">需要更新的关于帐户信息的内存表。</param>
		/// <returns>返回-1:操作失败;0:没有操作;1操作成功。</returns>
		public int UpdateAccount(DataTable dtAccount)
		{
				return 1;
		}


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

		
		#endregion

		#region 帐户历史信息数据库操作

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

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

⌨️ 快捷键说明

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