用户管理
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