.net core 实例教程(十五)用户管理相关接口实现代码
本文源码下载地址:http://www.80cxy.com/Blog/ResourceView?arId=202403191532545995NAAqJh
系列教程地址:http://www.80cxy.com/Blog/ArticleView?arId=202403191517574161ay3s5V
本文实现用户管理相关模块代码,主要有分页获取用户列表、增加用户、修改用户、删除用户以及批量删除用户接口。下面直接上代码。
一、仓储代码
(一)仓储接口代码
/// <summary> /// 根据用户Id获取用户信息 /// </summary> /// <param name="userId"></param> /// <returns></returns> Task<SysUser?> FindOneUserById(string id); /// <summary> /// 根据用户名查找用户 /// </summary> /// <param name="userName">用户名</param> /// <returns></returns> Task<SysUser?> FindOneByUserName(string userName); /// <summary> /// 分页获取用户数据 /// </summary> /// <param name="pageIndex">第几页</param> /// <param name="pageSize">每页条数</param> /// <param name="wheres">查询条件</param> /// <param name="sort">排序字段</param> /// <param name="order">排序分类</param> /// <returns></returns> Task<(SysUser[], int total)> GetUserList(int pageIndex, int pageSize, string wheres, string sort, string order); /// <summary> /// 添加用户 /// </summary> /// <param name="userName">登录名</param> /// <param name="realName">真实姓名</param> /// <param name="userType">用户类型</param> /// <returns></returns> Task<SysUser> AddUser(string userName, string password, string realName, string photoPath); /// <summary> /// 修改用户 /// </summary> /// <param name="id">用户id</param> /// <param name="userName">登录名</param> /// <param name="realName">真实姓名</param> /// <param name="userType">用户类型</param> /// <returns></returns> Task<SysUser> EditUser(string id, string userName, string realName, string photoPath); /// <summary> /// 根据用户id删除一个用户 /// </summary> /// <param name="id">用户id</param> /// <returns></returns> Task DeleteUser(string id); /// <summary> /// 根据用户id数组,批量删除用户 /// </summary> /// <param name="ids"></param> /// <returns></returns> void DeleteUserRange(string[] ids); /// <summary> /// 验证用户名密码是否正确 /// </summary> /// <param name="user">用户信息</param> /// <param name="password">登录密码</param> /// <returns></returns> string CheckForSignInAsync(SysUser user, string password);
(二)仓储接口实现代码
public async Task<SysUser?> FindOneUserById(string id) { return await _dbContext.SysUser.FindAsync(Guid.Parse(id)); } public async Task<SysUser?> FindOneByUserName(string userName) { return await _dbContext.SysUser.SingleOrDefaultAsync(m => m.UserName == userName); } public async Task<(SysUser[], int total)> GetUserList(int pageIndex, int pageSize, string wheres, string sort, string order) { //where查询条件 List<DataFilter> searchParametersList = FormatParameters.GetSearchParameters(wheres); //order排序条件 Dictionary<string, QueryOrderBy> orderBy = FormatParameters.GetOrderParameters(sort, order); //构造查询条件 Expression<Func<SysUser, bool>> expression = DataFilterConvertor<SysUser>.ToExpression(searchParametersList); var listAll = _dbContext.SysUser.Where(expression); int total = listAll.Count(); var list = await listAll.OrderConditions(orderBy).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToArrayAsync(); return (list, total); } public async Task<SysUser> AddUser(string userName, string password, string realName, string photoPath) { SysUser model = SysUser.Add(userName, password, realName, photoPath); await _dbContext.SysUser.AddAsync(model); return model; } public async Task<SysUser> EditUser(string id, string userName, string realName, string photoPath) { var model = await FindOneUserById(id); model?.Edit(userName, realName, photoPath); return model; } public async Task DeleteUser(string id) { var model = await _dbContext.SysUser.FindAsync(Guid.Parse(id)); if (model != null) { _dbContext.SysUser.Remove(model); } } public void DeleteUserRange(string[] ids) { _dbContext.SysUser.RemoveRange(_dbContext.SysUser.Where(x => ids.Contains(x.Id.ToString())).ToArray()); }
二、领域服务代码
(一)领域服务接口代码
/// <summary> /// 分页获取用户数据 /// </summary> /// <param name="pageIndex">第几页</param> /// <param name="pageSize">每页条数</param> /// <param name="wheres">查询条件</param> /// <param name="sort">排序字段</param> /// <param name="order">排序分类</param> /// <returns></returns> Task<ResponseContent> GetUserList(int pageIndex, int pageSize, string wheres, string sort, string order); /// <summary> /// 添加用户 /// </summary> /// <param name="userName">登录名</param> /// <param name="realName">真实姓名</param> /// <param name="userType">用户类型</param> /// <returns></returns> Task<ResponseContent> AddUser(string userName, string password, string realName, string photoPath); /// <summary> /// 修改用户 /// </summary> /// <param name="id">用户id</param> /// <param name="userName">登录名</param> /// <param name="realName">真实姓名</param> /// <param name="userType">用户类型</param> /// <returns></returns> Task<ResponseContent> EditUser(string id, string userName, string realName, string photoPath); /// <summary> /// 根据用户id删除一个用户 /// </summary> /// <param name="id">用户id</param> /// <returns></returns> Task<ResponseContent> DeleteUser(string id); /// <summary> /// 根据用户id数组,批量删除用户 /// </summary> /// <param name="ids"></param> /// <returns></returns> ResponseContent DeleteUserRange(string[] ids);
(二)领域服务接口实现代码
public async Task<ResponseContent> GetUserList(int pageIndex, int pageSize, string wheres, string sort, string order) { ResponseContent response = new ResponseContent(); (var list, int total) = await _systemDomainRepostory.GetUserList(pageIndex, pageSize, wheres, sort, order); return response.Ok(new { total = total, rows = list }); } public async Task<ResponseContent> AddUser(string userName, string password, string realName, string photoPath) { ResponseContent response = new ResponseContent(); await _systemDomainRepostory.AddUser(userName, Md5.Encrypt(password), realName, photoPath); return response.Ok(); } public async Task<ResponseContent> EditUser(string id, string userName, string realName, string photoPath) { ResponseContent response = new ResponseContent(); var model = await _systemDomainRepostory.EditUser(id, userName, realName, photoPath); return response.Ok(); } public async Task<ResponseContent> DeleteUser(string id) { ResponseContent response = new ResponseContent(); await _systemDomainRepostory.DeleteUser(id); return response.Ok(); } public ResponseContent DeleteUserRange(string[] ids) { ResponseContent response = new ResponseContent(); _systemDomainRepostory.DeleteUserRange(ids); return response.Ok(); }
三、Controller代码
/// <summary> /// 获取用户列表 /// </summary> /// <remarks> /// 描述:分页获取用户列表接口 /// </remarks> /// <param name="req">请求参数</param> /// <returns></returns> [HttpPost] public async Task<ActionResult> GetUserList(PageGridRequest req) { return new JsonResult(await _systemDomainService.GetUserList(req.PageIndex, req.PageSize, req.Wheres, req.Sort, req.Order)); } /// <summary> /// 添加用户 /// </summary> /// <remarks> /// 描述:添加后台管理用户接口 /// </remarks> /// <param name="req"></param> /// <returns></returns> [HttpPost] [UnitOfWork(typeof(SignUpDbContext))] public async Task<ActionResult> AddUser(AddUserRequest req) { return new JsonResult(await _systemDomainService.AddUser(req.UserName, req.Password, req.RealName, req.PhotoPath)); } /// <summary> /// 修改用户 /// </summary> /// <remarks> /// 描述:修改用户基本信息接口 /// </remarks> /// <param name="req"></param> /// <returns></returns> [HttpPut] [UnitOfWork(typeof(SignUpDbContext))] public async Task<ActionResult> EditUser(EditUserRequest req) { return new JsonResult(await _systemDomainService.EditUser(req.Id, req.UserName, req.RealName, req.PhotoPath)); } /// <summary> /// 删除用户 /// </summary> /// <remarks> /// 描述:删除后台管理用户 /// </remarks> /// <param name="id">用户ID</param> /// <returns></returns> [HttpDelete] [UnitOfWork(typeof(SignUpDbContext))] public async Task<ActionResult> DeleteUser(string id) { return new JsonResult(await _systemDomainService.DeleteUser(id)); } /// <summary> /// 批量删除用户 /// </summary> /// <remarks> /// 描述:批量删除用户信息 /// </remarks> /// <param name="ids"></param> /// <returns></returns> [HttpDelete] [UnitOfWork(typeof(SignUpDbContext))] public ActionResult DeleteUserRange(string[] ids) { return new JsonResult(_systemDomainService.DeleteUserRange(ids)); } using FluentValidation; namespace SignUp.WebApi.ViewModels.System { public record AddUserRequest(string UserName, string Password, string RealName, string? PhotoPath); public class AddUserRequestValidator : AbstractValidator<AddUserRequest> { public AddUserRequestValidator() { RuleFor(x => x.UserName).NotEmpty(); RuleFor(x => x.RealName).NotEmpty(); } } } using FluentValidation; namespace SignUp.WebApi.ViewModels.System { public record EditUserRequest(string Id, string UserName, string RealName, string? PhotoPath); public class EditUserRequestValidator : AbstractValidator<EditUserRequest> { public EditUserRequestValidator() { RuleFor(x => x.Id).NotEmpty(); RuleFor(x => x.UserName).NotEmpty(); RuleFor(x => x.RealName).NotEmpty(); } } }
学习交流
附笔者学习 .net core开发时参考相关项目实例源码:asp.net core webapi项目实例源代码锦集下载(72个)
猜您可能还喜欢
- net core+webapi+nginx windows 服务器部署(1321)
- .Nuget Packages 太占C盘,删除后可以放到其他盘(1194)
- ASP.NET Core 配置 Swagger 显示接口注释描述信息(1094)
- vue调用接口后获取不到后端返回的Header响应头(964)
- .net core 系列实例开发教程-权限管理系统功能介绍(952)
- .net core 6.0 web API + SwaggerUI + IIS部署(912)
- .net core 实例教程(十二)配置启用Swagger中的【Authorize】按钮(831)
- .net core 实例教程(一)新建项目(797)
- .net core 实例教程(十四)配置 Swagger 显示接口注释描述信息及支持版本控制(783)
- .net 6中使用log4net写sqlserver数据库日志(756)
评论列表
发表评论
文章分类
文章归档
- 2025年3月 (1)
- 2024年6月 (2)
- 2024年5月 (2)
- 2024年4月 (4)
- 2024年3月 (30)
- 2024年1月 (4)
- 2023年12月 (2)
- 2023年11月 (4)
- 2023年10月 (4)
- 2023年9月 (6)
- 2023年3月 (2)
- 2023年2月 (1)
- 2023年1月 (1)
- 2022年12月 (1)
- 2022年9月 (21)
- 2022年8月 (10)
- 2022年7月 (3)
- 2022年4月 (1)
- 2022年3月 (13)
- 2021年8月 (1)
- 2021年3月 (1)
- 2020年12月 (42)
- 2020年11月 (7)
- 2020年10月 (5)
- 2020年8月 (1)
- 2020年6月 (1)
- 2020年3月 (2)
- 2019年12月 (8)
- 2019年11月 (3)
- 2019年9月 (1)
- 2019年4月 (1)
- 2019年3月 (6)
- 2019年2月 (1)
- 2018年7月 (7)
阅读排行
- 1.asp.net mvc内微信pc端、H5、JsApi支付方式总结(5702)
- 2.各大搜索网站网站收录提交入口地址(3201)
- 3.Windows 10休眠文件更改存储位置(3163)
- 4.ECharts仪表盘实例及参数使用详解(3095)
- 5.windows 10安装myeclipse 10破解补丁cracker.jar、run.bat闪退解决办法(2991)
- 6.HTML5 WebSocket与C#建立Socket连接实现代码(2866)
- 7.华为鸿蒙系统清除微信浏览器缓存方法(2779)
- 8.CERT_HAS_EXPIRED错误如何解决(2245)
- 9.Js异步async、await关键字详细介绍(lambda表达式中使用async和await关键字)(2188)
- 10.HBuilder编辑器格式化代码(2118)