public async Task <AjaxResult> Verify(BlogVerifyDto dto) { Check.NotNull(dto, nameof(dto)); OperationResult result = await BlogsContract.VerifyBlog(dto); return(result.ToAjaxResult()); }
/// <summary> /// 审核博客信息 /// </summary> /// <param name="dto">审核博客信息DTO信息</param> /// <returns>业务操作结果</returns> public virtual async Task <OperationResult> VerifyBlog(BlogVerifyDto dto) { Check.Validate(dto, nameof(dto)); Blog blog = await BlogRepository.GetAsync(dto.Id); if (blog == null) { return(new OperationResult(OperationResultType.QueryNull, $"编号为“{dto.Id}”的博客信息不存在")); } // 更新博客 blog.IsEnabled = dto.IsEnabled; int count = await BlogRepository.UpdateAsync(blog); //User user = await UserRepository.GetAsync(blog.UserId); //if (user == null) //{ // return new OperationResult(OperationResultType.QueryNull, $"编号为“{blog.UserId}”的用户信息不存在"); //} // 如果开通博客,给用户开通博主身份 if (dto.IsEnabled) { // 查找博客主的角色,博主角色名可由配置系统获得 const string roleName = "博主"; // 用于CUD操作的实体,要用 TrackQuery 方法来查询出需要的数据,不能用 Query,因为 Query 会使用 AsNoTracking //Role role = RoleRepository.TrackQuery(m => m.Name == roleName).FirstOrDefault(); //if (role == null) //{ // return new OperationResult(OperationResultType.QueryNull, $"名称为“{roleName}”的角色信息不存在"); //} //UserRole userRole = UserRoleRepository.TrackQuery(m => m.UserId == user.Id && m.RoleId == role.Id) // .FirstOrDefault(); //if (userRole == null) //{ // userRole = new UserRole() { UserId = user.Id, RoleId = role.Id, IsLocked = false }; // count += await UserRoleRepository.InsertAsync(userRole); //} } OperationResult result = count > 0 ? new OperationResult(OperationResultType.Success, $"博客“{blog.Display}”审核 {(dto.IsEnabled ? "通过" : "未通过")},审核理由:{dto.Reason}") : OperationResult.NoChanged; if (result.Succeeded) { VerifyBlogEventData eventData = new VerifyBlogEventData() { BlogName = blog.Display, UserName = "******", IsEnabled = blog.IsEnabled, Reason = dto.Reason }; _eventBus.Publish(eventData); } return(result); }