📄 userdal.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 + -