温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:MyShop网络商城源码(mvc开发)
当前文件:
MyShop/BLL/User.cs,打开代码结构图
MyShop/BLL/User.cs,打开代码结构图
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Data;
using MyShop.DALFactory;
using MyShop.IDAL;
using MyShop.Model;
namespace MyShop.BLL
{
public class User
{
public ConfigInfo configInfo = new ConfigInfo();
private IUser dal = DataAccess.CreateUser();
public User()
{
Config config = new Config();
configInfo = config.GetModel();
}
#region IUser member
protected int Add(UserInfo model)
{
if (model == null)
return 0;
return dal.Add(model);
}
public int Delete(string filter)
{
if (string.IsNullOrEmpty(filter))
return 0;
return dal.Delete(filter);
}
public bool Exist(string filter)
{
filter = filter.Trim();
if (string.IsNullOrEmpty(filter))
return false;
return dal.Exist(filter);
}
public DataSet GetDataSet()
{
return dal.GetDataSet();
}
public DataSet GetDataSet(string filter)
{
filter = filter.Trim();
if (string.IsNullOrEmpty(filter))
return null;
return dal.GetDataSet(filter);
}
public UserInfo GetModel(DataRow dr)
{
if (dr == null)
return null;
return dal.GetModel(dr);
}
private DataSet Query(string sql)
{
sql = sql.Trim();
if (string.IsNullOrEmpty(sql))
return null;
return dal.Query(sql);
}
/// <summary>
/// 密码必须是已经加密的
/// </summary>
/// <param name="model"></param>
/// <param name="filter"></param>
/// <returns></returns>
public int Update(UserInfo model, string filter)
{
if (model == null)
return 0;
filter = filter.Trim();
if (string.IsNullOrEmpty(filter))
return 0;
return dal.Update(model, filter);
}
//-------------------------
#endregion
#region common
/// <summary>
/// 添加会员
/// </summary>
/// <param name="model"></param>
/// <returns>返回值1表示成功,0表示发生错误,-1表示数据为空</returns>
public int Add(UserInfo model, out string msg)
{
msg = "";
if (1 != configInfo.EnableUserReg)
{
msg = "<li> 本站暂时不能注册</li>";
return -1;
}
if (model == null)
{
msg = "<li> 数据不用为空</li>";
}
if (Utils.FoundStringInArr(configInfo.UserName_RegDisabled,model.UserName,'|') )
{
msg = msg + "<li> 该用户名被禁止注册</li>";
return -1;
}
bool isErr = false;
if (this.Exist(" username='" + model.UserName + "'"))
{
msg = msg + "<li> 用户名已经被注册</li>";
isErr = true;
}
if (Utils.GetStringLength(model.UserName) < 4)
{
msg = msg + "<li> 用户名长度不得小于4(汉字不小于2个)</li>";
isErr = true;
}
if (string.IsNullOrEmpty(model.UserName))
{
msg = msg + "<li>用户名不能为空</li>";
isErr = true;
}
if (model.UserName.IndexOf(" ") != -1)
{
msg = msg + "<li>用户名中不允许包含空格</li>";
isErr = true;
}
if (model.UserName.IndexOf(" ") != -1)
{
msg = msg + "<li>用户名中不允许包含空格</li>";
isErr = true;
}
if (Utils.ChkBadChar(model.UserName))
{
msg = msg + "<li>用户名中含有非法字符</li>";
isErr = true;
}
if (model.UserPassword == "")
{
msg = msg + "<li>密码不能为空</li>";
isErr = true;
}
if ( model.UserPassword.IndexOf(" ") != -1)
{
msg = msg + "<li>用户名中不允许包含空格</li>";
isErr = true;
}
if (string.IsNullOrEmpty(model.UserPassword))
{
msg = msg + "<li>用户密码不能为空</li>";
isErr = true;
}
if (Utils.GetStringLength(model.UserPassword) < 6)
{
msg = msg + "<li>用户密码长度不得小于6</li>";
isErr = true;
}
if (model.Answer == "")
{
msg = msg + "<li>问题答案不能为空</li>";
isErr = true;
}
if (this.Exist(" email='" + model.Email + "'") && ( 0 == configInfo.EnableMultiRegPerEmail))
{
msg = msg + "<li> 邮箱已经被其它用户注册使用</li>";
isErr = true;
}
if (!Utils.IsValidEmail(model.Email))
{
msg = msg + "<li> 用户电子邮箱格式不对</li>";
isErr = true;
}
if (model.Email == string.Empty)
{
msg = msg + "<li>用户电子邮件不能为空</li>";
isErr = true;
}
if (isErr)
return 0;
if (configInfo.EmailCheckReg == 0)
model.GroupId = 1;
model.UserPassword = Utils.MD5( model.UserPassword );
model.Answer = Utils.MD5( model.Answer );
int count = 0;
count = Add(model);
if (count == 0)
msg = "<li>系统发生错误,请重新注册!</li>";
if (count == 1)
msg = "<li>注册成功!欢迎 " + model.UserName + " 的加入</li>";
return count;
}
public int Delete(int userId)
{
return dal.Delete(userId);
}
public int DelteUserByName( string userName )
{
if (string.IsNullOrEmpty(userName.ToString()))
return 0;
string filer;
filer = " userName ='" + userName + "'";
return Delete(filer);
}
/// <summary>
/// 修改会员资料
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public int Update(UserInfo model)
{
if (string.IsNullOrEmpty(model.UserId.ToString()))
return 0;
string filter = "userid = " + model.UserId;
return Update(model, filter);
}
public UserInfo GetModel(int userId)
{
if ( userId == -1)
return null;
DataSet dataset = new DataSet();
dataset = GetDataSet(" userId=" + userId);
if (dataset != null && dataset.Tables[0].Rows.Count > 0)
return GetModel(dataset.Tables[0].Rows[0]);
return null;
}
#endregion
public UserInfo GetModel(string username)
{
username = Utils.ReplaceBadChar(username);
if (string.IsNullOrEmpty(username))
return null;
DataSet dataset = new DataSet();
dataset = GetDataSet(" username='" + username + "'");
if (dataset != null && dataset.Tables[0].Rows.Count > 0)
return GetModel(dataset.Tables[0].Rows[0]);
return null;
}
/// <summary>
/// 用户名是否已被注册
/// </summary>
/// <param name="userName"></param>
/// <returns></returns>
public bool ExistUserName(string userName)
{
if(string.IsNullOrEmpty(userName))
return true;
return Exist(" username ='" + Utils.ReplaceBadSQL(userName.Trim()) + "'");
}
/// <summary>
/// 用户是否存在
/// </summary>
/// <param name="userName"></param>
/// <param name="password">未加密的明码</param>
/// <returns></returns>
public bool Exist(string userName, string password)
{
if (Exist("username = '" + userName + "' and userpassword = '" + Utils.MD5(password) + "'"))
{
return true;
}
else
return false;
}
/// <summary>
/// 用户是否存在
/// </summary>
/// <param name="userName"></param>
/// <param name="password">用户密码</param>
/// <param name="MD5">用户密码是否已MD5加密</param>
/// <returns></returns>
public bool Exist(string userName, string password,bool MD5)
{
if (MD5)
{
if (Exist("username = '" + userName + "' and userpassword = '" + password + "'"))
{
return true;
}
else
return false;
}
else
{
if (Exist("username = '" + userName + "' and userpassword = '" + Utils.MD5(password) + "'"))
{
return true;
}
else
return false;
}
}
/// <summary>
/// 修改用户密码
/// </summary>
/// <param name="username">用户名</param>
/// <param name="OldPwd">旧密码</param>
/// <param name="NewPwd">新密码</param>
/// <returns></returns>
public bool ChangePassword(string username, string OldPwd, string NewPwd,out string msg)
{
msg = "";
if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(OldPwd) || string.IsNullOrEmpty(NewPwd))
return false;
string filter;
bool isErr = false;
filter = @" username ='" + username + "' and userpassword='" + Utils.MD5( OldPwd )+ "' ";
if (!Exist(filter))
{
msg = msg + "<li>旧密码输入不正确</li>";
isErr = true;
}
if ( Utils.GetStringLength( NewPwd.Trim()) < 6)
{
msg = msg + "<li>密码长度须不小于6</li>";
isErr = true;
}
if (!NewPwd.Trim().Equals(OldPwd.Trim()))
{
msg = msg + "<li>两次密码输入不一致</li>";
isErr = true;
}
if (isErr)
return false;
UserInfo model = new UserInfo();
model = this.GetModel(username);
model.UserPassword = Utils.MD5(NewPwd.Trim());
if (Update(model, "username = '" + model.UserName + "'") != -1)
msg = msg + "<li> 修改成功,新密码为{" + NewPwd.Trim() + "}</li>";
else
msg = msg + "<li> 系统发生错误,请重新更改</li>";
return true;
}
/// <summary>
/// 更新个人信息,answer必须是已加密
/// </summary>
/// <param name="model"></param>
/// <param name="msg"></param>
/// <returns></returns>
public bool Update( out string msg,UserInfo model)
{
msg = "";
bool isErr = false;
MyShop.BLL.User user = new User();
Regex emailRegex = new Regex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
if (!emailRegex.Match(model.Email).Success)
{
msg = msg + "<li>Email格式不正确!</li>";
isErr = true;
}
if ((0 == configInfo.EnableMultiRegPerEmail ) && user.Exist(" email='" + model.Email + "' and userId <> " + model.UserId ))
{
msg = msg + "<li>您的Email在本站已被人注册,请换一个!</li>";
isErr = true;
}
if( string.IsNullOrEmpty(model.Question))
{
msg = msg + "<li>密码保护问题不能为空!</li>";
isErr = true;
}
if (string.IsNullOrEmpty(model.Answer))
{
msg = msg + "<li>密码保护问题答案不能为空!</li>";
isErr = true;
}
if (isErr)
{
return false;
}
if (Update(model) > 0)
{
msg = "<li>修改成功!</li>";
return true;
}
return false;
}
public DataSet GetUserList()
{
return dal.GetUserList();
}
#region SearchUser
/// <summary>
/// 快速搜索
/// </summary>
/// <param name="searchType"></param>
/// <returns></returns>
public DataSet QuickSearch(int searchType)
{
string filter ="";
int flag = 0;
switch (searchType)
{
case 1:
filter = " datediff(hh,LastLoginTime,getdate()) <= 24 " ;
break;
case 2:
filter = " datediff(hh,regTime,getdate()) <= 24" ;
break;
case 3:
filter = " Islocked=1 " ;
break;
case 4:
filter = " userExp > 0 " ;
break;
case 5:
filter = " balance > 0 " ;
break;
case 6:
filter = " datediff(d,LastLoginTime,getdate()) > 30 ";
break;
case 7:
filter = " datediff(d,LastLoginTime,getdate()) > 90 ";
break;
case 8:
filter = " datediff(d,LastLoginTime,getdate()) > 180 ";
break;
default:
flag = 1;
break;
}
string sql = " select My_users.*,My_userGroup.groupId,My_userGroup.groupName from My_users inner join My_userGroup on My_users.groupId = My_userGroup.groupId and " + filter;
if (flag == 1)
sql = " select My_users.*,My_userGroup.groupId,My_userGroup.groupName from My_users inner join My_userGroup on My_users.groupId = My_userGroup.groupId ";
return Query(sql);
}
public DataSet KeywordsSearch(string field, string keywords)
{
string filter = "";
string sql;
filter = " " +Utils.ReplaceBadSQL( field ) + " like '%" + Utils.ReplaceBadSQL( keywords )+ "%'";
if (field.ToLower() == "userid")
filter = " " + field + "=" + keywords;
sql = " select My_users.*,My_userGroup.groupId,My_userGroup.groupName from My_users inner join My_userGroup on My_users.groupId = My_userGroup.groupId and " + filter;
return Query(sql);
}
#endregion
}
}

