用户管理
This commit is contained in:
parent
cdca84e42a
commit
e6f9e36568
134
langguanApi.xml
134
langguanApi.xml
|
|
@ -61,6 +61,18 @@
|
||||||
<param name="node"></param>
|
<param name="node"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</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)">
|
<member name="M:langguanApi.Controllers.DeviceController.#ctor(langguanApi.Service.DeviceService)">
|
||||||
<summary>
|
<summary>
|
||||||
|
|
||||||
|
|
@ -126,6 +138,35 @@
|
||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</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">
|
<member name="T:langguanApi.Extensions.AutoDI.InjectionType">
|
||||||
<summary>
|
<summary>
|
||||||
注入生命周期
|
注入生命周期
|
||||||
|
|
@ -473,6 +514,61 @@
|
||||||
<param name="Text">原始数据</param>
|
<param name="Text">原始数据</param>
|
||||||
<returns>是否通过</returns>
|
<returns>是否通过</returns>
|
||||||
</member>
|
</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">
|
<member name="T:langguanApi.Model.FactorCode">
|
||||||
<summary>
|
<summary>
|
||||||
污染物因子编码
|
污染物因子编码
|
||||||
|
|
@ -1256,6 +1352,44 @@
|
||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</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">
|
<member name="M:langguanApi.Service.WeatherService.GetWeather">
|
||||||
<summary>
|
<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 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