一个简单的用户信息处理理组件

用户信息描述类

 

 

ContractedBlock.gif ExpandedBlockStart.gif Code
using System;
using System.Collections.Generic;
using System.Text;
using Smark.Data.Mappings;
using Smark.Data.Validates;
namespace Component.Users
{
    
/*
     if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Users]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Users]
GO

CREATE TABLE [dbo].[Users] (
    [UserID] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [UserName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [FullName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [SysPassWord] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
    [Enabled] [bit] NULL ,
    [CreateDate] [datetime] NULL ,
    [EMail] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [Address] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [ZipCode] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [Phone] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [Region] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [Country] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [City] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [Remark] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [Sex] [int] NULL 
) ON [PRIMARY]
GO 
*/
    
/// <summary>
    
/// 用户表
    
/// </summary>
    [Table("Users")]
    
interface IUser
    {
        
/// <summary>
        
/// 用户ID
        
/// </summary>
        [ID]
        [UID]
        
string UserID { getset; }
        
/// <summary>
        
/// 用户名称
        
/// </summary>
        [Column]
        [NotNull(
"用户名不能为空!")]
        [Length(
"5""16""用户名长度必须5-16个字符!")]
        [Unique(
"该用户名已经给其他用户使用!")]
        
string UserName { getset; }
        
/// <summary>
        
/// 姓名
        
/// </summary>
        [Column]
        
string FullName { getset; }
        
/// <summary>
        
/// 性别
        
/// </summary>
        [DefaultEnum]
        [Column]
        SexType Sex { 
getset; }
        
/// <summary>
        
/// 系统密码
        
/// </summary>
        [Column]
        [NotNull(
"密码不能为空!")]
        [Length(
"5""16""密码长度必须5-16个字符!")]
        [Encrypt]
        
string SysPassWord { getset; }
        
/// <summary>
        
/// 有效性
        
/// </summary>
        [Column]
        [Enabled]
        
bool Enabled { getset; }
        
/// <summary>
        
/// 录入日期
        
/// </summary>
        [Column]
        [NowDate]
        DateTime CreateDate { 
getset; }
        
/// <summary>
        
/// 联系邮件地址
        
/// </summary>
        [Column]
        [NotNull(
"邮件地址不能为空!")]
        [EMail(
"非法邮件地址!")]
        [Unique(
"该邮件地址已经给其他用户使用!")]
        
string EMail { getset; }
        
/// <summary>
        
/// 联系地址
        
/// </summary>
        [Column]
        
string Address { getset; }
        
/// <summary>
        
/// 邮政编码
        
/// </summary>
        [Column]
        
string ZipCode { getset; }
        
/// <summary>
        
/// 联系电话
        
/// </summary>
        [Column]
        
string Phone { getset; }
        
/// <summary>
        
/// 所在区域
        
/// </summary>
        [Column]
        
string Region { getset; }
        
/// <summary>
        
/// 所在家国
        
/// </summary>
        [Column]
        
string Country { getset; }
        
/// <summary>
        
/// 所在城市
        
/// </summary>
        [Column]
        
string City { getset; }
        
/// <summary>
        
/// 备注
        
/// </summary>
        [Column]
        
string Remark { getset; }
       

      
    }
    

}

用户操作逻辑类

 

ContractedBlock.gif ExpandedBlockStart.gif Code
using System;
using System.Collections.Generic;
using System.Text;
using Smark.Data;
namespace Component.Users
{
    
public class UserService
    {
        
static object LOCK_ADD = new object();
        
public UserAccessState Add(User user)
        {
            
            
lock (LOCK_ADD)
            {
                user.EntityState._Loaded 
= false;
                user.Save();
                
return UserAccessState.处理成功;
            }
        }
        
public User GetByID(string userid)
        {

            
return GetByExp(User.userID == userid);
        }
        
public User GetByName(string username)
        {
            
return GetByExp(User.userName == username);
        }
        
public User GetByEMail(string email)
        {
            
return GetByExp(User.eMail == email);
        }
        
private User GetByExp(Expression exp)
        {
            
return exp.ListFirst<User>();
        }
        
public IList<User> List(string username, string email, Smark.Data.Region region,out int recordcount)
        {
            Expression exp 
= null;
            
if (!string.IsNullOrEmpty(username))
                exp 
&= User.userName.Like(username + "%");
            
if (!string.IsNullOrEmpty(email))
                exp 
&= User.eMail.Like(email + "%");
            recordcount 
= exp.Count<User>();
            
return exp.List<User>(region);
        }
        
public void Enabled(bool enabled, params string[] userid)
        {
            Expression exp 
= User.userID == userid;
            exp.Edit
<User>(
                User.enabled.NewValue(enabled));
        }
        
public User Login(string username, string pwd)
        {
            Expression exp 
= User.userName == username;
            User user 
= exp.ListFirst<User>();
            
if (user == null)
                
return null;
            
if (user.SysPassWord.ToLower() == pwd.ToLower())
                
return user;
            
return null;
        }
        
public UserAccessState ChangePwd(string username, string opwd, string npwd)
        {
            Expression exp 
= User.userName == username;
            User user 
= exp.ListFirst<User>();
            
if (user == null)
                
return UserAccessState.用户名或密码不正确;
            
if (user.SysPassWord.ToLower() != opwd.ToLower())
                
return UserAccessState.用户名或密码不正确;
            user.SysPassWord 
= npwd;
            user.Save();
            
            
return UserAccessState.处理成功;
        }
        
public void ChangePwd(string npwd,params string[] userid)
        {
            Expression exp 
= User.userID == userid;
            exp.Edit
<User>(
                User.sysPassWord.NewValue(npwd));
        }
        
    }
    
public enum UserAccessState
    {
        处理成功,
        用户名已经存,
        邮件已经被其他用户使用,
        用户名或密码不正确
    }
    
public class UserServiceException : Exception
    {
        
public UserServiceException() { }
        
public UserServiceException(string err) : base(err) { }
        
public UserServiceException(string err, Exception baseexc) : base(err, baseexc) { }
    }
}

 

 源码项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值