用户管理
This commit is contained in:
parent
cdca84e42a
commit
e6f9e36568
134
langguanApi.xml
134
langguanApi.xml
|
|
@ -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>
|
||||
爬气象局的天气数据%
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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 });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -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; }
|
||||
}
|
||||
}
|
||||
|
|
@ -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; }
|
||||
}
|
||||
}
|
||||
|
|
@ -7,7 +7,6 @@
|
|||
}
|
||||
public class reqpage : ReqPaing
|
||||
{
|
||||
public string key { get; set;
|
||||
}
|
||||
public string key { get; set; } = "";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue