ComplianceServer/oldcode/Core.BLL/Base/BAS_INNERUSERROLE_BL.cs

163 lines
6.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using CRM.Core.Model.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using WX.CRM.Common;
namespace CRM.Core.BLL.Base
{
public class BAS_INNERUSERROLE_BL
{
#region
public List<BAS_INNERUSERROLE_Extend> GetList(string eId, string uName, string roleId)
{
using (var db = new zxdContext())
{
var queryData = db.BAS_INNERUSER.AsQueryable();//
if (!string.IsNullOrWhiteSpace(eId))
{
decimal ieId = Convert.ToInt32(eId);
queryData = queryData.Where(m => m.EID.Equals(ieId));
}
if (!string.IsNullOrWhiteSpace(uName))
{
queryData = queryData.Where(m => m.UNAME.Contains(uName));
}
if (!string.IsNullOrWhiteSpace(roleId) && roleId != "0")
{
string[] roleIdStr = roleId.Split(',');
decimal[] roleIds = new decimal[roleIdStr.Length];
for (int i = 0; i < roleIdStr.Length; i++)
{
roleIds[i] = Convert.ToDecimal(roleIdStr[i]);
}
queryData = queryData.Where(m => (from a in db.BAS_INNERUSERROLE where roleIds.Contains(a.ROLEID) select a.INNERUSERID).Contains(m.PKID));
}
queryData = queryData.OrderByDescending(m => m.CTIME);
List<BAS_INNERUSERROLE_Extend> list = (from a in queryData
select new BAS_INNERUSERROLE_Extend()
{
EID = a.EID,
PKID = a.PKID,
UNAME = a.UNAME,
ROLEIDS = "",
ROLESNAMES = ""
}).ToList();
var roleList = db.BAS_ROLE.ToList();
foreach (var item in list)
{
decimal pkid = item.PKID;
var roleids = (from a in db.BAS_INNERUSERROLE where a.INNERUSERID.Equals(pkid) select a.ROLEID).ToList();
foreach (var role in roleList.Where(m => roleids.Contains(m.ROLEID)))//赋值
{
item.ROLEIDS += role.ROLEID + ",";
item.ROLESNAMES += "[" + role.RNAME + "] ";
}
if (item.ROLEIDS != null && item.ROLEIDS.Length > 0)
item.ROLEIDS = item.ROLEIDS.Substring(0, item.ROLEIDS.Length - 1);
}
return list;
}
}
#endregion
/// <summary>
/// 保存员工角色
/// </summary>
/// <param name="user">当前操作人员</param>
/// <param name="roleIds">角色的ID集合","隔开)</param>
/// <param name="pkids">员工ID集合","隔开)</param>
/// <returns></returns>
/// <summary>
/// 保存员工角色
/// </summary>
/// <param name="user">当前操作人员</param>
/// <param name="roleIds">角色的ID集合","隔开)</param>
/// <param name="eids">员工eID集合","隔开)</param>
/// <returns></returns>
public bool Save(ref ValidationErrors errors, int user, string roleIds, string eids)
{
try
{
using (var db = new zxdContext())
{
string[] roleIdStr = roleIds.Split(',');
string[] pkIdStr = eids.Split(',');
int[] roleIdArry = new int[roleIdStr.Length];
int[] pkIdArry = new int[pkIdStr.Length];
for (int i = 0; i < pkIdStr.Length; i++)
{
if (pkIdStr[i] == "" || pkIdStr[i] == "0")
continue;
pkIdArry[i] = Convert.ToInt32(pkIdStr[i]);
int pkid = pkIdArry[i];
for (int n = 0; n < roleIdStr.Length; n++)
{
if (roleIdStr[n] == "" || roleIdStr[n] == "0")
continue;
roleIdArry[n] = Convert.ToInt32(roleIdStr[n]);
int roleid = roleIdArry[n];
var entry = db.BAS_INNERUSERROLE.FirstOrDefault(m => m.ROLEID == roleid && m.INNERUSERID.Equals(pkid));
if (entry == null)
{
BAS_INNERUSERROLE model = new BAS_INNERUSERROLE();
model.ROLEID = roleIdArry[n];
model.INNERUSERID = pkIdArry[i];
model.CTIME = DateTime.Now;
model.CREATEUSER = user;
db.BAS_INNERUSERROLE.Add(model);
}
}
}
//删除 取消的数据
foreach (BAS_INNERUSERROLE entry in (from a in db.BAS_INNERUSERROLE
where pkIdArry.Contains(a.INNERUSERID)
where !roleIdArry.Contains(a.ROLEID)
select a
))
{
db.BAS_INNERUSERROLE.Remove(entry);
};
db.SaveChanges();
return true;
}
}
catch (Exception ex) { errors.Add(ex.Message); return false; }
}
public List<BAS_INNERUSERROLE> GetInneruserRoleByUserId(int userId)
{
using (var db = new zxdContext())
{
return db.BAS_INNERUSERROLE.Where(p => p.INNERUSERID.Equals(userId)).ToList();
}
}
}
public class BAS_INNERUSERROLE_Extend
{
/// <summary>
/// 员工ID
/// </summary>
public decimal PKID { get; set; }
/// <summary>
/// 员工工号
/// </summary>
public decimal EID { get; set; }
/// <summary>
/// 员工名称
/// </summary>
public string UNAME { get; set; }
/// <summary>
/// 角色名称
/// </summary>
public string ROLESNAMES { get; set; }
/// <summary>
/// 角色ID
/// </summary>
public string ROLEIDS { get; set; }
}
}