From 6fa0b153b0b1688f0d72767a91d92c9f5d28e156 Mon Sep 17 00:00:00 2001 From: anjoy8 <3143422472@qq.com> Date: Tue, 15 Mar 2022 18:25:27 +0800 Subject: [PATCH] fix: try to use dto in user manage --- Blog.Core.Api/Blog.Core.xml | 10 ++-- Blog.Core.Api/Controllers/UserController.cs | 46 ++++++++++--------- .../Controllers/UserRoleController.cs | 26 +++++++---- .../AutoMapper/CustomProfile.cs | 37 +++++++++++++++ Blog.Core.Model/ViewModels/SysUserInfoDto.cs | 27 +++++++++++ 5 files changed, 110 insertions(+), 36 deletions(-) create mode 100644 Blog.Core.Model/ViewModels/SysUserInfoDto.cs diff --git a/Blog.Core.Api/Blog.Core.xml b/Blog.Core.Api/Blog.Core.xml index ad1d8a9..44e2e1e 100644 --- a/Blog.Core.Api/Blog.Core.xml +++ b/Blog.Core.Api/Blog.Core.xml @@ -633,7 +633,7 @@ 用户管理 - + 构造函数 @@ -642,6 +642,7 @@ + @@ -660,14 +661,14 @@ 令牌 - + 添加一个用户 - + 更新用户与角色 @@ -686,12 +687,13 @@ 用户角色关系 - + 构造函数 + diff --git a/Blog.Core.Api/Controllers/UserController.cs b/Blog.Core.Api/Controllers/UserController.cs index 803ae27..3da0310 100644 --- a/Blog.Core.Api/Controllers/UserController.cs +++ b/Blog.Core.Api/Controllers/UserController.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using AutoMapper; using Blog.Core.AuthHelper.OverWrite; using Blog.Core.Common.Helper; using Blog.Core.Common.HttpContextUser; @@ -9,6 +10,7 @@ using Blog.Core.IRepository.UnitOfWork; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; +using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; @@ -21,13 +23,14 @@ namespace Blog.Core.Controllers [Route("api/[controller]/[action]")] [ApiController] [Authorize(Permissions.Name)] - public class UserController : ControllerBase + public class UserController : BaseApiController { private readonly IUnitOfWork _unitOfWork; readonly ISysUserInfoServices _sysUserInfoServices; readonly IUserRoleServices _userRoleServices; readonly IRoleServices _roleServices; private readonly IUser _user; + private readonly IMapper _mapper; private readonly ILogger _logger; /// @@ -38,14 +41,18 @@ namespace Blog.Core.Controllers /// /// /// + /// /// - public UserController(IUnitOfWork unitOfWork, ISysUserInfoServices sysUserInfoServices, IUserRoleServices userRoleServices, IRoleServices roleServices, IUser user, ILogger logger) + public UserController(IUnitOfWork unitOfWork, ISysUserInfoServices sysUserInfoServices, + IUserRoleServices userRoleServices, IRoleServices roleServices, + IUser user, IMapper mapper, ILogger logger) { _unitOfWork = unitOfWork; _sysUserInfoServices = sysUserInfoServices; _userRoleServices = userRoleServices; _roleServices = roleServices; _user = user; + _mapper = mapper; _logger = logger; } @@ -57,7 +64,7 @@ namespace Blog.Core.Controllers /// // GET: api/User [HttpGet] - public async Task>> Get(int page = 1, string key = "") + public async Task>> Get(int page = 1, string key = "") { if (string.IsNullOrEmpty(key) || string.IsNullOrWhiteSpace(key)) { @@ -87,12 +94,7 @@ namespace Blog.Core.Controllers #endregion - return new MessageModel>() - { - msg = "获取成功", - success = data.dataCount >= 0, - response = data - }; + return SuccessPage(data.page, data.dataCount, data.PageSize, _mapper.Map>(sysUserInfos), data.pageCount); } @@ -114,9 +116,9 @@ namespace Blog.Core.Controllers /// [HttpGet] [AllowAnonymous] - public async Task> GetInfoByToken(string token) + public async Task> GetInfoByToken(string token) { - var data = new MessageModel(); + var data = new MessageModel(); if (!string.IsNullOrEmpty(token)) { var tokenModel = JwtHelper.SerializeJwt(token); @@ -125,7 +127,7 @@ namespace Blog.Core.Controllers var userinfo = await _sysUserInfoServices.QueryById(tokenModel.Uid); if (userinfo != null) { - data.response = userinfo; + data.response = _mapper.Map(userinfo); data.success = true; data.msg = "获取成功"; } @@ -142,14 +144,14 @@ namespace Blog.Core.Controllers /// // POST: api/User [HttpPost] - public async Task> Post([FromBody] SysUserInfo sysUserInfo) + public async Task> Post([FromBody] SysUserInfoDto sysUserInfo) { var data = new MessageModel(); - sysUserInfo.LoginPWD = MD5Helper.MD5Encrypt32(sysUserInfo.LoginPWD); - sysUserInfo.Remark = _user.Name; + sysUserInfo.uLoginPWD = MD5Helper.MD5Encrypt32(sysUserInfo.uLoginPWD); + sysUserInfo.uRemark = _user.Name; - var id = await _sysUserInfoServices.Add(sysUserInfo); + var id = await _sysUserInfoServices.Add(_mapper.Map(sysUserInfo)); data.success = id > 0; if (data.success) { @@ -167,7 +169,7 @@ namespace Blog.Core.Controllers /// // PUT: api/User/5 [HttpPut] - public async Task> Put([FromBody] SysUserInfo sysUserInfo) + public async Task> Put([FromBody] SysUserInfoDto sysUserInfo) { // 这里使用事务处理 @@ -176,12 +178,12 @@ namespace Blog.Core.Controllers { _unitOfWork.BeginTran(); - if (sysUserInfo != null && sysUserInfo.Id > 0) + if (sysUserInfo != null && sysUserInfo.uID > 0) { if (sysUserInfo.RIDs.Count > 0) { // 无论 Update Or Add , 先删除当前用户的全部 U_R 关系 - var usreroles = (await _userRoleServices.Query(d => d.UserId == sysUserInfo.Id)).Select(d => d.Id.ToString()).ToArray(); + var usreroles = (await _userRoleServices.Query(d => d.UserId == sysUserInfo.uID)).Select(d => d.Id.ToString()).ToArray(); if (usreroles.Count() > 0) { var isAllDeleted = await _userRoleServices.DeleteByIds(usreroles); @@ -191,21 +193,21 @@ namespace Blog.Core.Controllers var userRolsAdd = new List(); sysUserInfo.RIDs.ForEach(rid => { - userRolsAdd.Add(new UserRole(sysUserInfo.Id, rid)); + userRolsAdd.Add(new UserRole(sysUserInfo.uID, rid)); }); await _userRoleServices.Add(userRolsAdd); } - data.success = await _sysUserInfoServices.Update(sysUserInfo); + data.success = await _sysUserInfoServices.Update(_mapper.Map(sysUserInfo)); _unitOfWork.CommitTran(); if (data.success) { data.msg = "更新成功"; - data.response = sysUserInfo?.Id.ObjToString(); + data.response = sysUserInfo?.uID.ObjToString(); } } } diff --git a/Blog.Core.Api/Controllers/UserRoleController.cs b/Blog.Core.Api/Controllers/UserRoleController.cs index d36fef5..d14d6a7 100644 --- a/Blog.Core.Api/Controllers/UserRoleController.cs +++ b/Blog.Core.Api/Controllers/UserRoleController.cs @@ -1,7 +1,9 @@ using System.Threading.Tasks; +using AutoMapper; using Blog.Core.IServices; using Blog.Core.Model; using Blog.Core.Model.Models; +using Blog.Core.Model.ViewModels; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -16,21 +18,24 @@ namespace Blog.Core.Controllers [Authorize(Permissions.Name)] public class UserRoleController : Controller { - readonly ISysUserInfoServices _sysUserInfoServices; - readonly IUserRoleServices _userRoleServices; - readonly IRoleServices _roleServices; + private readonly ISysUserInfoServices _sysUserInfoServices; + private readonly IUserRoleServices _userRoleServices; + private readonly IRoleServices _roleServices; + private readonly IMapper _mapper; /// /// 构造函数 /// /// /// + /// /// - public UserRoleController(ISysUserInfoServices sysUserInfoServices, IUserRoleServices userRoleServices, IRoleServices roleServices) + public UserRoleController(ISysUserInfoServices sysUserInfoServices, IUserRoleServices userRoleServices, IMapper mapper, IRoleServices roleServices) { - this._sysUserInfoServices = sysUserInfoServices; - this._userRoleServices = userRoleServices; - this._roleServices = roleServices; + _sysUserInfoServices = sysUserInfoServices; + _userRoleServices = userRoleServices; + _roleServices = roleServices; + _mapper = mapper; } @@ -42,13 +47,14 @@ namespace Blog.Core.Controllers /// /// [HttpGet] - public async Task> AddUser(string loginName, string loginPwd) + public async Task> AddUser(string loginName, string loginPwd) { - return new MessageModel() + var userInfo = await _sysUserInfoServices.SaveUserInfo(loginName, loginPwd); + return new MessageModel() { success = true, msg = "添加成功", - response = await _sysUserInfoServices.SaveUserInfo(loginName, loginPwd) + response = _mapper.Map(userInfo) }; } diff --git a/Blog.Core.Extensions/AutoMapper/CustomProfile.cs b/Blog.Core.Extensions/AutoMapper/CustomProfile.cs index 9e1957f..7b05f07 100644 --- a/Blog.Core.Extensions/AutoMapper/CustomProfile.cs +++ b/Blog.Core.Extensions/AutoMapper/CustomProfile.cs @@ -13,6 +13,43 @@ namespace Blog.Core.AutoMapper { CreateMap(); CreateMap(); + + CreateMap() + .ForMember(a => a.uID, o => o.MapFrom(d => d.Id)) + .ForMember(a => a.RIDs, o => o.MapFrom(d => d.RIDs)) + .ForMember(a => a.addr, o => o.MapFrom(d => d.Address)) + .ForMember(a => a.age, o => o.MapFrom(d => d.Age)) + .ForMember(a => a.birth, o => o.MapFrom(d => d.Birth)) + .ForMember(a => a.uStatus, o => o.MapFrom(d => d.Status)) + .ForMember(a => a.uUpdateTime, o => o.MapFrom(d => d.UpdateTime)) + .ForMember(a => a.uCreateTime, o => o.MapFrom(d => d.CreateTime)) + .ForMember(a => a.uErrorCount, o => o.MapFrom(d => d.ErrorCount)) + .ForMember(a => a.uLastErrTime, o => o.MapFrom(d => d.LastErrorTime)) + .ForMember(a => a.uLoginName, o => o.MapFrom(d => d.LoginName)) + .ForMember(a => a.uLoginPWD, o => o.MapFrom(d => d.LoginPWD)) + .ForMember(a => a.uRemark, o => o.MapFrom(d => d.Remark)) + .ForMember(a => a.uRealName, o => o.MapFrom(d => d.RealName)) + .ForMember(a => a.name, o => o.MapFrom(d => d.Name)) + .ForMember(a => a.tdIsDelete, o => o.MapFrom(d => d.IsDeleted)) + .ForMember(a => a.RoleNames, o => o.MapFrom(d => d.RoleNames)); + CreateMap() + .ForMember(a => a.Id, o => o.MapFrom(d => d.uID)) + .ForMember(a => a.Address, o => o.MapFrom(d => d.addr)) + .ForMember(a => a.RIDs, o => o.MapFrom(d => d.RIDs)) + .ForMember(a => a.Age, o => o.MapFrom(d => d.age)) + .ForMember(a => a.Birth, o => o.MapFrom(d => d.birth)) + .ForMember(a => a.Status, o => o.MapFrom(d => d.uStatus)) + .ForMember(a => a.UpdateTime, o => o.MapFrom(d => d.uUpdateTime)) + .ForMember(a => a.CreateTime, o => o.MapFrom(d => d.uCreateTime)) + .ForMember(a => a.ErrorCount, o => o.MapFrom(d => d.uErrorCount)) + .ForMember(a => a.LastErrorTime, o => o.MapFrom(d => d.uLastErrTime)) + .ForMember(a => a.LoginName, o => o.MapFrom(d => d.uLoginName)) + .ForMember(a => a.LoginPWD, o => o.MapFrom(d => d.uLoginPWD)) + .ForMember(a => a.Remark, o => o.MapFrom(d => d.uRemark)) + .ForMember(a => a.RealName, o => o.MapFrom(d => d.uRealName)) + .ForMember(a => a.Name, o => o.MapFrom(d => d.name)) + .ForMember(a => a.IsDeleted, o => o.MapFrom(d => d.tdIsDelete)) + .ForMember(a => a.RoleNames, o => o.MapFrom(d => d.RoleNames)); } } } diff --git a/Blog.Core.Model/ViewModels/SysUserInfoDto.cs b/Blog.Core.Model/ViewModels/SysUserInfoDto.cs new file mode 100644 index 0000000..6e538b9 --- /dev/null +++ b/Blog.Core.Model/ViewModels/SysUserInfoDto.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; + +namespace Blog.Core.Model.ViewModels +{ + public class SysUserInfoDto + { + public int uID { get; set; } + public string uLoginName { get; set; } + public string uLoginPWD { get; set; } + public string uRealName { get; set; } + public int uStatus { get; set; } + public string uRemark { get; set; } + public System.DateTime uCreateTime { get; set; } = DateTime.Now; + public System.DateTime uUpdateTime { get; set; } = DateTime.Now; + public DateTime uLastErrTime { get; set; } = DateTime.Now; + public int uErrorCount { get; set; } + public string name { get; set; } + public int sex { get; set; } = 0; + public int age { get; set; } + public DateTime birth { get; set; } = DateTime.Now; + public string addr { get; set; } + public bool tdIsDelete { get; set; } + public List RoleNames { get; set; } + public List RIDs { get; set; } + } +}