📄 userservice.cs
字号:
using System;
using System.Collections.Generic;
using System.Text;
using Smark.Data;
namespace Smark.Users
{
public enum Result
{
处理成功=0,
注册_用户名已经存在=100,
注册_用户名不能为空=101,
注册_邮件地址不能为空=102,
注册_密码不能为空=103,
注册_邮件地址已经被其他用户使用=104,
修改密码_用户名或密码不正确=200,
修改密码_旧密码不能为空=201,
修改密码_新密码不能为空=202,
修改密码_用户不存在=203,
修改邮件地址_密码不能为空=300,
修改邮件地址_用户不存或密码不正确=301,
修改邮件地址_邮件地址不能为空=302,
修改邮件地址_用户名不能为空=303
}
/// <summary>
/// 用户处理服务
/// </summary>
public class UserService
{
/// <summary>
/// 注册新用户
/// </summary>
/// <param name="user">用户信息</param>
/// <returns>Result</returns>
public Result Register(User user)
{
((IEntityState)user)._Loaded = false;
if (string.IsNullOrEmpty(user.UserName))
return Result.注册_用户名不能为空;
if (string.IsNullOrEmpty(user.UserPWD))
return Result.注册_密码不能为空;
if (string.IsNullOrEmpty(user.EMail))
return Result.注册_邮件地址不能为空;
Expression exp = User.userName == user.UserName;
if (User.Count(exp) > 0)
return Result.注册_用户名已经存在;
exp = User.eMail == user.EMail;
if (User.Count(exp) > 0)
return Result.注册_邮件地址已经被其他用户使用;
user.CreateDate = DateTime.Parse(DateTime.Now.ToShortDateString());
user.Enabled = true;
user.Save();
return Result.处理成功;
}
/// <summary>
/// 处理用户是否有效
/// </summary>
/// <param name="enabled">状态</param>
/// <param name="username">用户名</param>
public void Enabled(bool enabled, params string[] username)
{
using (IConnectinContext CC = DBContext.Context)
{
Expression exp = User.userName == username;
Update update = new Update(User.Table);
update.AddField(User.enabled.Name, enabled);
update.Where = exp;
update.Execute(CC);
}
}
/// <summary>
/// 更改用户类型
/// </summary>
/// <param name="type">用户类型</param>
/// <param name="username">用户名</param>
public void ChangeType(int type, params string[] username)
{
using (IConnectinContext CC = DBContext.Context)
{
Expression exp = User.userName == username;
Update update = new Update(User.Table);
update.AddField(User.userType.Name, type);
update.Where = exp;
update.Execute(CC);
}
}
/// <summary>
/// 修改用户密码
/// </summary>
/// <param name="username">用户名</param>
/// <param name="oldpwd">旧密码</param>
/// <param name="newpwd">新密码</param>
/// <returns>Result</returns>
public Result ChangPwd(string username, string oldpwd, string newpwd)
{
if (string.IsNullOrEmpty(oldpwd))
return Result.修改密码_旧密码不能为空;
if (string.IsNullOrEmpty(newpwd))
return Result.修改密码_新密码不能为空;
Expression exp = User.userName == username & User.userPWD == oldpwd;
User u = User.ListFirst(exp);
if (u == null)
return Result.修改密码_用户名或密码不正确;
u.UserPWD = newpwd;
u.Save();
return Result.处理成功;
}
/// <summary>
/// 修改用户密码
/// </summary>
/// <param name="username">用户密码</param>
/// <param name="newpwd">密码</param>
/// <returns>Result</returns>
public Result ChangePwd(string username, string newpwd)
{
if (string.IsNullOrEmpty(newpwd))
return Result.修改密码_新密码不能为空;
Expression exp = User.userName == username;
User u = User.ListFirst(exp);
if (u == null)
return Result.修改密码_用户不存在;
u.UserPWD = newpwd;
u.Save();
return Result.处理成功;
}
/// <summary>
/// 修改邮件地址
/// </summary>
/// <param name="username">用户名</param>
/// <param name="pwd">密码</param>
/// <param name="newemail">新邮件地址</param>
/// <returns>Result</returns>
public Result ChangeEMail(string username, string pwd, string newemail)
{
if (string.IsNullOrEmpty(username))
return Result.修改邮件地址_用户名不能为空;
if (string.IsNullOrEmpty(newemail))
return Result.修改邮件地址_邮件地址不能为空;
Expression exp = User.userName == username & User.userPWD == pwd;
User u = User.ListFirst(exp);
if (u == null)
return Result.修改邮件地址_用户不存或密码不正确;
u.EMail = newemail;
u.Save();
return Result.处理成功;
}
/// <summary>
/// 获取用户信息
/// </summary>
/// <param name="username">用户名</param>
/// <returns>User</returns>
public User Load(string username)
{
return User.Load(username);
}
/// <summary>
/// 用户查询
/// </summary>
/// <param name="matchusername">匹配用户名</param>
/// <param name="matchemail">匹配邮件地址</param>
/// <param name="region">加载数据区域</param>
/// <param name="orderby">排序</param>
/// <param name="records">返回的记录数</param>
/// <returns>IList`User</returns>
public IList<User> List(string matchusername, string matchemail, Region region, string orderby, out int records)
{
Expression exp = null;
if (!string.IsNullOrEmpty(matchusername))
exp &= User.userName.Match(matchusername);
if (!string.IsNullOrEmpty(matchemail))
exp &= User.eMail.Match(matchemail);
records = User.Count(exp);
return User.List(exp, region, orderby);
}
public User Login(string username, string pwd)
{
return User.ListFirst(User.userName == username & User.userPWD == pwd);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -