用户管理

This commit is contained in:
yanghongwei 2024-05-22 23:01:28 +08:00
parent cdca84e42a
commit e6f9e36568
7 changed files with 399 additions and 2 deletions

View File

@ -61,6 +61,18 @@
<param name="node"></param>
<returns></returns>
</member>
<member name="T:langguanApi.Common.StringHelper">
<summary>
字符串处理类
</summary>
</member>
<member name="M:langguanApi.Common.StringHelper.MD5Encrypt32(System.String)">
<summary>
MD5加密算法
</summary>
<param name="password"></param>
<returns></returns>
</member>
<member name="M:langguanApi.Controllers.DeviceController.#ctor(langguanApi.Service.DeviceService)">
<summary>
@ -126,6 +138,35 @@
</summary>
<returns></returns>
</member>
<member name="M:langguanApi.Controllers.UserController.Login(langguanApi.Model.Dto.UserLogin)">
<summary>
登陆
</summary>
<param name="user"></param>
<returns></returns>
</member>
<member name="M:langguanApi.Controllers.UserController.Register(langguanApi.Model.Dto.UserAdd)">
<summary>
注册
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:langguanApi.Controllers.UserController.List(langguanApi.Model.reqpage)">
<summary>
get user list
</summary>
<param name="input"></param>
<returns></returns>
</member>
<!-- Badly formed XML comment ignored for member "M:langguanApi.Controllers.UserController.Delete(System.String)" -->
<member name="M:langguanApi.Controllers.UserController.Update(langguanApi.Model.Dto.UserUpdate)">
<summary>
修改用户信息
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="T:langguanApi.Extensions.AutoDI.InjectionType">
<summary>
注入生命周期
@ -473,6 +514,61 @@
<param name="Text">原始数据</param>
<returns>是否通过</returns>
</member>
<member name="P:langguanApi.Model.Dto.UserAdd.Username">
<summary>
用户名
</summary>
</member>
<member name="P:langguanApi.Model.Dto.UserAdd.Password">
<summary>
密码 md5加密
</summary>
</member>
<member name="P:langguanApi.Model.Dto.UserAdd.roleId">
<summary>
角色id
</summary>
</member>
<member name="P:langguanApi.Model.Dto.UserAdd.Email">
<summary>
邮箱
</summary>
</member>
<member name="T:langguanApi.Model.Dto.UserUpdate">
<summary>
用户更新
</summary>
</member>
<member name="P:langguanApi.Model.Dto.UserUpdate.Id">
<summary>
id
</summary>
</member>
<member name="T:langguanApi.Model.Entity.UserEntity">
<summary>
用户实体
</summary>
</member>
<member name="P:langguanApi.Model.Entity.UserEntity.Username">
<summary>
用户名
</summary>
</member>
<member name="P:langguanApi.Model.Entity.UserEntity.Password">
<summary>
密码 md5加密
</summary>
</member>
<member name="P:langguanApi.Model.Entity.UserEntity.roleId">
<summary>
角色id
</summary>
</member>
<member name="P:langguanApi.Model.Entity.UserEntity.Email">
<summary>
邮箱
</summary>
</member>
<member name="T:langguanApi.Model.FactorCode">
<summary>
污染物因子编码
@ -1256,6 +1352,44 @@
</summary>
<returns></returns>
</member>
<member name="M:langguanApi.Service.UserService.login(System.String,System.String)">
<summary>
登录
</summary>
<param name="username"></param>
<param name="password"></param>
<returns></returns>
</member>
<member name="M:langguanApi.Service.UserService.GetByUsername(System.String)">
<summary>
根据用户名获取用户信息
</summary>
<param name="username"></param>
<returns></returns>
</member>
<member name="M:langguanApi.Service.UserService.GetById(System.String)">
<summary>
根据用户ID获取用户信息
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="M:langguanApi.Service.UserService.AddUser(langguanApi.Model.Dto.UserAdd)">
新加用户
</member>
<member name="M:langguanApi.Service.UserService.GetPage(langguanApi.Model.reqpage)">
<summary>
分页取数据
</summary>
<param name="input"></param>
<returns></returns>
</member>
<member name="M:langguanApi.Service.UserService.UpdateUser(langguanApi.Model.Dto.UserUpdate)">
更新用户信息
</member>
<member name="M:langguanApi.Service.UserService.DeleteUser(System.String)">
删除用户
</member>
<member name="M:langguanApi.Service.WeatherService.GetWeather">
<summary>
爬气象局的天气数据%

View File

@ -0,0 +1,32 @@
using System.Security.Cryptography;
using System.Text;
namespace langguanApi.Common
{
/// <summary>
/// 字符串处理类
/// </summary>
public static class StringHelper
{
/// <summary>
/// MD5加密算法
/// </summary>
/// <param name="password"></param>
/// <returns></returns>
public static string MD5Encrypt32(string password)
{
string cl = password;
string pwd = "";
MD5 md5 = MD5.Create(); //实例化一个md5对像
// 加密后是一个字节类型的数组这里要注意编码UTF8/Unicode等的选择 
byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl));
// 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
for (int i = 0; i < s.Length; i++)
{
// 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母如果使用大写X则格式后的字符是大写字符
pwd = pwd + s[i].ToString("X");
}
return pwd;
}
}
}

