webfuture 16.* 用户导入到指定用户分组的一些问题处理

来源:本站原创 点击数: 次 发布时间:2026年09月24日

webfuture 16.* 系统在后台导入用户数据的时候,下载的导入表单是没有对应的用户组字段的,导入用户是不属于任何组,要将指定用户归纳到对应用户组还需要做出相应的处理。
1,在网站后台手动操作,选择对应的用户数据批量设置到指定用户组(适用少量用户数据)
2,去到数据库里面处理(用户数据量大,在后台操作费时费力)

下面我们介绍一下数据库里面的处理过程
主要涉及以下3个表数据的更新与变动,操作之前务必备份好当前数据库

  • PE_Common_User:用户主表,Id 是用户 ID

  • PE_Common_UserGroup:用户组表,存储当前系统所有组

  • PE_Common_UserUserGroup:用户 - 用户组中间表,存储用户和所属用户组的关联关系


1,用户-用户组表数据库更新操作

首先在PE_Common_UserGroup查看对应的用户,如图:

#比如,我需要将导入的用户归纳到UserGroupId为2的用户组,那么我们执行下面SQL语句:

INSERT INTO PE_Common_UserUserGroup (UserId, UserGroupId)
SELECT u.Id, 2
FROM PE_Common_User u
WHERE NOT EXISTS (
    SELECT 1
    FROM PE_Common_UserUserGroup uug
    WHERE uug.UserId = u.Id
);

#经过上面的SQL语句,给还没有任何用户组关联记录的所有用户,批量加入 ID=2 的用户组。用户与组之间确立了关联关系,对应的用户归纳到了员工用户组

#但是此步骤操作,直接在数据库里面修改触发了密码的保全机制,被更改的用户在网站前台无法登录。


2,密码批量重置处理

步骤 1:重置单个用户密码,获取哈希
  1. 在系统后台,随便选 1 个用户(例如Id=100),重置密码(设置成你统一要用的密码,比如Abc@123456),保存。

  2. 执行查询,复制这两个字段的值:

SELECT Id,PasswordHash,PasswordHashSM3 
FROM PE_Common_User 
WHERE Id=100; --换成你刚才重置密码的用户ID

拿到结果:PasswordHash='xxxx',PasswordHashSM3='yyyy',保存好字符串,注意不要丢单引号

步骤 2:批量更新一批用户密码哈希

把上面拿到的值替换下面'xxxx'和'yyyy';Id范围按需修改。

UPDATE PE_Common_User 
SET PasswordHash = 'xxxx',
    PasswordHashSM3 = 'yyyy'
WHERE Id < 790 AND Id > 0; --这里修改用户Id的上下限,根据实际的范围调整

✅ 建议先 SELECT 验证要更新的用户数量,防止误改:

SELECT COUNT(*),Id FROM PE_Common_User WHERE Id < 790 AND Id > 0;

步骤 3:后台操作

执行完上面 UPDATE 语句之后,在系统后台运维中心,用户管理点击【更新所有用户 hash 值】(系统内置功能,用于同步 / 刷新另一套密码校验逻辑)


至此,完成。用户数据批量设置到员工用户组,并重置了密码为Abc@123456