DHDHSoftware/DH.RBAC/Logic/Sys/SysUserLogic.cs
liyaobang 9f7c6206ca 提交rbac
提交设置右键错位的bug
2025-04-08 15:15:02 +08:00

510 lines
19 KiB
C#

using DH.RBAC.Logic.Base;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security.Principal;
using DH.RBAC.Model.Sys;
using DH.RBAC.Utility.Other;
using SqlSugar;
using System.ComponentModel;
namespace DH.RBAC.Logic.Sys
{
public class SysUserLogic : BaseLogic
{
/// <summary>
/// 根据账号得到用户信息
/// </summary>
/// <param name="account"></param>
/// <returns></returns>
public SysUser GetByUserName(string account)
{
using (var db = GetInstance())
{
return db.Queryable<SysUser>().Where(it => it.Account == account && it.DeleteFlag == "N")
.Includes(it => it.Organize)
.Includes(it => it.CreateUser)
.Includes(it => it.ModifyUser)
.First();
}
}
/// <summary>
/// 修改用户基础信息
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public int UpdateBasicInfo(SysUser model, string account)
{
using (var db = GetInstance())
{
model.ModifyUserId = account;
model.ModifyTime = DateTime.Now;
return db.Updateable<SysUser>(model).UpdateColumns(it => new
{
it.RealName,
it.NickName,
it.Gender,
it.Birthday,
it.MobilePhone,
it.Avatar,
it.Email,
it.Signature,
it.Address,
it.ModifyUserId,
it.ModifyTime
}).ExecuteCommand();
}
}
public int AppUpdateBasicInfo(SysUser model)
{
using (var db = GetInstance())
{
model.ModifyUserId = model.Id;
model.ModifyTime = DateTime.Now;
return db.Updateable<SysUser>(model).UpdateColumns(it => new
{
it.RealName,
it.NickName,
it.Gender,
it.Birthday,
it.MobilePhone,
it.Avatar,
it.Email,
it.Signature,
it.Address,
it.ModifyUserId,
it.ModifyTime
}).ExecuteCommand();
}
}
public int Insert(SysUser model, string password, string account, string[] roleIds)
{
using (var db = GetInstance())
{
try
{
db.BeginTran();
////新增用户基本信息。
model.Id = UUID.StrSnowId;
model.EnableFlag = "Y";
model.DeleteFlag = "N";
model.CreateUserId = account;
model.CreateTime = DateTime.Now;
model.ModifyUserId = model.CreateUserId;
model.ModifyTime = model.CreateTime;
model.Avatar = "/Content/framework/images/avatar.png";
int row = db.Insertable<SysUser>(model).ExecuteCommand();
if (row == 0)
{
db.RollbackTran();
return row;
}
//新增新的角色
List<SysUserRoleRelation> list = new List<SysUserRoleRelation>();
foreach (string roleId in roleIds)
{
SysUserRoleRelation roleRelation = new SysUserRoleRelation
{
Id = UUID.StrSnowId,
UserId = model.Id,
RoleId = roleId,
EnableFlag = "Y",
DeleteFlag = "N",
CreateUserId = account,
CreateTime = DateTime.Now,
ModifyUserId = account,
ModifyTime = DateTime.Now
};
list.Add(roleRelation);
}
row = db.Insertable<SysUserRoleRelation>(list).ExecuteCommand();
if (row == 0)
{
db.RollbackTran();
return row;
}
//新增用户登陆信息。
SysUserLogOn userLogOnEntity = new SysUserLogOn();
userLogOnEntity.Id = UUID.StrSnowId;
userLogOnEntity.UserId = model.Id;
userLogOnEntity.SecretKey = userLogOnEntity.Id.DESEncrypt().Substring(0, 8);
userLogOnEntity.Password = password.MD5Encrypt().DESEncrypt(userLogOnEntity.SecretKey).MD5Encrypt();
userLogOnEntity.LoginCount = 0;
userLogOnEntity.IsOnLine = "0";
userLogOnEntity.EnableFlag = "Y";
userLogOnEntity.DeleteFlag = "N";
userLogOnEntity.CreateUserId = account;
userLogOnEntity.CreateTime = DateTime.Now;
userLogOnEntity.ModifyUserId = account;
userLogOnEntity.ModifyTime = DateTime.Now;
row = db.Insertable<SysUserLogOn>(userLogOnEntity).ExecuteCommand();
if (row == 0)
{
db.RollbackTran();
return row;
}
db.CommitTran();
return row;
}
catch
{
db.RollbackTran();
return 0;
}
}
}
public bool ContainsUser(string userAccount, params string[] userIdList)
{
using (var db = GetInstance())
{
List<string> accountList = db.Queryable<SysUser>().Where(it => userIdList.Contains(it.Id)).Select(it => it.Account).ToList();
if (accountList.IsNullOrEmpty())
return false;
if (accountList.Contains(userAccount))
return true;
return false;
}
}
public int AppInsert(SysUser model, string password, string[] roleIds, string opearateUser)
{
using (var db = GetInstance())
{
try
{
db.BeginTran();
////新增用户基本信息。
model.Id = UUID.StrSnowId;
model.EnableFlag = "Y";
model.DeleteFlag = "N";
model.CreateUserId = opearateUser;
model.CreateTime = DateTime.Now;
model.ModifyUserId = model.CreateUserId;
model.ModifyTime = model.CreateTime;
model.Avatar = "/Content/framework/images/avatar.png";
int row = db.Insertable<SysUser>(model).ExecuteCommand();
if (row == 0)
{
db.RollbackTran();
return row;
}
//新增新的角色
List<SysUserRoleRelation> list = new List<SysUserRoleRelation>();
foreach (string roleId in roleIds)
{
SysUserRoleRelation roleRelation = new SysUserRoleRelation
{
Id = UUID.StrSnowId,
UserId = model.Id,
RoleId = roleId,
EnableFlag = "Y",
DeleteFlag = "N",
CreateUserId = opearateUser,
CreateTime = DateTime.Now,
ModifyUserId = opearateUser,
ModifyTime = DateTime.Now
};
list.Add(roleRelation);
}
row = db.Insertable<SysUserRoleRelation>(list).ExecuteCommand();
if (row == 0)
{
db.RollbackTran();
return row;
}
//新增用户登陆信息。
SysUserLogOn userLogOnEntity = new SysUserLogOn();
userLogOnEntity.Id = UUID.StrSnowId;
userLogOnEntity.UserId = model.Id;
userLogOnEntity.SecretKey = userLogOnEntity.Id.DESEncrypt().Substring(0, 8);
userLogOnEntity.Password = password.DESEncrypt(userLogOnEntity.SecretKey).MD5Encrypt();
userLogOnEntity.LoginCount = 0;
userLogOnEntity.IsOnLine = "0";
userLogOnEntity.EnableFlag = "Y";
userLogOnEntity.DeleteFlag = "N";
userLogOnEntity.CreateUserId = opearateUser;
userLogOnEntity.CreateTime = DateTime.Now;
userLogOnEntity.ModifyUserId = userLogOnEntity.CreateUserId;
userLogOnEntity.ModifyTime = userLogOnEntity.CreateTime;
row = db.Insertable<SysUserLogOn>(userLogOnEntity).ExecuteCommand();
if (row == 0)
{
db.RollbackTran();
return row;
}
db.CommitTran();
return row;
}
catch
{
db.RollbackTran();
return 0;
}
}
}
/// <summary>
/// 根据主键得到用户信息
/// </summary>
/// <param name="primaryKey"></param>
/// <returns></returns>
public SysUser Get(string primaryKey)
{
using (var db = GetInstance())
{
return db.Queryable<SysUser>().Where(it => it.Id == primaryKey)
.Includes(it => it.Organize)
.Includes(it => it.CreateUser)
.Includes(it => it.ModifyUser).First();
}
}
/// <summary>
/// 获得用户列表分页
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="keyWord"></param>
/// <param name="totalCount"></param>
/// <returns></returns>
public List<SysUser> GetList(int pageIndex, int pageSize, string keyWord, ref int totalCount)
{
using (var db = GetInstance())
{
ISugarQueryable<SysUser> queryable = db.Queryable<SysUser>().Where(it => it.DeleteFlag == "N");
if (!keyWord.IsNullOrEmpty())
{
queryable = queryable.Where(it => it.Account.Contains(keyWord) || it.RealName.Contains(keyWord));
}
return queryable.OrderBy(it => it.SortCode)
.Includes(it => it.Organize)
.Includes(it => it.CreateUser)
.Includes(it => it.ModifyUser).ToPageList(pageIndex, pageSize, ref totalCount);
}
}
/// <summary>
/// 删除用户信息
/// </summary>
/// <param name="primaryKeys"></param>
/// <returns></returns>
public int Delete(List<string> primaryKeys)
{
using (var db = GetInstance())
{
List<SysUser> list = db.Queryable<SysUser>().Where(it => primaryKeys.Contains(it.Id)).ToList();
list.ForEach(it => { it.DeleteFlag = "Y"; });
return db.Updateable<SysUser>(list).ExecuteCommand();
}
}
/// <summary>
/// 新增用户基础信息
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public int Insert(SysUser model, string account)
{
using (var db = GetInstance())
{
model.Id = UUID.StrSnowId;
model.DeleteFlag = "N";
model.EnableFlag = "Y";
model.CreateUserId = account;
model.CreateTime = DateTime.Now;
model.ModifyUserId = model.CreateUserId;
model.ModifyTime = model.CreateTime;
model.Avatar = "/Content/framework/images/avatar.png";
return db.Insertable<SysUser>(model).ExecuteCommand();
}
}
/// <summary>
/// 更新用户基础信息
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public int Update(SysUser model, string account)
{
using (var db = GetInstance())
{
model.ModifyUserId = account;
model.ModifyTime = DateTime.Now;
return db.Updateable<SysUser>(model).UpdateColumns(it => new
{
it.NickName,
it.RealName,
it.Birthday,
it.Gender,
it.Email,
it.DepartmentId,
it.RoleId,
it.MobilePhone,
it.Address,
it.Signature,
it.SortCode,
it.IsEnabled,
it.ModifyUserId,
it.ModifyTime
}).ExecuteCommand();
}
}
public int AppUpdateAndSetRole(SysUser model, string[] roleIds, string opereateUser)
{
using (var db = GetInstance())
{
try
{
db.BeginTran();
model.ModifyUserId = opereateUser;
model.ModifyTime = DateTime.Now;
int row = db.Updateable<SysUser>(model).UpdateColumns(it => new
{
it.NickName,
it.RealName,
it.Birthday,
it.Gender,
it.Email,
it.DepartmentId,
it.RoleId,
it.MobilePhone,
it.Address,
it.Signature,
it.SortCode,
it.ModifyUserId,
it.ModifyTime
}).ExecuteCommand();
if (row == 0)
{
db.RollbackTran();
return row;
}
//删除原来的角色
List<SysUserRoleRelation> list2 = db.Queryable<SysUserRoleRelation>().Where(it => it.UserId == model.Id && it.DeleteFlag == "N").ToList();
list2.ForEach(it => { it.DeleteFlag = "Y"; });
db.Updateable<SysUserRoleRelation>(list2).ExecuteCommand();
//新增新的角色
List<SysUserRoleRelation> list = new List<SysUserRoleRelation>();
foreach (string roleId in roleIds)
{
SysUserRoleRelation roleRelation = new SysUserRoleRelation
{
Id = UUID.StrSnowId,
UserId = model.Id,
RoleId = roleId,
DeleteFlag = "N",
EnableFlag = "Y",
CreateUserId = opereateUser,
CreateTime = DateTime.Now,
ModifyUserId = opereateUser,
ModifyTime = DateTime.Now
};
list.Add(roleRelation);
}
row = db.Insertable<SysUserRoleRelation>(list).ExecuteCommand();
if (row == 0)
{
db.RollbackTran();
return row;
}
db.CommitTran();
return row;
}
catch
{
db.RollbackTran();
return 0;
}
}
}
public int UpdateAndSetRole(SysUser model, string account, string[] roleIds)
{
using (var db = GetInstance())
{
try
{
db.BeginTran();
model.ModifyUserId = account;
model.ModifyTime = DateTime.Now;
int row = db.Updateable<SysUser>(model).UpdateColumns(it => new
{
it.NickName,
it.RealName,
it.Birthday,
it.Gender,
it.Email,
it.DepartmentId,
it.RoleId,
it.MobilePhone,
it.Address,
it.Signature,
it.SortCode,
it.EnableFlag,
it.ModifyUserId,
it.ModifyTime
}).ExecuteCommand();
if (row == 0)
{
db.RollbackTran();
return row;
}
//删除原来的角色
List<SysUserRoleRelation> list2 = db.Queryable<SysUserRoleRelation>().Where(it => it.UserId == model.Id && it.DeleteFlag == "N").ToList();
list2.ForEach(it => { it.DeleteFlag = "Y"; });
db.Updateable<SysUserRoleRelation>(list2).ExecuteCommand();
//新增新的角色
List<SysUserRoleRelation> list = new List<SysUserRoleRelation>();
foreach (string roleId in roleIds)
{
SysUserRoleRelation roleRelation = new SysUserRoleRelation
{
Id = UUID.StrSnowId,
UserId = model.Id,
RoleId = roleId,
EnableFlag = "Y",
DeleteFlag = "N",
CreateUserId = account,
CreateTime = DateTime.Now,
ModifyTime = DateTime.Now,
ModifyUserId = account
};
list.Add(roleRelation);
}
row = db.Insertable<SysUserRoleRelation>(list).ExecuteCommand();
if (row == 0)
{
db.RollbackTran();
return row;
}
db.CommitTran();
return row;
}
catch
{
db.RollbackTran();
return 0;
}
}
}
}
}