Exemplo n.º 1
0
        /// <summary>
        /// 注册管理员用户
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <GeneralResponse> RegistAdminAsync(AdminRegistModel model)
        {
            RegistAdminUserRequest request = new RegistAdminUserRequest
            {
                CurrentUserId = null,
                UserName      = model.Name,
                Password      = model.Password
            };

            if (!IsNullOrWhiteSpace(Token))
            {
                request.CurrentUserId = (await GetCurrentUserInfoAsync()).UserId;
            }
            GeneralResponse response = await userClient.RegistAdminUserAsync(request);

            return(response);
        }
        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());
        }