You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ProductionSystem/ProductionSystem_Service/UserService.cs

304 lines
11 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using Custom.Utils.Framework;
using ProductionSystem_Log;
using ProductionSystem_Model.DbModel.System;
using ProductionSystem_Model.ViewModel;
using ProductionSystem_Model.ViewModel.Request.System;
using ProductionSystem_Model.ViewModel.Response.System;
using SqlSugar;
using System;
using System.Collections.Generic;
namespace ProductionSystem_Service
{
public class UserService : DbContext
{
/// <summary>
/// 分页查询用户
/// </summary>
/// <param name="queryUserVM"></param>
/// <param name="totalCount"></param>
/// <returns></returns>
public List<UserVM> GetUserPageList(QueryUserVM queryUserVM, out int totalCount)
{
totalCount = 0;
try
{
return db.Queryable<Sys_User>()
.WhereIF(queryUserVM != null && !string.IsNullOrWhiteSpace(queryUserVM.UserName), a => a.UserName.Contains(queryUserVM.UserName))
.WhereIF(queryUserVM != null && !string.IsNullOrWhiteSpace(queryUserVM.RealName), a => a.RealName.Contains(queryUserVM.RealName))
.Select((a) => new UserVM
{
Id = a.Id,
SerialNumber = SqlFunc.RowNumber(SqlFunc.Desc(a.CreatedTime)),
UserName = a.UserName,
RealName = a.RealName,
IsActive = a.IsActive,
StrIsActive = a.IsActive ? "是" : "否",
Remark = a.Remark
}).ToPageList(queryUserVM.PageIndex, queryUserVM.PageSize, ref totalCount);
}
catch (Exception ex)
{
LogHelper.Error(ex, "执行UserService下GetUserPageList时异常");
return null;
}
}
/// <summary>
/// 查询所有用户
/// </summary>
/// <returns></returns>
public ISugarQueryable<Sys_User> QueryUsers()
{
try
{
return db.Queryable<Sys_User>();
}
catch (Exception ex)
{
LogHelper.Error(ex, "执行UserService下GQueryUsers时异常");
return null;
}
}
/// <summary>
/// 根据用户名和密码查询用户
/// </summary>
/// <param name="userName"></param>
/// <param name="pwd"></param>
/// <returns></returns>
public UserVM QueryUserByUserNameAndPwd(string userName, string pwd)
{
try
{
return db.Queryable<Sys_User>()
.Where((a) => a.UserName == userName && a.UserPwd == pwd)
.Select((a) => new UserVM
{
Id = a.Id,
UserName = a.UserName,
RealName = a.RealName,
RoleCode = a.RoleCode,
IsActive = a.IsActive,
StrIsActive = a.IsActive ? "是" : "否",
Remark = a.Remark
}).First();
}
catch (Exception ex)
{
LogHelper.Error(ex, "执行UserService下QueryUserByUserNameAndPwd时异常");
return null;
}
}
/// <summary>
/// 查询有效用户
/// </summary>
/// <returns></returns>
public ISugarQueryable<Sys_User> QueryActiveUsers()
{
try
{
return db.Queryable<Sys_User>().Where(m => m.IsActive);
}
catch (Exception ex)
{
LogHelper.Error(ex, "执行UserService下QueryActiveUsers时异常");
return null;
}
}
/// <summary>
/// 根据Id查询用户
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public Sys_User QueryUserById(string id)
{
try
{
return db.Queryable<Sys_User>().First(m => m.Id == id);
}
catch (Exception ex)
{
LogHelper.Error(ex, "执行UserService下QueryUserById时异常");
return null;
}
}
/// <summary>
/// 新增用户
/// </summary>
/// <param name="t_User"></param>
/// <returns></returns>
public (bool isOk, string msg) AddUser(Sys_User t_User)
{
try
{
var row = db.Insertable(t_User).ExecuteCommand();
return (row > 0, row > 0 ? "操作成功!" : "操作失败!");
}
catch (Exception ex)
{
var errorMsg = $"执行UserService下AddUser时异常{ex.Message}";
LogHelper.Error(ex, errorMsg);
return (false, errorMsg);
}
}
/// <summary>
/// 更新用户
/// </summary>
/// <param name="t_User"></param>
/// <returns></returns>
public (bool isOk, string msg) UpdateUser(Sys_User t_User)
{
try
{
var row = db.Updateable<Sys_User>()
.SetColumns(c => c.UserName == t_User.UserName)
.SetColumns(c => c.RealName == t_User.RealName)
.SetColumns(c => c.RoleCode == t_User.RoleCode)
.SetColumns(c => c.Remark == t_User.Remark)
.SetColumns(c => c.IsActive == t_User.IsActive)
.SetColumns(c => c.UpdatedTime == DateTime.Now)
.SetColumns(c => c.UpdatedBy == CurrentUser.UserName)
.Where(m => m.Id == t_User.Id)
.ExecuteCommand();
return (row > 0, row > 0 ? "操作成功!" : "操作失败!");
}
catch (Exception ex)
{
var errorMsg = $"执行UserService下UpdateUser时异常{ex.Message}";
LogHelper.Error(ex, errorMsg);
return (false, errorMsg);
}
}
/// <summary>
/// 根据用户Id集合批量更新用户状态
/// </summary>
/// <param name="ids"></param>
/// <param name="isActive"></param>
/// <returns></returns>
public (bool isOk, string msg) UpdateUserStatus(List<string> ids, bool? isActive = true)
{
try
{
var row = db.Updateable<Sys_User>()
.SetColumns(c => c.IsActive == isActive)
.SetColumns(c => c.UpdatedTime == DateTime.Now)
.SetColumns(c => c.UpdatedBy == CurrentUser.UserName)
.Where(m => ids.Contains(m.Id))
.ExecuteCommand();
return (row > 0, row > 0 ? "操作成功!" : "操作失败!");
}
catch (Exception ex)
{
var errorMsg = $"执行UserService下UpdateUserStatus时异常{ex.Message}";
LogHelper.Error(ex, errorMsg);
return (false, errorMsg);
}
}
/// <summary>
/// 根据用户Id更新用户密码
/// </summary>
/// <param name="id"></param>
/// <param name="pwd"></param>
/// <returns></returns>
public (bool isOk, string msg) UpdateUserPwdById(string id, string pwd)
{
try
{
var row = db.Updateable<Sys_User>()
.SetColumns(c => c.UserPwd == pwd)
.SetColumns(c => c.UpdatedTime == DateTime.Now)
.SetColumns(c => c.UpdatedBy == CurrentUser.UserName)
.Where(m => m.Id == id)
.ExecuteCommand();
return (row > 0, row > 0 ? "操作成功!" : "操作失败!");
}
catch (Exception ex)
{
var errorMsg = $"执行UserService下UpdateUserPwd时异常{ex.Message}";
LogHelper.Error(ex, errorMsg);
return (false, errorMsg);
}
}
/// <summary>
/// 根据用户名更新用户密码
/// </summary>
/// <param name="userName"></param>
/// <param name="pwd"></param>
/// <returns></returns>
public (bool isOk, string msg) UpdateUserPwdByUserName(string userName, string pwd)
{
try
{
var row = db.Updateable<Sys_User>()
.SetColumns(c => c.UserPwd == pwd)
.SetColumns(c => c.UpdatedTime == DateTime.Now)
.SetColumns(c => c.UpdatedBy == CurrentUser.UserName)
.Where(m => m.UserName == userName)
.ExecuteCommand();
return (row > 0, row > 0 ? "操作成功!" : "操作失败!");
}
catch (Exception ex)
{
var errorMsg = $"执行UserService下UpdateUserPwd时异常{ex.Message}";
LogHelper.Error(ex, errorMsg);
return (false, errorMsg);
}
}
/// <summary>
/// 根据用户Id重置密码
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public (bool isOk, string msg) ResetUserPwdById(string id)
{
try
{
var row = db.Updateable<Sys_User>()
.SetColumns(c => c.UserPwd == MD5Helper.MD5Encrypt32("123456"))
.SetColumns(c => c.UpdatedTime == DateTime.Now)
.SetColumns(c => c.UpdatedBy == CurrentUser.UserName)
.Where(m => m.Id == id)
.ExecuteCommand();
return (row > 0, row > 0 ? "操作成功!" : "操作失败!");
}
catch (Exception ex)
{
var errorMsg = $"执行UserService下ResetUserPwd时异常{ex.Message}";
LogHelper.Error(ex, errorMsg);
return (false, errorMsg);
}
}
/// <summary>
/// 根据Id删除用户
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public (bool isOk, string msg) DelUserById(string id)
{
try
{
var row = db.Deleteable<Sys_User>()
.Where(m => m.Id == id)
.ExecuteCommand();
return (row > 0, row > 0 ? "操作成功!" : "操作失败!");
}
catch (Exception ex)
{
var errorMsg = $"执行UserService下DelUserById时异常{ex.Message}";
LogHelper.Error(ex, errorMsg);
return (false, errorMsg);
}
}
}
}