SGGL_JT/SUBQHSE/BLL/API/APIUserService.cs

516 lines
24 KiB
C#

using EmitMapper;
using Model;
using System;
using System.Collections.Generic;
using System.Linq;
namespace BLL
{
public static class APIUserService
{
/// <summary>
/// 获取用户登录信息
/// </summary>
/// <param name="userInfo"></param>
/// <returns></returns>
public static Model.UserItem UserLogOn(Model.UserItem userInfo)
{
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
{
var getUser = db.View_Sys_User.FirstOrDefault(x => (x.Account == userInfo.Account || x.Telephone == userInfo.Telephone) && x.IsPost == true && x.Password == Funs.EncryptionPassword(userInfo.Password));
if (getUser != null)
{
return ObjectMapperManager.DefaultInstance.GetMapper<Model.View_Sys_User, Model.UserItem>().Map(getUser);
}
else
{
var getPerson = from x in db.SitePerson_Person
where (x.Telephone == userInfo.Account || x.PersonName == userInfo.Account)
&& (x.Password == Funs.EncryptionPassword(userInfo.Password)
|| (x.IdentityCard != null && x.IdentityCard.Substring(x.IdentityCard.Length - 4) == userInfo.Password))
&& x.IsUsed == true
orderby x.InTime descending
select new Model.UserItem
{
UserId = x.PersonId,
UserCode = x.CardNo,
Password = x.Password,
UserName = x.PersonName,
UnitId = x.UnitId,
LoginProjectId = x.ProjectId,
IdentityCard = x.IdentityCard,
Account = x.PersonName,
UnitName = db.Base_Unit.First(u => u.UnitId == x.UnitId).UnitName,
LoginProjectName = db.Base_Project.First(u => u.ProjectId == x.ProjectId).ProjectName,
Telephone = x.Telephone,
WorkPostId = x.WorkPostId,
WorkPostName = db.Base_WorkPost.First(w => w.WorkPostId == x.WorkPostId).WorkPostName,
};
return getPerson.FirstOrDefault();
}
}
}
/// <summary>
/// 根据userId获取用户信息
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public static Model.UserItem getUserByUserId(string userId)
{
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
{
var getUser = db.View_Sys_User.FirstOrDefault(x => x.UserId == userId);
getUser.Password = null;
return ObjectMapperManager.DefaultInstance.GetMapper<Model.View_Sys_User, Model.UserItem>().Map(getUser);
}
}
/// <summary>
/// 根据unitid获取用户信息
/// </summary>
/// <param name="unitid"></param>
/// <returns></returns>
public static List<Model.BaseInfoItem> getUserByUnitId(string unitId, string strParam)
{
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
{
var getUser = (from x in db.Sys_User
join y in db.Sys_Role on x.RoleId equals y.RoleId
where x.UnitId == unitId && x.IsPost == true && (strParam == null || x.UserName.Contains(strParam))
orderby x.UserName
select new Model.BaseInfoItem { BaseInfoId = x.UserId, BaseInfoName = x.UserName, BaseInfoCode = x.Telephone }).ToList();
return getUser;
}
}
/// <summary>
/// 根据projectId、unitid获取用户信息
/// </summary>
/// <param name="projectId"></param>
/// <param name="unitId"></param>
/// <param name="strParam"></param>
/// <returns></returns>
public static List<Model.UserItem> getUserByProjectIdUnitIdQuery(string projectId, string unitId, string roleIds, string strParam)
{
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
{
List<Model.UserItem> getDataList = new List<Model.UserItem>();
HashSet<string> userid = new HashSet<string>();
List<string> roleList = Funs.GetStrListByStr(roleIds, ',');
if (!string.IsNullOrEmpty(projectId))
{
var templist = (from x in db.Sys_User
join y in db.Project_ProjectUser on x.UserId equals y.UserId
where y.ProjectId == projectId && (x.UnitId == unitId || unitId == null)
&& (strParam == null || x.UserName.Contains(strParam))
select new Model.UserItem
{
UserId = x.UserId,
Account = x.Account,
UserCode = x.UserCode,
Password = x.Password,
UserName = x.UserName,
RoleId = y.RoleId,
RoleName = RoleService.getRoleNamesRoleIds(y.RoleId),
UnitId = y.UnitId,
UnitName = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName,
LoginProjectId = y.ProjectId,
LoginProjectName = db.Base_Project.First(z => z.ProjectId == y.ProjectId).ProjectName,
IdentityCard = x.IdentityCard,
Email = x.Email,
Telephone = x.Telephone,
IsOffice = x.IsOffice,
SignatureUrl = x.SignatureUrl,
}).ToList();
foreach (var item in templist)
{
if (!string.IsNullOrEmpty(item.SignatureUrl))
{
item.SignatureUrl = item.SignatureUrl.Replace('\\', '/');
}
if (roleList.Count > 0)
{
foreach (var role in roleList)
{
if (item.RoleId != null && item.RoleId.IndexOf(role) >= 0)
{
if (!userid.Contains(item.UserId))
{
getDataList.Add(item);
userid.Add(item.UserId);
}
}
}
}
else
{
if (!userid.Contains(item.UserId))
{
getDataList.Add(item);
userid.Add(item.UserId);
}
}
}
}
else
{
var templist = (from x in db.Sys_User
where x.IsPost == true && (x.UnitId == unitId || unitId == null)
&& (strParam == null || x.UserName.Contains(strParam))
select new Model.UserItem
{
UserId = x.UserId,
Account = x.Account,
UserCode = x.UserCode,
Password = x.Password,
UserName = x.UserName,
RoleId = x.RoleId,
RoleName = db.Sys_Role.First(z => z.RoleId == x.RoleId).RoleName,
UnitId = x.UnitId,
UnitName = db.Base_Unit.First(z => z.UnitId == x.UnitId).UnitName,
//LoginProjectId = y.ProjectId,
//LoginProjectName = db.Base_Project.First(z => z.ProjectId == y.ProjectId).ProjectName,
IdentityCard = x.IdentityCard,
Email = x.Email,
Telephone = x.Telephone,
IsOffice = x.IsOffice,
SignatureUrl = x.SignatureUrl.Replace('\\', '/'),
}).ToList();
foreach (var item in templist)
{
if (roleList.Count > 0)
{
foreach (var role in roleList)
{
if (item.RoleId.IndexOf(role) >= 0)
{
if (!userid.Contains(item.UserId))
{
getDataList.Add(item);
userid.Add(item.UserId);
}
}
}
}
else
{
if (!userid.Contains(item.UserId))
{
getDataList.Add(item);
userid.Add(item.UserId);
}
}
}
}
return getDataList.OrderBy(x => x.UnitName).ThenBy(x => x.UserName).ToList();
}
}
/// <summary>
/// 根据单位类型获取用户信息
/// </summary>
/// <param name="projectId"></param>
/// <param name="unitType"></param>
/// <param name="strParam"></param>
/// <returns></returns>
public static List<Model.UserItem> getUserByProjectIdUnitTypeQuery(string projectId, string unitType, string roleIds, string strParam)
{
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
{
List<Model.UserItem> getDataList = new List<Model.UserItem>();
List<string> roleList = Funs.GetStrListByStr(roleIds, ',');
getDataList = (from x in db.Sys_User
join y in db.Project_ProjectUser on x.UserId equals y.UserId
join z in db.Project_ProjectUnit on x.UnitId equals z.UnitId
where y.ProjectId == projectId && z.ProjectId == projectId && z.UnitType == unitType
&& (roleIds == null || roleList.Contains(y.RoleId)) && (strParam == null || x.UserName.Contains(strParam))
select new Model.UserItem
{
UserId = x.UserId,
Account = x.Account,
UserCode = x.UserCode,
Password = x.Password,
UserName = x.UserName,
RoleId = y.RoleId,
RoleName = RoleService.getRoleNamesRoleIds(y.RoleId),
UnitId = y.UnitId,
UnitName = db.Base_Unit.First(z => z.UnitId == y.UnitId).UnitName,
LoginProjectId = y.ProjectId,
LoginProjectName = db.Base_Project.First(z => z.ProjectId == y.ProjectId).ProjectName,
IdentityCard = x.IdentityCard,
Email = x.Email,
Telephone = x.Telephone,
IsOffice = x.IsOffice,
SignatureUrl = x.SignatureUrl.Replace('\\', '/'),
}).ToList();
return getDataList.OrderBy(x => x.UnitName).ThenBy(x => x.UserName).ToList();
}
}
/// <summary>
/// 获取所有在岗用户
/// </summary>
/// <returns></returns>
public static List<Model.UserItem> UserLogOn2()
{
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
{
var user = from x in db.Sys_User
where x.IsPost == true
select x;
return ObjectMapperManager.DefaultInstance.GetMapper<List<Model.Sys_User>, List<Model.UserItem>>().Map(user.ToList());
}
}
/// <summary>
/// 根据userId获取用户信息
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public static void getSaveUserTel(string userId, string tel)
{
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
{
var getUser = db.Sys_User.FirstOrDefault(x => x.UserId == userId);
if (getUser != null)
{
getUser.Telephone = tel;
db.SubmitChanges();
}
}
}
/// <summary>
/// 根据userId获取用户信息
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
public static void getSaveUserSignatureUrl(string userId, string SignatureUrl)
{
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
{
var getUser = db.Sys_User.FirstOrDefault(x => x.UserId == userId);
if (getUser != null)
{
getUser.SignatureUrl = SignatureUrl;
db.SubmitChanges();
}
}
}
/// <summary>
/// 获取人员未浏览记录数
/// </summary>
/// <param name="unitid"></param>
/// <returns></returns>
public static int getMenuUnreadCount(string menuId, string projectId, string userId)
{
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
{
int count = 0;
var readCount = db.Sys_UserRead.Where(x => x.MenuId == menuId && x.ProjectId == projectId && x.UserId == userId).Select(x => x.DataId).Distinct().Count();
if (menuId == Const.ProjectNoticeMenuId)
{
var noticeCount = db.InformationProject_Notice.Where(x => x.AccessProjectId.Contains(projectId) && x.IsRelease == true).Count();
count = noticeCount - readCount;
}
count = count < 0 ? 0 : count;
return count;
}
}
/// <summary>
/// 保存浏览记录
/// </summary>
/// <param name="unitid"></param>
/// <returns></returns>
public static void getSaveUserRead(string menuId, string projectId, string userId, string dataId)
{
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
{
var userRead = db.Sys_UserRead.FirstOrDefault(x => x.ProjectId == projectId && x.UserId == userId && x.DataId == dataId);
if (userRead == null)
{
Model.Sys_UserRead newRead = new Model.Sys_UserRead
{
UserReadId = SQLHelper.GetNewID(),
UserId = userId,
MenuId = menuId,
ProjectId = projectId,
DataId = dataId,
ReadTime = DateTime.Now,
};
db.Sys_UserRead.InsertOnSubmit(newRead);
db.SubmitChanges();
}
}
}
#region
/// <summary>
/// 保存用户
/// </summary>
/// <param name="meeting">保存用户</param>
/// <returns></returns>
public static string SaveCNCCGUserInfo(Model.UserListItem listItem)
{
using (Model.SUBQHSEDB db = new Model.SUBQHSEDB(Funs.ConnString))
{
string returnInfos = string.Empty;
int i = 0;
int rowNum = 0;
foreach (var item in listItem.list)
{
Model.Sys_User newUser = new Model.Sys_User
{
UserId = item.UserId,
UserCode = item.UserCode,
UserName = item.UserName,
Account = item.Account,
Sex = item.Sex=="男"?"1":"0",
// Password = item.Password,
IdentityCard = item.IdentityCard,
Telephone = item.Telephone,
IsPost = item.IsPost,
Remark = item.Remark,
};
#region
if (!string.IsNullOrEmpty(item.UnitName) || !string.IsNullOrEmpty(item.UnitCode))
{
var getUnit = db.Base_Unit.FirstOrDefault(x => x.UnitName == item.UnitName);
if (getUnit != null)
{
newUser.UnitId = getUnit.UnitId;
}
else
{
Model.Base_Unit newUnit = new Model.Base_Unit
{
UnitId = SQLHelper.GetNewID(),
UnitName = item.UnitName,
UnitCode = item.UnitCode,
};
db.Base_Unit.InsertOnSubmit(newUnit);
db.SubmitChanges();
newUser.UnitId = newUnit.UnitId;
}
if (item.UnitName == "中化学交通建设集团有限公司")
{
newUser.IsOffice = true;
}
}
#endregion
/* #region 用户部门
if (!string.IsNullOrEmpty(item.DepartName))
{
var getDepart = db.Base_Depart.FirstOrDefault(x => x.DepartName == item.DepartName);
if (getDepart != null)
{
newUser.DepartId = getDepart.DepartId;
}
else
{
Model.Base_Depart newDepart = new Model.Base_Depart
{
DepartId = SQLHelper.GetNewID(),
DepartName = item.DepartName,
};
db.Base_Depart.InsertOnSubmit(newDepart);
db.SubmitChanges();
newUser.DepartId = newDepart.DepartId;
}
}
#endregion
#region 用户角色
if (!string.IsNullOrEmpty(item.RoleName))
{
var getRole = db.Sys_Role.FirstOrDefault(x => x.RoleName == item.RoleName);
if (getRole != null)
{
newUser.RoleId = getRole.RoleId;
}
else
{
Model.Sys_Role newRole = new Model.Sys_Role
{
RoleId = SQLHelper.GetNewID(),
RoleName = item.RoleName,
};
db.Sys_Role.InsertOnSubmit(newRole);
db.SubmitChanges();
newUser.RoleId = newRole.RoleId;
}
}
#endregion*/
/* if (!string.IsNullOrEmpty(item.Password))
{
newUser.Password = item.Password;
}
else
{
newUser.RawPassword = UserService.getInitialPassword(newUser.UnitId, newUser.IdentityCard);
newUser.Password = Funs.EncryptionPassword(newUser.RawPassword);
}*/
var geUser = db.Sys_User.FirstOrDefault(x => (x.Account == item.Account && item.Account != null) || (x.IdentityCard == item.IdentityCard && item.IdentityCard != null));
if (geUser != null)
{
geUser.UserCode = newUser.UserCode;
geUser.UserName = newUser.UserName;
geUser.Sex= newUser.Sex;
// geUser.Account = newUser.Account;
// geUser.Password = newUser.Password;
geUser.IdentityCard = newUser.IdentityCard;
geUser.Telephone = newUser.Telephone;
// geUser.UnitId = newUser.UnitId;
// geUser.DepartId = newUser.DepartId;
// geUser.RoleId = newUser.RoleId;
geUser.IsPost = newUser.IsPost;
geUser.Remark = newUser.Remark;
db.SubmitChanges();
rowNum++;
}
else
{
newUser.UserId = SQLHelper.GetNewID();
newUser.RawPassword = UserService.getInitialPassword(newUser.UnitId, newUser.IdentityCard);
newUser.Password = Funs.EncryptionPassword(newUser.RawPassword);
db.Sys_User.InsertOnSubmit(newUser);
db.SubmitChanges();
rowNum++;
}
}
if (!string.IsNullOrEmpty(returnInfos))
{
returnInfos = "同步成功" + rowNum.ToString() + "条记录。" + returnInfos;
}
else
{
returnInfos = "同步成功" + rowNum.ToString() + "条记录。";
}
return returnInfos;
}
}
#endregion
}
}