92 lines
3.2 KiB
C#
92 lines
3.2 KiB
C#
using AutoMapper;
|
|
using Microsoft.Extensions.Caching.Memory;
|
|
using SqlSugar;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using UIStandardWebApi.Entity;
|
|
using UIStandardWebApi.EntityDto;
|
|
using UIStandardWebApi.EntityDto.User;
|
|
using UIStandardWebApi.IService;
|
|
|
|
namespace UIStandardWebApi.Service
|
|
{
|
|
/// <summary>
|
|
/// 用户管理服务层
|
|
/// </summary>
|
|
public class UserManagerService : BaseService, IUserManagerService
|
|
{
|
|
private readonly IMapper _IMapper;
|
|
private readonly IMemoryCache _IMemoryCache;
|
|
|
|
public UserManagerService(ISqlSugarClient client, IMapper mapper, IMemoryCache iMemoryCache) : base(client)
|
|
{
|
|
_IMapper = mapper;
|
|
_IMemoryCache = iMemoryCache;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 登录成功查询到的用户信息
|
|
/// </summary>
|
|
/// <param name="userName"></param>
|
|
/// <param name="password"></param>
|
|
/// <returns></returns>
|
|
public SysUserInfo? Login(string userName, string password)
|
|
{
|
|
string pwd = MD5Encrypt.Encrypt(password);
|
|
|
|
List<Sys_User> userList = _Client
|
|
.Queryable<Sys_User>()
|
|
.Where(c => c.Name.Equals(userName) && c.Password.Equals(pwd))
|
|
.ToList();
|
|
if (userList == null || userList.Count <= 0)
|
|
{
|
|
return null;
|
|
}
|
|
Sys_User user = userList.First();
|
|
SysUserInfo userinfo = _IMapper.Map<Sys_User, SysUserInfo>(user);
|
|
|
|
user.LastLoginTime = DateTime.Now;
|
|
_Client.Updateable(user).ExecuteCommand();
|
|
|
|
return userinfo;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 更新密码
|
|
/// </summary>
|
|
/// <param name="userId"></param>
|
|
/// <param name="password"></param>
|
|
/// <returns></returns>
|
|
public async Task EditPassAsync(int userId, string password)
|
|
{
|
|
Sys_User user = base.Find<Sys_User>(userId);
|
|
user.Password = MD5Encrypt.Encrypt(password);
|
|
Update<Sys_User>(new List<Sys_User>() { user });
|
|
await Task.CompletedTask;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取用户的分页列表
|
|
/// </summary>
|
|
/// <param name="pageindex"></param>
|
|
/// <param name="pageSize"></param>
|
|
/// <param name="searchaString"></param>
|
|
/// <returns></returns>
|
|
public async Task<PagingData<SysUserDTO>> GetUserPageAsync(int pageindex, int pageSize, string? searchaString = null)
|
|
{
|
|
int? status = 1;
|
|
Expressionable<Sys_User> expressionable = new Expressionable<Sys_User>();
|
|
expressionable.AndIF(!string.IsNullOrWhiteSpace(searchaString), u => u.Name.Contains(searchaString)).AndIF(status != null, it => it.Status == status);
|
|
PagingData<Sys_User> paging = base.QueryPage<Sys_User>(expressionable.ToExpression(), pageSize, pageindex, c => c.CreateTime, false);
|
|
PagingData<SysUserDTO> pagingData = _IMapper.Map<PagingData<Sys_User>, PagingData<SysUserDTO>>(paging);
|
|
return await Task.FromResult(pagingData);
|
|
}
|
|
|
|
}
|
|
}
|