/// <summary>
        ///
        /// </summary>
        /// <param name="passwordDto"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        public int UpdatePassword(UserUpdatePasswordNewDto passwordDto, string userId)
        {
            PagedList <UserInfoDto> pagedList = GetUsersOfInfo(new UserQueryPageDto
            {
                UserQuery = new UserQueryDto
                {
                    Id       = userId,
                    Password = passwordDto.OldPassword,
                    State    = 1
                },
                Page = 1,
                Size = 1
            });

            if (pagedList.Total == 0)
            {
                return(-1);
            }
            TUserUpdatePassword updatePassword = new TUserUpdatePassword {
                Id         = userId,
                Password   = StringManage.EncryptPassword(passwordDto.NewPassword),
                UpdateTime = DateTime.Now
            };

            return(IocUnity.Get <RepositoryUser>().Update(updatePassword));
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="userQueryDto"></param>
        /// <returns></returns>
        public PagedList <UserInfoDto> GetUsersOfInfo(UserQueryPageDto userQueryDto)
        {
            var    q        = Dynamic.Core.Runtime.SerializationUtility.ObjectToJson(userQueryDto);
            string password = userQueryDto.UserQuery.Password;

            if (userQueryDto.UserQuery.Password != null)
            {
                userQueryDto.UserQuery.Password = StringManage.EncryptPassword(password);
            }
            int?userType = userQueryDto.UserQuery.UserType;

            userQueryDto.UserQuery.UserType = null;
            var data = IocUnity.Get <RepositoryUser>().QueryInfo(userQueryDto.UserQuery, userQueryDto.Page, userQueryDto.Size);
            var d    = Dynamic.Core.Runtime.SerializationUtility.ObjectToJson(data);

            if (userQueryDto.UserQuery.Password != null && data.DataList.Count == 0)
            {
                userQueryDto.UserQuery.Password = SecurityHelper.Md5(password);
                data = IocUnity.Get <RepositoryUser>().QueryInfo(userQueryDto.UserQuery, userQueryDto.Page, userQueryDto.Size);
            }
            if (userQueryDto.UserQuery.Password != null && data.DataList.Count == 0)
            {
                userQueryDto.UserQuery.Password = SecurityHelper.Encrypt(password);
                data = IocUnity.Get <RepositoryUser>().QueryInfo(userQueryDto.UserQuery, userQueryDto.Page, userQueryDto.Size);
            }
            if (userType != null && (userType == (int)UserTypeEnum.Factory || userType == (int)UserTypeEnum.Dealer) && data.DataList != null && data.DataList.Count == 1)
            {
                IocUnity.Get <RepositoryUser>().VerifyUser(data.DataList[0].Id, (int)userType);
            }
            return(data);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="passwordDto"></param>
        /// <returns></returns>
        public int UpdatePassword(UserUpdatePasswordDto passwordDto)
        {
            TUserUpdatePassword updatePassword = passwordDto.MapTo <TUserUpdatePassword>();

            updatePassword.Id         = passwordDto.UserId;
            updatePassword.UpdateTime = DateTime.Now;
            updatePassword.Password   = StringManage.EncryptPassword(updatePassword.Password);
            return(IocUnity.Get <RepositoryUser>().Update(updatePassword));
        }
        /// <summary>
        /// 添加用户
        /// </summary>
        /// <param name="vUser">用户信息</param>
        /// <returns></returns>
        public string AddUser(UserAddDto vUser)
        {
            vUser = StringManage.EmptyStringSetNull(vUser);
            if (vUser.Password != null && !vUser.IsNoEncryptPassword)
            {
                vUser.Password = StringManage.EncryptPassword(vUser.Password);
            }
            if (vUser.UserType == 1)
            {
                vUser.OrganizationIds = new List <UserPositionDto>();
                vUser.OrganizationIds.Add(new UserPositionDto
                {
                    OrganizationId   = IocUnity.Get <RepositoryOrganization>().GetOrganizationId("非机构", vUser.SystemCode, "APP"),
                    OrganizationName = "APP"
                });
            }
            else if (vUser.UserType == 2 || vUser.UserType == 4)
            {
                vUser.OrganizationIds = new List <UserPositionDto>();
                vUser.OrganizationIds.Add(new UserPositionDto
                {
                    OrganizationId   = IocUnity.Get <RepositoryOrganization>().GetOrganizationId("非机构", vUser.SystemCode, "微信"),
                    OrganizationName = "微信"
                });
            }
            else if (vUser.UserType == 3)
            {
                vUser.OrganizationIds = new List <UserPositionDto>();
                vUser.OrganizationIds.Add(new UserPositionDto
                {
                    OrganizationId   = IocUnity.Get <RepositoryOrganization>().GetOrganizationId("非机构", vUser.SystemCode, "QQ"),
                    OrganizationName = "QQ"
                });
            }

            vUser.OrganizationIds = CompleteUserPositionDto(vUser.OrganizationIds);
            TUser user = AutoMapperExtensions.MapTo <TUser>(vUser);
            Dictionary <string, object> keyValuePairs = new Dictionary <string, object>();

            if (vUser.ExtendAttribution != null)
            {
                foreach (KeyValueItem keyValue in vUser.ExtendAttribution)
                {
                    keyValuePairs.Add(keyValue.Key, keyValue.Value);
                }
            }
            user.ExtendAttribution = SerializationUtility.ObjectToJson(keyValuePairs);
            if (string.IsNullOrEmpty(user.Id))
            {
                user.Id = IdentityHelper.NewSequentialGuid().ToString("N");
            }
            if (string.IsNullOrEmpty(user.SystemId) && !string.IsNullOrEmpty(user.SystemCode))
            {
                user.SystemId = IocUnity.Get <RepositorySystem>().GetId(user.SystemCode);
            }
            if (!string.IsNullOrEmpty(user.SystemId) && string.IsNullOrEmpty(user.SystemCode))
            {
                user.SystemCode = IocUnity.Get <RepositorySystem>().GetCode(user.SystemId);
            }
            IList <TRelationUserOrganization> relationUserPositions = new List <TRelationUserOrganization>();

            if (vUser.OrganizationIds != null)
            {
                foreach (UserPositionDto od in vUser.OrganizationIds)
                {
                    TRelationUserOrganization relationUserOrganization = AutoMapperExtensions.MapTo <TRelationUserOrganization>(od);
                    relationUserOrganization.Id     = IdentityHelper.NewSequentialGuid().ToString("N");
                    relationUserOrganization.UserId = user.Id;
                    if (!string.IsNullOrEmpty(relationUserOrganization.OrganizationId) && !string.IsNullOrEmpty(relationUserOrganization.DepartmentId) && !string.IsNullOrEmpty(relationUserOrganization.PositionId))
                    {
                        relationUserOrganization.OrganizationIdO = relationUserOrganization.PositionId;
                    }
                    else if (!string.IsNullOrEmpty(relationUserOrganization.OrganizationId) && !string.IsNullOrEmpty(relationUserOrganization.DepartmentId) && string.IsNullOrEmpty(relationUserOrganization.PositionId))
                    {
                        relationUserOrganization.OrganizationIdO = relationUserOrganization.DepartmentId;
                    }
                    else if (!string.IsNullOrEmpty(relationUserOrganization.OrganizationId) && string.IsNullOrEmpty(relationUserOrganization.DepartmentId) && string.IsNullOrEmpty(relationUserOrganization.PositionId))
                    {
                        relationUserOrganization.OrganizationIdO = relationUserOrganization.OrganizationId;
                    }
                    else if (!string.IsNullOrEmpty(relationUserOrganization.OrganizationId) && string.IsNullOrEmpty(relationUserOrganization.DepartmentId) && !string.IsNullOrEmpty(relationUserOrganization.PositionId))
                    {
                        relationUserOrganization.OrganizationIdO = relationUserOrganization.PositionId;
                    }
                    relationUserPositions.Add(relationUserOrganization);
                }
            }
            IocUnity.Get <RepositoryUser>().DapperRepository.ExcuteTransaction(tranc =>
            {
                IocUnity.Get <RepositoryUser>().Insert(user);
                IocUnity.Get <RepositoryRelationUserOrganization>().Insert(relationUserPositions);
            });
            return(user.Id);
        }