/// <summary> /// 添加部门 /// </summary> /// <param name="request"></param> /// <param name="context"></param> /// <returns></returns> public override async Task <GeneralResponse> AddDepartment(AddDepartmentRequest request, ServerCallContext context) { if (await db.Departments.AnyAsync(x => x.Name == request.DepartmentName)) { return(ResponseHelper.BadResponse("部门名称已存在")); } if (request.SuperiorDepartmentId.HasValue) { if (!await db.Departments.AnyAsync(x => x.Id == request.SuperiorDepartmentId.Value)) { return(ResponseHelper.BadResponse("上级部门不存在")); } } await db.Departments.AddAsync(new Department { Name = request.DepartmentName, SuperiorDepartmentId = request.SuperiorDepartmentId }); if (await db.SaveChangesAsync() > 0) { return(ResponseHelper.OkResponse()); } return(ResponseHelper.BadResponse()); }
/// <summary> /// 为部门添加访问权限 /// </summary> /// <param name="request"></param> /// <param name="context"></param> /// <returns></returns> public override async Task <GeneralResponse> AddActionTag(DepartmentAddActionRequest request, ServerCallContext context) { if (await db.ActionTags.AnyAsync(x => x.Id == request.ActionTagId)) { return(ResponseHelper.BadResponse("Tag不存在")); } if (await db.Departments.AnyAsync(x => x.Id == request.DepartmentId)) { return(ResponseHelper.BadResponse("部门不存在")); } if (await db.DepartmentActionMaps.AnyAsync(x => x.DepartmentId == request.DepartmentId && x.ActionTagId == request.ActionTagId)) { return(ResponseHelper.BadResponse("已存在访问权限")); } await db.DepartmentActionMaps.AddAsync(new DepartmentActionMap { ActionTagId = request.ActionTagId, DepartmentId = request.DepartmentId }); if (await db.SaveChangesAsync() > 0) { return(ResponseHelper.OkResponse()); } return(ResponseHelper.BadResponse()); }
public override async Task <GeneralResponse> AddPosition(AddPositionRequest request, ServerCallContext context) { if (await db.Positions.AnyAsync(x => x.DepartmentId == request.DepartmentId && x.Name == request.PositionName)) { return(ResponseHelper.BadResponse("部门已存在该职位")); } if (request.SuperiorPositionId.HasValue) { if (await db.Positions.AnyAsync(x => x.Id == request.SuperiorPositionId)) { return(ResponseHelper.BadResponse("指定的上级职位不存在")); } } await db.Positions.AddAsync(new Position { Name = request.PositionName, DepartmentId = request.DepartmentId, SuperiorPositionId = request.SuperiorPositionId }); if (await db.SaveChangesAsync() > 0) { return(ResponseHelper.OkResponse()); } return(ResponseHelper.BadResponse("未知错误")); }
/// <summary> /// 更新Tag /// </summary> /// <param name="request"></param> /// <param name="context"></param> /// <returns></returns> public override async Task <GeneralResponse> UpdateTag(UpdateTagRequest request, ServerCallContext context) { ActionTag actionTag = await db.ActionTags.FirstOrDefaultAsync(x => x.Id == request.TagId); if (actionTag == null) { return(ResponseHelper.BadResponse("对应的Tag不存在")); } if (!string.IsNullOrWhiteSpace(request.ActionName)) { actionTag.ActionName = request.ActionName; } if (!string.IsNullOrWhiteSpace(request.ControllerName)) { actionTag.ControllerName = request.ControllerName; } if (!string.IsNullOrWhiteSpace(request.TagName)) { actionTag.TagName = request.TagName; } if (await db.SaveChangesAsync() > 0) { return(ResponseHelper.OkResponse()); } return(ResponseHelper.BadResponse("未知错误")); }
/// <summary> /// 用户注册 /// </summary> /// <param name="request"></param> /// <param name="context"></param> /// <returns></returns> public override async Task <GeneralResponse> RegistUser(RegistUserRequest request, ServerCallContext context) { if (!await db.Positions.AnyAsync(x => x.Id == request.PositionId)) { return(ResponseHelper.BadResponse("指定的职位不存在")); } if (string.IsNullOrWhiteSpace(request.Name)) { return(ResponseHelper.BadResponse("用户名不能为空")); } if (await db.Users.AnyAsync(x => x.Name == request.Name)) { return(ResponseHelper.BadResponse("用户名已存在")); } await db.Users.AddAsync( new User { Name = request.Name, PositionId = request.PositionId, Password = request.Password }); int result = await db.SaveChangesAsync(); if (result <= 0) { return(ResponseHelper.BadResponse()); } return(new GeneralResponse { IsSuccess = true }); }
/// <summary> /// 删除部门 /// </summary> /// <param name="request"></param> /// <param name="context"></param> /// <returns></returns> public override async Task <GeneralResponse> DeleteDepartment(GeneralIdRequest request, ServerCallContext context) { Department department = await db.Departments.FirstOrDefaultAsync(x => x.Id == request.Id); if (department == null) { return(ResponseHelper.BadResponse("指定部门不存在")); } db.Departments.Remove(department); if (await db.SaveChangesAsync() > 0) { return(ResponseHelper.OkResponse()); } return(ResponseHelper.BadResponse()); }
/// <summary> /// 移除部门的访问权限 /// </summary> /// <param name="request"></param> /// <param name="context"></param> /// <returns></returns> public override async Task <GeneralResponse> DepartmentDeleteActionTag(DepartmentDeleteActionTagRequest request, ServerCallContext context) { DepartmentActionMap actionMap = await db.DepartmentActionMaps.FirstOrDefaultAsync(x => x.DepartmentId == request.DepartmentId && x.ActionTagId == request.ActionTagId); if (actionMap == null) { return(ResponseHelper.BadResponse("访问权限不存在")); } db.DepartmentActionMaps.Remove(actionMap); if (await db.SaveChangesAsync() > 0) { return(ResponseHelper.OkResponse()); } return(ResponseHelper.BadResponse()); }
public override async Task <GeneralResponse> RegistAdminUser(RegistAdminUserRequest request, ServerCallContext context) { //如果不存在管理员用户(即没有部门的用户),添加用户到数据库 if (!await db.Users.AnyAsync(x => x.PositionId == null)) { await db.Users.AddAsync(new User { Name = request.UserName, Password = request.Password }); } else { //已登录的用户不是管理员用户 if (await db.Users.AnyAsync(x => x.Id == request.CurrentUserId && x.PositionId == null)) { await db.Users.AddAsync(new User { Name = request.UserName, Password = request.Password }); } else { return(ResponseHelper.BadResponse("需要管理员用户")); } if (await db.Users.AnyAsync(x => x.Name == request.UserName)) { return(ResponseHelper.BadResponse("用户名已存在")); } } if (await db.SaveChangesAsync() > 0) { return(ResponseHelper.OkResponse()); } return(ResponseHelper.BadResponse()); }