//----------SysPost开始---------- using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Admin.Core.IRepository; using Admin.Core.Model; using Admin.Core.Common; using System.Linq.Expressions; using Admin.Core.IRepository.ISys; using Admin.Core.IService.ISys; using Admin.Core.Model.Sys; namespace Admin.Core.Service.Sys { /// /// 岗位信息表Service /// public partial class SysPostService : BaseServices, ISysPostService { IBaseRepository dal; ISysUserPostRepository _sysUserPostRepository; public SysPostService(IBaseRepository dal, ISysUserPostRepository sysUserPostRepository) { this.dal = dal; BaseDal = dal; _sysUserPostRepository = sysUserPostRepository; } /// /// 查询岗位信息集合 /// /// 岗位信息 /// 岗位信息集合 public async Task> SelectPostList(PageQuery pageQuery) { Expression> whereExpression = x => true; if (pageQuery.Query.PostName.IsNotEmptyOrNull()) { whereExpression = whereExpression.And(x => x.PostName.Contains(pageQuery.Query.PostName)); } if (pageQuery.Query.PostCode.IsNotEmptyOrNull()) { whereExpression = whereExpression.And(x => x.PostCode.Contains(pageQuery.Query.PostCode)); } if (pageQuery.Query.Status.IsNotEmptyOrNull()) { whereExpression = whereExpression.And(x => x.Status == pageQuery.Query.Status); } var data = await dal.QueryPageAsync(whereExpression, pageQuery.Page, pageQuery.PageSize, "PostSort asc"); return data; } /// /// 查询所有岗位 /// /// 岗位列表 public async Task> SelectPostAll() { return await dal.QueryAsync(x => x.Status == SysConst.ENABLE); } /// /// 通过岗位ID查询岗位信息 /// /// 岗位ID /// 角色对象信息 public async Task SelectPostById(int postId) { return await dal.QueryByIdAsync(postId); } /// /// 根据用户ID获取岗位选择框列表 /// /// 用户ID /// 选中岗位ID列表 public async Task> SelectPostListByUserId(int userId) { var userPosts = await _sysUserPostRepository.QueryAsync(x => x.UserID == userId); return userPosts.Select(x => (int)x.PostID).ToList(); } /// /// 校验岗位名称是否唯一 /// /// 岗位信息 /// 结果 public async Task CheckPostNameUnique(SysPost post) { Expression> whereExpression = x => true; if (post.PostName.IsNotEmptyOrNull()) { whereExpression = whereExpression.And(x => x.PostName == post.PostName); } if (post.PostID.IsNotEmptyOrNull() && post.PostID > 0) { whereExpression = whereExpression.And(x => x.PostID != post.PostID); } var posts = await dal.QueryAsync(whereExpression); return posts.Count == 0; } /// /// 校验岗位编码是否唯一 /// /// 岗位信息 /// 结果 public async Task CheckPostCodeUnique(SysPost post) { Expression> whereExpression = x => true; if (post.PostCode.IsNotEmptyOrNull()) { whereExpression = whereExpression.And(x => x.PostCode == post.PostCode); } if (post.PostID.IsNotEmptyOrNull() && post.PostID > 0) { whereExpression = whereExpression.And(x => x.PostID != post.PostID); } var posts = await dal.QueryAsync(whereExpression); return posts.Count == 0; } /// /// 通过岗位ID查询岗位使用数量 /// /// 岗位ID /// 结果 public async Task CountUserPostById(List postIds) { var userPosts = await _sysUserPostRepository.QueryAsync(x => postIds.Contains((int)x.PostID)); return userPosts.Count; } /// /// 删除岗位信息 /// /// 岗位ID /// 结果 public async Task DeletePostById(int postId) { return await dal.DeleteByIdAsync(postId); } /// /// 批量删除岗位信息 /// /// 需要删除的岗位ID /// 结果 /// 异常 public async Task DeletePostByIds(List postIds) { var posts = await dal.QueryAsync(x => postIds.Contains(x.PostID)); return await dal.DeletesAsync(posts); } /// /// 新增保存岗位信息 /// /// 岗位信息 /// 结果 public async Task InsertPost(SysPost post) { post.CreateTime = DateTime.Now; post.UpdateTime = DateTime.Now; return await dal.AddAsync(post); } /// /// 修改保存岗位信息 /// /// 岗位信息 /// 结果 public async Task UpdatePost(SysPost post) { post.UpdateTime = DateTime.Now; return await dal.UpdateAsync(post); } } } //----------SysPost结束----------