<%@ WebHandler Language="C#" Class="SysUserHandler" %>
|
|
using Common;
|
using Dao;
|
using Model;
|
using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.Text.RegularExpressions;
|
|
public class SysUserHandler : PageHandler<SysUser>
|
{
|
private UserDao _Dao = new UserDao();
|
|
public override JsonPageResult ProcessRequestInternal(PageContext<SysUser> context)
|
{
|
string @string = context.GetString("action");
|
switch (@string)
|
{
|
case "saveUser":
|
return this.SaveUser(context);
|
case "loadUserList":
|
return this.LoadUserList(context);
|
case "deleteUser":
|
return this.DeleteUser(context);
|
case "loadUserInfo":
|
return this.LoadUserInfo(context);
|
case "loadUserMenuList":
|
return this.LoadUserMenuList(context);
|
case "updatePermission":
|
return this.UpdatePermission(context);
|
default:
|
throw new Exception("Invalid Action=" + @string);
|
}
|
}
|
|
private JsonPageResult UpdatePermission(PageContext<SysUser> context)
|
{
|
context.CheckRight("1042", FailedOperation.PromptOnly);
|
string @string = context.GetString("menuIDArray");
|
int @int = context.GetInt("userid");
|
string[] menuIDArray = JsonConvert.DeserializeObject<string[]>(@string);
|
if (menuIDArray == null)
|
throw new ArgumentException("菜单数据异常!");
|
if (@int == 0)
|
throw new ArgumentException("USERID参数异常!");
|
this._Dao.UpdatePermission(@int, menuIDArray);
|
return new JsonPageResult(true, (object) "保存权限成功!");
|
}
|
|
private JsonPageResult LoadUserList(PageContext<SysUser> context)
|
{
|
context.CheckRight("104", FailedOperation.PromptOnly);
|
int recordCount = 0;
|
int int1 = context.GetInt("pageSize", 20);
|
int int2 = context.GetInt("pageIndex", 1);
|
List<SysUser> list = this._Dao.LoadInfoList(out recordCount, int1, int2);
|
list.ForEach((Action<SysUser>) (u => u.Password = ""));
|
return new JsonPageResult(true, (object) new
|
{
|
Table = list,
|
TotalCount = recordCount
|
});
|
}
|
|
private JsonPageResult DeleteUser(PageContext<SysUser> context)
|
{
|
context.CheckRight("1044", FailedOperation.PromptOnly);
|
int @int = context.GetInt("userid");
|
if (@int == 1)
|
throw new ArgumentException("系统默认账户不能删除!");
|
this._Dao.Delete(@int);
|
return new JsonPageResult(true, (object) "删除用户成功!");
|
}
|
|
private JsonPageResult LoadUserInfo(PageContext<SysUser> context)
|
{
|
context.CheckRight("104", FailedOperation.PromptOnly);
|
return new JsonPageResult(true, (object) this._Dao.GetUserInfo(context.GetInt("userid")));
|
}
|
|
private JsonPageResult LoadUserMenuList(PageContext<SysUser> context)
|
{
|
context.CheckRight("104", FailedOperation.PromptOnly);
|
return new JsonPageResult(true, (object) this._Dao.LoadUserMenuList(context.GetInt("userid")).Keys);
|
}
|
|
private JsonPageResult SaveUser(PageContext<SysUser> context)
|
{
|
int int1 = context.GetInt("userid");
|
string string1 = context.GetString("account");
|
string string2 = context.GetString("password");
|
string string3 = context.GetString("email");
|
string string4 = context.GetString("mobile");
|
int int2 = context.GetInt("emailFlag");
|
int int3 = context.GetInt("mobileFlag");
|
int num = 0;
|
if (string.IsNullOrEmpty(string1) || !Regex.IsMatch(string1, "\\w{3,}"))
|
throw new ArgumentException("账户至少3位可见字符,请重新输入!");
|
if (string.IsNullOrEmpty(string2) || string2.Length < 6)
|
throw new ArgumentException("账户密码至少6位,请重新输入!");
|
if (context.GetBoolean("isVerification"))
|
num = 1;
|
string string5 = context.GetString("clientIp");
|
if (num == 1)
|
{
|
if (string.IsNullOrEmpty(string5))
|
throw new ArgumentException("IP地址不能为空,请输入!");
|
if (string.IsNullOrEmpty(string4.ToString()) || !Regex.IsMatch(string4, "1\\d{10}"))
|
throw new ArgumentException("手机号码无效,请重新输入!");
|
}
|
if (!string.IsNullOrEmpty(string4.ToString()) && !Regex.IsMatch(string4, "1\\d{10}"))
|
throw new ArgumentException("手机号码无效,请重新输入!");
|
if (!string.IsNullOrEmpty(string3) && !Regex.IsMatch(string3, "^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+"))
|
throw new ArgumentException("邮箱地址无效,请重新输入!");
|
if ((int3 == 1 || int3 == 2 || (int3 == 3 || int3 == 4) || int3 == 5) && !Regex.IsMatch(string4, "1\\d{10}"))
|
throw new ArgumentException("手机号码无效,请重新输入!");
|
if ((int2 == 1 || int2 == 2 || (int2 == 3 || int2 == 4) || int2 == 5) && !Regex.IsMatch(string3, "^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+"))
|
throw new ArgumentException("邮箱地址无效,请重新输入!");
|
SysUser sysUser = new SysUser();
|
sysUser.UserID = int1;
|
sysUser.Account = string1;
|
sysUser.CreateTime = DateTime.Now;
|
if (int1 > 0)
|
{
|
SysUser userInfo = this._Dao.GetUserInfo(int1);
|
sysUser.Password = userInfo.Password == string2 ? userInfo.Password : DataHelper.MD5Hex(string2);
|
sysUser.IsEncryption = userInfo.Password == string2 ? userInfo.IsEncryption : 1;
|
}
|
else
|
{
|
sysUser.Password = DataHelper.MD5Hex(string2);
|
sysUser.IsEncryption = 1;
|
}
|
sysUser.Email = string3;
|
sysUser.Mobile = string4;
|
sysUser.MobileFlag = int3;
|
sysUser.EmailFlag = int2;
|
sysUser.IsVerification = num;
|
sysUser.ClientIp = string5;
|
if (int1 > 0)
|
{
|
context.CheckRight("1042", FailedOperation.PromptOnly);
|
this._Dao.Update(sysUser);
|
}
|
else
|
{
|
context.CheckRight("1041", FailedOperation.PromptOnly);
|
if (this._Dao.Exists(string1))
|
throw new ArgumentException("账户已经存在,请重新输入!");
|
this._Dao.Add(sysUser);
|
}
|
return new JsonPageResult(true, (object) "账户保存成功!");
|
}
|
}
|