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);
+ }
+ }
+}