init commit
This commit is contained in:
50
20220330_Vote/Ewide.RoadFlow/Data/User/IUserDummy.cs
Normal file
50
20220330_Vote/Ewide.RoadFlow/Data/User/IUserDummy.cs
Normal file
@@ -0,0 +1,50 @@
|
||||
using Ewide.Core;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace RoadFlow.Data
|
||||
{
|
||||
public interface IUserDummy
|
||||
{
|
||||
/// <summary>
|
||||
/// 根据一组ID字符串得到人员的姓名
|
||||
/// </summary>
|
||||
/// <param name="id">逗号分开的ID</param>
|
||||
/// <returns></returns>
|
||||
public string GetNames(string ids);
|
||||
|
||||
/// <summary>
|
||||
/// 判断一个人员ID是否在一个组织机构字符串中
|
||||
/// </summary>
|
||||
/// <param name="organizeIds"></param>
|
||||
/// <param name="userId"></param>
|
||||
/// <returns></returns>
|
||||
public bool Contains(string organizeIds, string userId);
|
||||
/// <summary>
|
||||
/// 判断一个人员是否在一个组织架构字符串里
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="memberIds"></param>
|
||||
/// <returns></returns>
|
||||
public bool IsIn(string userId, string memberIds);
|
||||
|
||||
/// <summary>
|
||||
/// 得到人员的签章图片路径(VUE版本)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string GetSignSrcVue(string userId = "", string userName = "");
|
||||
|
||||
/// <summary>
|
||||
/// 得到用户加密后的密码
|
||||
/// </summary>
|
||||
/// <param name="userId">用户ID</param>
|
||||
/// <param name="password">密码</param>
|
||||
/// <returns></returns>
|
||||
public string GetMD5Password(string userId, string password);
|
||||
|
||||
public SysUser Get(string id);
|
||||
}
|
||||
}
|
||||
550
20220330_Vote/Ewide.RoadFlow/Data/User/UserDummy.cs
Normal file
550
20220330_Vote/Ewide.RoadFlow/Data/User/UserDummy.cs
Normal file
@@ -0,0 +1,550 @@
|
||||
using Ewide.Core;
|
||||
using Furion;
|
||||
using Furion.DatabaseAccessor;
|
||||
using Furion.DependencyInjection;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using RoadFlow.Data;
|
||||
using RoadFlow.Model.FlowRunModel;
|
||||
using RoadFlow.Utility;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace RoadFlow.Data
|
||||
{
|
||||
public class UserDummy: IUserDummy, ITransient
|
||||
{
|
||||
private readonly IRepository<SysUser> _sysUserRep =App.GetService<IRepository<SysUser>>(); // 用户表仓储
|
||||
private readonly IRepository<SysOrg> _sysOrgRep =App.GetService< IRepository<SysOrg>>();
|
||||
private readonly IRepository<SysEmp> _sysEmpRep=App.GetService<IRepository<SysEmp>>();
|
||||
private readonly IRepository<SysEmpExtOrgPos> _sysEmpExtOrgPosRep= App.GetService<IRepository<SysEmpExtOrgPos>>();
|
||||
private readonly IRepository<SysRole> _sysRoleRep= App.GetService<IRepository<SysRole>>();
|
||||
private readonly IOrganize _organize = new Organize();
|
||||
private readonly IUserManager _userManager = App.GetService<IUserManager>();
|
||||
private readonly IRepository<SysRoleDataScope> _sysRoleDataScopeRep= App.GetService<IRepository<SysRoleDataScope>>();
|
||||
|
||||
/// <summary>
|
||||
/// 根据一组ID字符串得到人员的姓名
|
||||
/// </summary>
|
||||
/// <param name="id">逗号分开的ID</param>
|
||||
/// <returns></returns>
|
||||
public string GetNames(string ids)
|
||||
{
|
||||
if (ids.IsNullOrEmpty())
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
List<string> userids = new List<string>();
|
||||
foreach (string id in ids.Split(','))
|
||||
{
|
||||
string userId = id;
|
||||
if (id.StartsWith(IOrganize.PREFIX_USER))
|
||||
{
|
||||
userId = id.RemoveUserPrefix();
|
||||
}
|
||||
if (!userId.IsGuid())
|
||||
{
|
||||
continue;
|
||||
}
|
||||
userids.Add(userId);
|
||||
}
|
||||
List<SysUser> users = _sysUserRep.DetachedEntities.Where(x => userids.Contains(x.Id)).ToList();
|
||||
foreach (SysUser u in users)
|
||||
{
|
||||
stringBuilder.Append(u.Name);
|
||||
stringBuilder.Append("、");
|
||||
}
|
||||
return stringBuilder.ToString().TrimEnd('、');
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 判断一个人员ID是否在一个组织机构字符串中
|
||||
/// </summary>
|
||||
/// <param name="organizeIds"></param>
|
||||
/// <param name="userId"></param>
|
||||
/// <returns></returns>
|
||||
public bool Contains(string organizeIds, string userId)
|
||||
{
|
||||
string[] orgids = organizeIds.Split(',');
|
||||
for (int a = 0; a < orgids.Length; a++)
|
||||
{
|
||||
string curent = orgids[a];
|
||||
if (curent.StartsWith(IOrganize.PREFIX_USER) && curent.RemoveUserPrefix() == userId)
|
||||
return true;
|
||||
if (curent.StartsWith(IOrganize.PREFIX_RELATION) && curent.RemoveUserRelationPrefix() == userId)
|
||||
return true;
|
||||
if (curent.StartsWith(IOrganize.PREFIX_WORKGROUP))
|
||||
orgids[a] = curent.RemoveWorkGroupPrefix();
|
||||
}
|
||||
bool emp =_sysEmpRep.Count(x => x.Id == userId && orgids.Contains(x.OrgId))>0;
|
||||
bool extEmp=_sysEmpExtOrgPosRep.Count(x => x.SysEmpId == userId && orgids.Contains(x.SysOrgId)) > 0;
|
||||
return emp | extEmp;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 判断一个人员是否在一个组织架构字符串里
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="memberIds"></param>
|
||||
/// <returns></returns>
|
||||
public bool IsIn(string userId, string memberIds)
|
||||
{
|
||||
if (!userId.IsGuid())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if (userId.StartsWith(IOrganize.PREFIX_USER))
|
||||
{
|
||||
userId = userId.RemoveUserPrefix();
|
||||
}
|
||||
else if (userId.StartsWith(IOrganize.PREFIX_RELATION))
|
||||
{
|
||||
userId = userId.RemoveUserRelationPrefix ();
|
||||
}
|
||||
|
||||
var users = _organize.GetAllUsers(memberIds);
|
||||
return users.Exists(p => p.Id == userId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 得到人员的签章图片路径(VUE版本)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public string GetSignSrcVue(string userId = "", string userName = "")
|
||||
{
|
||||
string rootPath = Tools.GetContentRootPath() + "/wwwroot";
|
||||
string signPath = "/roadflow-files/user-signs/" + (userId.IsNullOrWhiteSpace() ? _userManager.UserId.ToLower() : userId.ToLower()) + "/default.png";
|
||||
if (File.Exists(rootPath + signPath))
|
||||
{
|
||||
return signPath;
|
||||
}
|
||||
else
|
||||
{
|
||||
string dirName = Path.GetDirectoryName(rootPath + signPath);
|
||||
if (!Directory.Exists(dirName))
|
||||
{
|
||||
Directory.CreateDirectory(dirName);
|
||||
}
|
||||
var img = CreateSignImage(userName.IsNullOrWhiteSpace() ? _userManager.Name : userName);
|
||||
img.Save(rootPath + signPath, System.Drawing.Imaging.ImageFormat.Png);
|
||||
return signPath;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 重置签章图片
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <param name="userName"></param>
|
||||
/// <returns></returns>
|
||||
public string ResetSignSrcVue(string userId = "", string userName = "")
|
||||
{
|
||||
string rootPath = Tools.GetContentRootPath() + "/wwwroot";
|
||||
string signPath = "/roadflow-files/user-signs/" + (userId.IsNullOrWhiteSpace() ? _userManager.UserId.ToLower(): userId.ToLower()) + "/default.png";
|
||||
string dirName = Path.GetDirectoryName(rootPath + signPath);
|
||||
if (!Directory.Exists(dirName))
|
||||
{
|
||||
Directory.CreateDirectory(dirName);
|
||||
}
|
||||
var img = CreateSignImage(userName.IsNullOrWhiteSpace() ? _userManager.Name : userName);
|
||||
img.Save(rootPath + signPath, System.Drawing.Imaging.ImageFormat.Png);
|
||||
return signPath;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 生成签章图片
|
||||
/// </summary>
|
||||
/// <param name="UserName"></param>
|
||||
/// <returns></returns>
|
||||
public Bitmap CreateSignImage(string UserName)
|
||||
{
|
||||
if (UserName.IsNullOrEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
Random rand = new Random(UserName.GetHashCode());
|
||||
Size ImageSize = Size.Empty;
|
||||
Font myFont;
|
||||
try
|
||||
{
|
||||
myFont = new Font("LiSu", 16);
|
||||
}
|
||||
catch
|
||||
{
|
||||
myFont = new Font(new FontFamily(System.Drawing.Text.GenericFontFamilies.Monospace), 16);
|
||||
}
|
||||
// 计算图片大小
|
||||
using (Bitmap bmp1 = new Bitmap(5, 5))
|
||||
{
|
||||
using (Graphics g = Graphics.FromImage(bmp1))
|
||||
{
|
||||
SizeF size = g.MeasureString(UserName, myFont, 10000);
|
||||
ImageSize.Width = (int)size.Width + 4;
|
||||
ImageSize.Height = (int)size.Height;
|
||||
}
|
||||
}
|
||||
// 创建图片
|
||||
Bitmap bmp = new Bitmap(ImageSize.Width, ImageSize.Height);
|
||||
// 绘制文本
|
||||
using (Graphics g = Graphics.FromImage(bmp))
|
||||
{
|
||||
g.Clear(Color.White);
|
||||
using (StringFormat f = new StringFormat())
|
||||
{
|
||||
f.Alignment = StringAlignment.Center;
|
||||
f.LineAlignment = StringAlignment.Center;
|
||||
f.FormatFlags = StringFormatFlags.NoWrap;
|
||||
g.DrawString(
|
||||
UserName,
|
||||
myFont,
|
||||
Brushes.Red,
|
||||
new RectangleF(
|
||||
0,
|
||||
2,
|
||||
ImageSize.Width,
|
||||
ImageSize.Height),
|
||||
f);
|
||||
}
|
||||
}
|
||||
|
||||
// 随机制造噪点 (用户名绑定)
|
||||
Color c = Color.Red;
|
||||
int x, y;
|
||||
int num = ImageSize.Width * ImageSize.Height * 8 / 100;
|
||||
for (int iCount = 0; iCount < num; iCount++)
|
||||
{
|
||||
x = rand.Next(0, 4);
|
||||
y = rand.Next(ImageSize.Height);
|
||||
bmp.SetPixel(x, y, c);
|
||||
|
||||
x = rand.Next(ImageSize.Width - 4, ImageSize.Width);
|
||||
y = rand.Next(ImageSize.Height);
|
||||
bmp.SetPixel(x, y, c);
|
||||
|
||||
}
|
||||
|
||||
int num1 = ImageSize.Width * ImageSize.Height * 20 / 100;
|
||||
for (int iCount = 0; iCount < num1; iCount++)
|
||||
{
|
||||
x = rand.Next(ImageSize.Width);
|
||||
y = rand.Next(0, 4);
|
||||
bmp.SetPixel(x, y, c);
|
||||
|
||||
x = rand.Next(ImageSize.Width);
|
||||
y = rand.Next(ImageSize.Height - 4, ImageSize.Height);
|
||||
bmp.SetPixel(x, y, c);
|
||||
}
|
||||
|
||||
int num2 = ImageSize.Width * ImageSize.Height / 150;
|
||||
for (int iCount = 0; iCount < num2; iCount++)
|
||||
{
|
||||
x = rand.Next(ImageSize.Width);
|
||||
y = rand.Next(ImageSize.Height);
|
||||
bmp.SetPixel(x, y, c);
|
||||
}
|
||||
myFont.Dispose();
|
||||
return bmp;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取用户部门
|
||||
/// </summary>
|
||||
/// <param name="uid"></param>
|
||||
/// <returns></returns>
|
||||
public SysOrg GetDept(string uid)
|
||||
{
|
||||
string oid = _sysEmpRep.DetachedEntities.FirstOrDefault(x => x.Id == uid).OrgId;
|
||||
return _sysOrgRep.DetachedEntities.FirstOrDefault(x => x.Id == oid);
|
||||
|
||||
}
|
||||
|
||||
public SysPos GetStation(string uid)
|
||||
{
|
||||
return _sysEmpRep.DetachedEntities.FirstOrDefault(x => x.Id == uid).SysEmpPos[0].SysPos;
|
||||
}
|
||||
|
||||
public string GetWorkGroupsId(string userId)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
public string GetWorkGroupsName(string userId)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
public static string LEADER_CODE="";
|
||||
|
||||
public string GetLeader(string userId)
|
||||
{
|
||||
string orgid =_sysEmpRep.DetachedEntities.FirstOrDefault(x => x.Id == userId).OrgId;
|
||||
var emps =_sysEmpRep.DetachedEntities.Where(x => x.OrgId == orgid).ToList();
|
||||
HashSet<string> userIds = new HashSet<string>();
|
||||
foreach (var e in emps)
|
||||
userIds.Add(e.Id);
|
||||
var leaders =_sysRoleRep.DetachedEntities.Where(x => x.Code == LEADER_CODE).ToList();
|
||||
foreach (var l in leaders)
|
||||
{
|
||||
foreach (var u in l.SysUsers)
|
||||
{
|
||||
if (userIds.Contains(u.Id))
|
||||
return u.Id;
|
||||
}
|
||||
|
||||
}
|
||||
return string.Empty;
|
||||
|
||||
}
|
||||
public SysOrg GetUnit(string userId)
|
||||
{
|
||||
string orgid =_sysEmpRep.DetachedEntities.FirstOrDefault(x => x.Id == userId).OrgId;
|
||||
return _sysOrgRep.DetachedEntities.FirstOrDefault(x => x.Id == orgid);
|
||||
}
|
||||
|
||||
public string GetName(string userId)
|
||||
{
|
||||
return _sysUserRep.DetachedEntities.FirstOrDefault(x => x.Id == userId)?.Name;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 得到一个人员所在部门的工作角色
|
||||
/// </summary>
|
||||
/// <param name="id">人员id</param>
|
||||
/// <returns></returns>
|
||||
public JArray GetWorkRole(string userId)
|
||||
{
|
||||
SysUser usr =_sysUserRep.DetachedEntities.FirstOrDefault(x => x.Id == userId);
|
||||
return JArray.FromObject(usr.SysRoles);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 得到一批人员的部门领导和分管领导
|
||||
/// </summary>
|
||||
/// <param name="userIds"></param>
|
||||
/// <returns></returns>
|
||||
public (string leader, string chargeLeader) GetLeader(List<string> userIds)
|
||||
{
|
||||
StringBuilder leaderBuilder = new StringBuilder();
|
||||
StringBuilder chargeLeaderBuilder = new StringBuilder();
|
||||
foreach (string userId in userIds)
|
||||
{
|
||||
string leader = GetLeader(userId);
|
||||
string chargeLeader = leader;
|
||||
leaderBuilder.Append(leader);
|
||||
leaderBuilder.Append(",");
|
||||
chargeLeaderBuilder.Append(chargeLeader);
|
||||
chargeLeaderBuilder.Append(",");
|
||||
}
|
||||
return (leaderBuilder.ToString().TrimEnd(','), chargeLeaderBuilder.ToString().TrimEnd(','));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 得到一个人员的上级部门领导
|
||||
/// </summary>
|
||||
/// <param name="userId">guid(人ID),u_guid(人ID),r_guid(关系表ID)</param>
|
||||
/// <returns></returns>
|
||||
public (string leader, string chargeLeader) GetParentLeader(string userId)
|
||||
{
|
||||
var emp = _sysEmpRep.DetachedEntities.FirstOrDefault(x => x.Id == userId);
|
||||
var org = _sysOrgRep.DetachedEntities.FirstOrDefault(x => x.Id == emp.OrgId);
|
||||
var parent = _sysOrgRep.DetachedEntities.FirstOrDefault(x => x.Id == org.Pid);
|
||||
|
||||
var emps = _sysEmpRep.DetachedEntities.Where(x => x.OrgId == parent.Id).ToList();
|
||||
HashSet<string> userIds = new HashSet<string>();
|
||||
foreach (var e in emps)
|
||||
userIds.Add(e.Id);
|
||||
var leaders = _sysRoleRep.DetachedEntities.Where(x => x.Code == LEADER_CODE).ToList();
|
||||
foreach (var l in leaders)
|
||||
{
|
||||
foreach (var u in l.SysUsers)
|
||||
{
|
||||
if (userIds.Contains(u.Id))
|
||||
return (u.Id,u.Id);
|
||||
}
|
||||
|
||||
}
|
||||
return (string.Empty, string.Empty);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 得到一批人员的上级部门领导
|
||||
/// </summary>
|
||||
/// <param name="userId">guid(人ID),u_guid(人ID),r_guid(关系表ID)</param>
|
||||
/// <returns></returns>
|
||||
public (string leader, string chargeLeader) GetParentLeader(List<string> userIds)
|
||||
{
|
||||
StringBuilder leaderBuilder = new StringBuilder();
|
||||
StringBuilder chargeLeaderBuilder = new StringBuilder();
|
||||
foreach (string userId in userIds)
|
||||
{
|
||||
(string leader, string chargeLeader) = GetParentLeader(userId);
|
||||
leaderBuilder.Append(leader);
|
||||
leaderBuilder.Append(",");
|
||||
chargeLeaderBuilder.Append(chargeLeader);
|
||||
chargeLeaderBuilder.Append(",");
|
||||
}
|
||||
return (leaderBuilder.ToString().TrimEnd(','), chargeLeaderBuilder.ToString().TrimEnd(','));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 得到一个人员的所有上级部门领导
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <returns></returns>
|
||||
public (string leader, string chargeLeader) GetAllParentLeader(string userId)
|
||||
{
|
||||
|
||||
var emp = _sysEmpRep.DetachedEntities.FirstOrDefault(x => x.Id == userId);
|
||||
var org = _sysOrgRep.DetachedEntities.FirstOrDefault(x => x.Id == emp.OrgId);
|
||||
List<string> orgIds = new List<string>();
|
||||
foreach (string str in org.Pids.Split("],",StringSplitOptions.RemoveEmptyEntries))
|
||||
{
|
||||
orgIds.Add(str.TrimStart('['));
|
||||
}
|
||||
List<SysEmp> emps =_sysEmpRep.DetachedEntities.Where(x => orgIds.Contains(x.OrgId)).ToList();
|
||||
HashSet<string> uids = new HashSet<string>();
|
||||
foreach (SysEmp em in emps)
|
||||
uids.Add(em.Id);
|
||||
|
||||
var leaders = _sysRoleRep.DetachedEntities.Where(x => x.Code == LEADER_CODE).ToList();
|
||||
|
||||
StringBuilder leader = new StringBuilder();
|
||||
foreach (var l in leaders)
|
||||
{
|
||||
foreach (var u in l.SysUsers)
|
||||
{
|
||||
if (uids.Contains(u.Id))
|
||||
leader.Append(u.Id).Append(",");
|
||||
}
|
||||
}
|
||||
string rtn = leader.ToString().TrimEnd(',');
|
||||
return (rtn,rtn);
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
/// 得到一批人员的所有上级部门领导
|
||||
/// </summary>
|
||||
/// <param name="userId"></param>
|
||||
/// <returns></returns>
|
||||
public (string leader, string chargeLeader) GetAllParentLeader(List<string> userIds)
|
||||
{
|
||||
var empss = _sysEmpRep.DetachedEntities.Where(x => userIds.Contains(x.Id) ).ToList();
|
||||
HashSet<string> orgset = new HashSet<string>();
|
||||
foreach (var em in empss)
|
||||
{
|
||||
orgset.Add(em.OrgId);
|
||||
}
|
||||
var orgs =_sysOrgRep.DetachedEntities.Where(x => orgset.Contains(x.Id));
|
||||
HashSet<string> orgIds = new HashSet<string>();
|
||||
foreach (var org in orgs)
|
||||
{
|
||||
foreach (string str in org.Pids.Split("],", StringSplitOptions.RemoveEmptyEntries))
|
||||
{
|
||||
orgIds.Add(str.TrimStart('['));
|
||||
}
|
||||
}
|
||||
List<SysEmp> emps = _sysEmpRep.DetachedEntities.Where(x => orgIds.Contains(x.OrgId)).ToList();
|
||||
HashSet<string> uids = new HashSet<string>();
|
||||
foreach (SysEmp em in emps)
|
||||
uids.Add(em.Id);
|
||||
|
||||
var leaders = _sysRoleRep.DetachedEntities.Where(x => x.Code == LEADER_CODE).ToList();
|
||||
|
||||
StringBuilder leader = new StringBuilder();
|
||||
foreach (var l in leaders)
|
||||
{
|
||||
foreach (var u in l.SysUsers)
|
||||
{
|
||||
if (uids.Contains(u.Id))
|
||||
leader.Append(u.Id).Append(",");
|
||||
}
|
||||
}
|
||||
string rtn = leader.ToString().TrimEnd(',');
|
||||
return (rtn, rtn);
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 得到人员ID字符串
|
||||
/// </summary>
|
||||
/// <param name="users"></param>
|
||||
/// <returns>u_人员ID1,u_人员ID2</returns>
|
||||
public string GetUserIds(List<User> users)
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
foreach (var user in users)
|
||||
{
|
||||
stringBuilder.Append(IOrganize.PREFIX_USER);
|
||||
stringBuilder.Append(user.Id);
|
||||
stringBuilder.Append(",");
|
||||
}
|
||||
return stringBuilder.ToString().TrimEnd(',');
|
||||
}
|
||||
public string GetUserIds(List<SysUser> users)
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
foreach (var user in users)
|
||||
{
|
||||
stringBuilder.Append(IOrganize.PREFIX_USER);
|
||||
stringBuilder.Append(user.Id);
|
||||
stringBuilder.Append(",");
|
||||
}
|
||||
return stringBuilder.ToString().TrimEnd(',');
|
||||
}
|
||||
|
||||
public string GetUserIds(List<SysEmp> users)
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
foreach (var user in users)
|
||||
{
|
||||
stringBuilder.Append(IOrganize.PREFIX_USER);
|
||||
stringBuilder.Append(user.Id);
|
||||
stringBuilder.Append(",");
|
||||
}
|
||||
return stringBuilder.ToString().TrimEnd(',');
|
||||
}
|
||||
/// <summary>
|
||||
/// 得到一个人员所在部门所有人员
|
||||
/// </summary>
|
||||
/// <param name="userId">guid(人ID),u_guid(人ID),r_guid(关系表ID)</param>
|
||||
/// <returns></returns>
|
||||
public List<SysEmp> GetOrganizeUsers(string userId)
|
||||
{
|
||||
string id = userId.StartsWith(IOrganize.PREFIX_RELATION) ? userId.RemoveUserRelationPrefix() : userId.StartsWith(IOrganize.PREFIX_USER) ? userId.RemoveUserPrefix() : userId;
|
||||
string oid =_sysEmpRep.DetachedEntities.FirstOrDefault(x => x.Id == id).OrgId;
|
||||
return _sysEmpRep.DetachedEntities.Where(x => x.OrgId == oid).ToList();
|
||||
/*Guid organzieId = GetOrganizeId(userId);
|
||||
return new Organize(systemCode).GetAllUsers(organzieId);*/
|
||||
}
|
||||
private HashSet<SysUser> tmpUserCache;
|
||||
public SysUser GetFromTempCache(string userId)
|
||||
{
|
||||
if (tmpUserCache == null)
|
||||
tmpUserCache = _sysUserRep.DetachedEntities.ToHashSet();
|
||||
return tmpUserCache.FirstOrDefault(x => x.Id == userId);
|
||||
}
|
||||
|
||||
public SysUser Get(string id)
|
||||
{
|
||||
return _sysUserRep.DetachedEntities.FirstOrDefault(x=>x.Id ==id);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 得到用户加密后的密码
|
||||
/// </summary>
|
||||
/// <param name="userId">用户ID</param>
|
||||
/// <param name="password">密码</param>
|
||||
/// <returns></returns>
|
||||
public string GetMD5Password(string userId, string password)
|
||||
{
|
||||
return (userId.ToString().ToUpper() + password).MD5();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user