www.pudn.com > MyShop.rar > 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); 
        } 
 
 
        ///  
        /// 密码必须是已经加密的 
        ///  
        ///  
        ///  
        ///  
        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 
 
        ///  
        /// 添加会员 
        ///  
        ///  
        /// 返回值1表示成功,0表示发生错误,-1表示数据为空 
        public int Add(UserInfo model, out string msg) 
        { 
            msg = ""; 
            if (1 != configInfo.EnableUserReg) 
            { 
                msg = "
  • 本站暂时不能注册
  • "; return -1; } if (model == null) { msg = "
  • 数据不用为空
  • "; } if (Utils.FoundStringInArr(configInfo.UserName_RegDisabled,model.UserName,'|') ) { msg = msg + "
  • 该用户名被禁止注册
  • "; return -1; } bool isErr = false; if (this.Exist(" username='" + model.UserName + "'")) { msg = msg + "
  • 用户名已经被注册
  • "; isErr = true; } if (Utils.GetStringLength(model.UserName) < 4) { msg = msg + "
  • 用户名长度不得小于4(汉字不小于2个)
  • "; isErr = true; } if (string.IsNullOrEmpty(model.UserName)) { msg = msg + "
  • 用户名不能为空
  • "; isErr = true; } if (model.UserName.IndexOf(" ") != -1) { msg = msg + "
  • 用户名中不允许包含空格
  • "; isErr = true; } if (model.UserName.IndexOf(" ") != -1) { msg = msg + "
  • 用户名中不允许包含空格
  • "; isErr = true; } if (Utils.ChkBadChar(model.UserName)) { msg = msg + "
  • 用户名中含有非法字符
  • "; isErr = true; } if (model.UserPassword == "") { msg = msg + "
  • 密码不能为空
  • "; isErr = true; } if ( model.UserPassword.IndexOf(" ") != -1) { msg = msg + "
  • 用户名中不允许包含空格
  • "; isErr = true; } if (string.IsNullOrEmpty(model.UserPassword)) { msg = msg + "
  • 用户密码不能为空
  • "; isErr = true; } if (Utils.GetStringLength(model.UserPassword) < 6) { msg = msg + "
  • 用户密码长度不得小于6
  • "; isErr = true; } if (model.Answer == "") { msg = msg + "
  • 问题答案不能为空
  • "; isErr = true; } if (this.Exist(" email='" + model.Email + "'") && ( 0 == configInfo.EnableMultiRegPerEmail)) { msg = msg + "
  • 邮箱已经被其它用户注册使用
  • "; isErr = true; } if (!Utils.IsValidEmail(model.Email)) { msg = msg + "
  • 用户电子邮箱格式不对
  • "; isErr = true; } if (model.Email == string.Empty) { msg = msg + "
  • 用户电子邮件不能为空
  • "; 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 = "
  • 系统发生错误,请重新注册!
  • "; if (count == 1) msg = "
  • 注册成功!欢迎 " + model.UserName + " 的加入
  • "; 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); } /// /// 修改会员资料 /// /// /// 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; } /// /// 用户名是否已被注册 /// /// /// public bool ExistUserName(string userName) { if(string.IsNullOrEmpty(userName)) return true; return Exist(" username ='" + Utils.ReplaceBadSQL(userName.Trim()) + "'"); } /// /// 用户是否存在 /// /// /// 未加密的明码 /// public bool Exist(string userName, string password) { if (Exist("username = '" + userName + "' and userpassword = '" + Utils.MD5(password) + "'")) { return true; } else return false; } /// /// 用户是否存在 /// /// /// 用户密码 /// 用户密码是否已MD5加密 /// 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; } } /// /// 修改用户密码 /// /// 用户名 /// 旧密码 /// 新密码 /// 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 + "
  • 旧密码输入不正确
  • "; isErr = true; } if ( Utils.GetStringLength( NewPwd.Trim()) < 6) { msg = msg + "
  • 密码长度须不小于6
  • "; isErr = true; } if (!NewPwd.Trim().Equals(OldPwd.Trim())) { msg = msg + "
  • 两次密码输入不一致
  • "; 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 + "
  • 修改成功,新密码为{" + NewPwd.Trim() + "}
  • "; else msg = msg + "
  • 系统发生错误,请重新更改
  • "; return true; } /// /// 更新个人信息,answer必须是已加密 /// /// /// /// 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 + "
  • Email格式不正确!
  • "; isErr = true; } if ((0 == configInfo.EnableMultiRegPerEmail ) && user.Exist(" email='" + model.Email + "' and userId <> " + model.UserId )) { msg = msg + "
  • 您的Email在本站已被人注册,请换一个!
  • "; isErr = true; } if( string.IsNullOrEmpty(model.Question)) { msg = msg + "
  • 密码保护问题不能为空!
  • "; isErr = true; } if (string.IsNullOrEmpty(model.Answer)) { msg = msg + "
  • 密码保护问题答案不能为空!
  • "; isErr = true; } if (isErr) { return false; } if (Update(model) > 0) { msg = "
  • 修改成功!
  • "; return true; } return false; } public DataSet GetUserList() { return dal.GetUserList(); } #region SearchUser /// /// 快速搜索 /// /// /// 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 } }