View File

@ -0,0 +1,80 @@
using langguanApi.Model;
using langguanApi.Model.Dto;
using langguanApi.Service;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace langguanApi.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class UserController : ControllerBase
{
private UserService _userService;
public UserController(UserService userService)
{
_userService = userService;
}
/// <summary>
/// 登陆
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
[HttpPost("login")]
public async Task<IActionResult> Login([FromBody] UserLogin user)
{
var result = _userService.login(user.Username, user.Password);
if (result != null)
{
return Ok(result);
}
else
{
return BadRequest(result);
}
}
/// <summary>
/// 注册
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("Add")]
public async Task<IActionResult> Register([FromBody] UserAdd input)
{
var result = await _userService.AddUser(input);
return Ok(result);
}
/// <summary>
/// get user list
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpGet("List")]
public async Task<IActionResult> List([FromQuery] reqpage input)
{
var result = await _userService.GetPage(input);
return Ok(result);
}
///删除用户
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpDelete("Delete")]
public async Task<IActionResult> Delete(string id)
{
await _userService.DeleteUser(id);
return Ok(new ApiResult() { code = 0 });
}
/// <summary>
/// 修改用户信息
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPut("Update")]
public async Task<IActionResult> Update([FromBody] UserUpdate input)
{
await _userService.UpdateUser(input);
return Ok(new ApiResult() { code = 0 });
}
}
}

View File

@ -0,0 +1,37 @@
namespace langguanApi.Model.Dto
{
public class UserLogin
{
public string Username { get; set; }
public string Password { get; set; }
}
public class UserAdd
{
/// <summary>
/// 用户名
/// </summary>
public string Username { get; set; }
/// <summary>
/// 密码 md5加密
/// </summary>
public string Password { get; set; }
/// <summary>
/// 角色id
/// </summary>
public int roleId { get; set; }
/// <summary>
/// 邮箱
/// </summary>
public string Email { get; set; }
}
/// <summary>
/// 用户更新
/// </summary>
public class UserUpdate : UserAdd
{
/// <summary>
/// id
/// </summary>
public string Id { get; set; }
}
}

View File

@ -0,0 +1,25 @@
namespace langguanApi.Model.Entity
{
/// <summary>
/// 用户实体
/// </summary>
public class UserEntity : BaseModel
{
/// <summary>
/// 用户名
/// </summary>
public string Username { get; set; }
/// <summary>
/// 密码 md5加密
/// </summary>
public string Password { get; set; }
/// <summary>
/// 角色id
/// </summary>
public int roleId { get; set; }
/// <summary>
/// 邮箱
/// </summary>
public string Email { get; set; }
}
}

View File

@ -7,7 +7,6 @@
}
public class reqpage : ReqPaing
{
public string key { get; set;
}
public string key { get; set; } = "";
}
}

View File

@ -0,0 +1,90 @@
using langguanApi.Common;
using langguanApi.Extensions.AutoDI;
using langguanApi.Model;
using langguanApi.Model.Dto;
using langguanApi.Model.Entity;
using Mapster;
using System.Linq.Expressions;
namespace langguanApi.Service
{
[ServiceInjection(InjectionType.Transient)]
public class UserService : BaseService<UserEntity>
{
public UserService(IConfiguration config) : base(config, nameof(UserEntity).Replace("Entity", ""))
{
}
/// <summary>
/// 登录
/// </summary>
/// <param name="username"></param>
/// <param name="password"></param>
/// <returns></returns>
public async Task<UserEntity> login(string username, string password)
{
Expression<Func<UserEntity, bool>> exp = filter =>
filter.Username == username && filter.Password == StringHelper.MD5Encrypt32(password);
var list = await base.GetListWithExp(exp);
return list.FirstOrDefault();
}
/// <summary>
/// 根据用户名获取用户信息
/// </summary>
/// <param name="username"></param>
/// <returns></returns>
public async Task<UserEntity> GetByUsername(string username)
{
Expression<Func<UserEntity, bool>> exp = filter =>
filter.Username == username;
var list = await base.GetListWithExp(exp);
return list.FirstOrDefault();
}
/// <summary>
/// 根据用户ID获取用户信息
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public async Task<UserEntity> GetById(string id)
{
return await base.GetAsync(id);
}
///新加用户
public async Task<ApiResult> AddUser(UserAdd user)
{
var entity = user.Adapt<UserEntity>();
entity.Password = StringHelper.MD5Encrypt32(user.Password);
var result = await base.CreateAsync(entity);
return new ApiResult()
{
code = 0,
data = result
};
}
/// <summary>
/// 分页取数据
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public async Task<ApiResult> GetPage(reqpage input)
{
Expression<Func<UserEntity, bool>> exp = filter => filter.Username.Contains(input.key) && filter.IsDelete == false;
return await base.GetPager(new ReqPaing()
{
pageSize = input.pageSize,
current = input.current
}, exp);
}
///更新用户信息
public async Task UpdateUser(UserUpdate user)
{
var entity = user.Adapt<UserEntity>();
entity.Password = StringHelper.MD5Encrypt32(user.Password);
await base.UpdateAsync(user.Id, entity);
}
///删除用户
public async Task DeleteUser(string id)
{
await base.RemoveAsync(id);
}
}
}