Example #1
0
        public IActionResult Create(UserCreateViewModel model)
        {
            var response = ResponseModelFactory.CreateInstance;

            if (model.LoginName.Trim().Length <= 0)
            {
                response.SetFailed("请输入登录名称");
                return(Ok(response));
            }
            using (_dbContext)
            {
                //if (_dbContext.SystemUser.Count(x => x.LoginName == model.LoginName) > 0)
                //{
                //    response.SetFailed("登录名已存在");
                //    return Ok(response);
                //}
                if (model.UserIdCard != null && model.UserIdCard != "")
                {
                    if (_dbContext.SystemUser.Count(x => x.UserIdCard == model.UserIdCard) > 0)
                    {
                        response.SetFailed("身份证号已存在");
                        return(Ok(response));
                    }
                }
                if (model.SystemRoleUuid == null && model.SystemRoleUuid.ToString() == "")
                {
                    response.SetFailed("请选择角色");
                    return(Ok(response));
                }

                if (ConfigurationManager.HaikanPassport_IfUse)
                {
                    bool checkregister = false;

                    var obj = SyncInformation.CheckUserName(model.LoginName);
                    if (int.Parse(obj) > 0)
                    {
                        var cum = SyncInformation.CheckUserMail(model.OldCard);
                        if (int.Parse(cum) > 0)
                        {
                            //var cur = SyncInformation.CheckUserRegister(model.LoginName, model.OldCard);
                            var ru = SyncInformation.RegisterUser(model.LoginName, model.PassWord.Trim(), model.OldCard);
                            if (ru == "999")
                            {
                                checkregister = true;
                            }
                            else
                            {
                                if (ru == "-888")
                                {
                                    response.SetFailed("系统禁止注册中文用户名");
                                    return(Ok(response));
                                }
                                if (ru == "-999")
                                {
                                    response.SetFailed("当前禁止注册新用户");
                                    return(Ok(response));
                                }
                            }
                        }
                        else
                        {
                            if (cum == "-4")
                            {
                                response.SetFailed("Email 格式有误");
                                return(Ok(response));
                            }
                            if (cum == "-5")
                            {
                                response.SetFailed("Email 不允许注册");
                                return(Ok(response));
                            }
                            if (cum == "-6")
                            {
                                response.SetFailed("Email 已经被注册");
                                return(Ok(response));
                            }
                        }
                    }
                    else
                    {
                        if (obj == "-1")
                        {
                            response.SetFailed("用户名不合法");
                            return(Ok(response));
                        }
                        if (obj == "-2")
                        {
                            response.SetFailed("用户名包含不允许注册的词语");
                            return(Ok(response));
                        }
                        if (obj == "-3")
                        {
                            response.SetFailed("用户名已经存在");
                            return(Ok(response));
                        }
                    }
                    if (!checkregister)
                    {
                        response.SetFailed("用户统一身份注册失败");
                        return(Ok(response));
                    }
                }



                var entity = _mapper.Map <UserCreateViewModel, SystemUser>(model);
                entity.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                entity.SystemUserUuid = Guid.NewGuid();
                entity.IsDeleted      = 0;
                entity.LoginName      = model.LoginName;
                entity.RealName       = model.RealName;
                //entity.PassWord = Haikan3.Utils.DesEncrypt.Encrypt(model.PassWord.Trim(), MdDesEncrypt.SecretKey);
                entity.PassWord       = Security.GenerateMD5(model.PassWord.Trim());
                entity.SystemRoleUuid = model.SystemRoleUuid.ToString();
                entity.UserIdCard     = model.UserIdCard;
                entity.OldCard        = model.OldCard;
                var rolename = _dbContext.SystemRole.FirstOrDefault(x => x.RoleName == "超级管理员");
                if (model.SystemRoleUuid.ToString().Contains(rolename.SystemRoleUuid.ToString()))
                {
                    entity.UserType = 0;
                }
                else
                {
                    entity.UserType = 2;
                }
                _dbContext.SystemUser.Add(entity);
                _dbContext.SaveChanges();


                //entity.SystemRoleUuid = "";
                //entity.PassWord = Haikan3.Utils.DesEncrypt.Encrypt(model.PassWord.Trim(), MdDesEncrypt.SecretKey);
                //for (int i = 0; i < model.SystemRoleUuid.Count; i++)
                //{
                //    entity.SystemRoleUuid += model.SystemRoleUuid[i] + ",";
                //}
                //entity.SystemRoleUuid = entity.SystemRoleUuid.TrimEnd(',');
                //entity.OldCard = model.OldCard;
                //entity.Phone = model.Phone;
                //_dbContext.SystemUser.Add(entity);
                //_dbContext.SaveChanges();

                _dbContext.Database.ExecuteSqlCommand("DELETE FROM SystemUserRoleMapping WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                var success = true;
                if (model.SystemRoleUuid != null)
                {
                    var roles = new SystemUserRoleMapping();
                    roles.SystemUserUuid = entity.SystemUserUuid;
                    roles.SystemRoleUuid = model.SystemRoleUuid.Value;
                    roles.AddTime        = DateTime.Now.ToString("yyyy-MM-dd");
                    roles.AddPeople      = AuthContextService.CurrentUser.DisplayName;

                    _dbContext.SystemUserRoleMapping.Add(roles);
                }
                success = _dbContext.SaveChanges() > 0;
                if (success)
                {
                    response.SetSuccess();
                }
                else
                {
                    _dbContext.Database.ExecuteSqlCommand("DELETE FROM SystemUser WHERE SystemUserUUID={0}", entity.SystemUserUuid);
                    response.SetFailed("保存用户角色数据失败");
                }
                return(Ok(response));
            }
        }