diff --git a/langguanApi.xml b/langguanApi.xml index c3ea93b..263c3e1 100644 --- a/langguanApi.xml +++ b/langguanApi.xml @@ -61,6 +61,18 @@ + + + 字符串处理类 + + + + + MD5加密算法 + + + + @@ -126,6 +138,35 @@ + + + 登陆 + + + + + + + 注册 + + + + + + + get user list + + + + + + + + 修改用户信息 + + + + 注入生命周期 @@ -473,6 +514,61 @@ 原始数据 是否通过 + + + 用户名 + + + + + 密码 md5加密 + + + + + 角色id + + + + + 邮箱 + + + + + 用户更新 + + + + + id + + + + + 用户实体 + + + + + 用户名 + + + + + 密码 md5加密 + + + + + 角色id + + + + + 邮箱 + + 污染物因子编码 @@ -1256,6 +1352,44 @@ + + + 登录 + + + + + + + + 根据用户名获取用户信息 + + + + + + + 根据用户ID获取用户信息 + + + + + + 新加用户 + + + + 分页取数据 + + + + + + 更新用户信息 + + + 删除用户 + 爬气象局的天气数据% diff --git a/langguanApi/Common/StringHelper.cs b/langguanApi/Common/StringHelper.cs new file mode 100644 index 0000000..f3f3e0c --- /dev/null +++ b/langguanApi/Common/StringHelper.cs @@ -0,0 +1,32 @@ +using System.Security.Cryptography; +using System.Text; + +namespace langguanApi.Common +{ + /// + /// 字符串处理类 + /// + public static class StringHelper + { + /// + /// MD5加密算法 + /// + /// + /// + 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; + } + } +} diff --git a/langguanApi/Controllers/UserController.cs b/langguanApi/Controllers/UserController.cs new file mode 100644 index 0000000..7085b2d --- /dev/null +++ b/langguanApi/Controllers/UserController.cs @@ -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; + } + /// + /// 登陆 + /// + /// + /// + [HttpPost("login")] + public async Task Login([FromBody] UserLogin user) + { + var result = _userService.login(user.Username, user.Password); + if (result != null) + { + return Ok(result); + } + else + { + return BadRequest(result); + } + } + /// + /// 注册 + /// + /// + /// + [HttpPost("Add")] + public async Task Register([FromBody] UserAdd input) + { + var result = await _userService.AddUser(input); + return Ok(result); + } + /// + /// get user list + /// + /// + /// + [HttpGet("List")] + public async Task List([FromQuery] reqpage input) + { + var result = await _userService.GetPage(input); + return Ok(result); + } + ///删除用户 + /// + /// + /// + [HttpDelete("Delete")] + public async Task Delete(string id) + { + await _userService.DeleteUser(id); + return Ok(new ApiResult() { code = 0 }); + } + /// + /// 修改用户信息 + /// + /// + /// + [HttpPut("Update")] + public async Task Update([FromBody] UserUpdate input) + { + await _userService.UpdateUser(input); + return Ok(new ApiResult() { code = 0 }); + } + } +} diff --git a/langguanApi/Model/Dto/UserLogin.cs b/langguanApi/Model/Dto/UserLogin.cs new file mode 100644 index 0000000..bde8309 --- /dev/null +++ b/langguanApi/Model/Dto/UserLogin.cs @@ -0,0 +1,37 @@ +namespace langguanApi.Model.Dto +{ + public class UserLogin + { + public string Username { get; set; } + public string Password { get; set; } + } + public class UserAdd + { + /// + /// 用户名 + /// + public string Username { get; set; } + /// + /// 密码 md5加密 + /// + public string Password { get; set; } + /// + /// 角色id + /// + public int roleId { get; set; } + /// + /// 邮箱 + /// + public string Email { get; set; } + } + /// + /// 用户更新 + /// + public class UserUpdate : UserAdd + { + /// + /// id + /// + public string Id { get; set; } + } +} \ No newline at end of file diff --git a/langguanApi/Model/Entity/UserEntity.cs b/langguanApi/Model/Entity/UserEntity.cs new file mode 100644 index 0000000..350b96a --- /dev/null +++ b/langguanApi/Model/Entity/UserEntity.cs @@ -0,0 +1,25 @@ +namespace langguanApi.Model.Entity +{ + /// + /// 用户实体 + /// + public class UserEntity : BaseModel + { + /// + /// 用户名 + /// + public string Username { get; set; } + /// + /// 密码 md5加密 + /// + public string Password { get; set; } + /// + /// 角色id + /// + public int roleId { get; set; } + /// + /// 邮箱 + /// + public string Email { get; set; } + } +} diff --git a/langguanApi/Model/ReqPaing.cs b/langguanApi/Model/ReqPaing.cs index dccc6f7..40d145a 100644 --- a/langguanApi/Model/ReqPaing.cs +++ b/langguanApi/Model/ReqPaing.cs @@ -7,7 +7,6 @@ } public class reqpage : ReqPaing { - public string key { get; set; - } + public string key { get; set; } = ""; } } diff --git a/langguanApi/Service/UserService.cs b/langguanApi/Service/UserService.cs new file mode 100644 index 0000000..e4468a8 --- /dev/null +++ b/langguanApi/Service/UserService.cs @@ -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 + { + public UserService(IConfiguration config) : base(config, nameof(UserEntity).Replace("Entity", "")) + { + } + /// + /// 登录 + /// + /// + /// + /// + public async Task login(string username, string password) + { + Expression> exp = filter => + filter.Username == username && filter.Password == StringHelper.MD5Encrypt32(password); + var list = await base.GetListWithExp(exp); + return list.FirstOrDefault(); + } + /// + /// 根据用户名获取用户信息 + /// + /// + /// + public async Task GetByUsername(string username) + { + Expression> exp = filter => + filter.Username == username; + var list = await base.GetListWithExp(exp); + return list.FirstOrDefault(); + } + /// + /// 根据用户ID获取用户信息 + /// + /// + /// + public async Task GetById(string id) + { + return await base.GetAsync(id); + } + ///新加用户 + public async Task AddUser(UserAdd user) + { + var entity = user.Adapt(); + entity.Password = StringHelper.MD5Encrypt32(user.Password); + var result = await base.CreateAsync(entity); + return new ApiResult() + { + code = 0, + data = result + }; + } + /// + /// 分页取数据 + /// + /// + /// + public async Task GetPage(reqpage input) + { + Expression> 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(); + entity.Password = StringHelper.MD5Encrypt32(user.Password); + await base.UpdateAsync(user.Id, entity); + } + ///删除用户 + public async Task DeleteUser(string id) + { + await base.RemoveAsync(id); + } + } +}