若依框架支持“非系统用户融入系统业务”

Administrator
Administrator
发布于 2025-05-04 / 11 阅读
0
0

若依框架支持“非系统用户融入系统业务”

若依框架支持通过sys_user表管理非系统用户,但需要结合user_type字段进行扩展设计。以下是具体说明:

一、关于user_type字段的用途

  1. 字段定义
    该字段在sys_user表中定义为varchar(2)类型,默认值为'00',注释为“用户类型(00系统用户)”

    。其核心作用是区分用户身份,例如:

    • 00:系统用户(默认值,用于后台管理员)

    • 01:普通业务用户(如注册会员、外部用户)

    • 02:第三方系统对接用户(如API调用账号)

  2. 业务扩展逻辑
    开发者可通过该字段实现用户分类权限控制。例如:

    • 在数据权限切面(DataScopeAspect)中,根据user_type动态拼接SQL条件

    • 在角色分配时,限制非系统用户只能获取特定角色权限

二、非系统用户的操作支持

  1. 用户表复用可行性
    若依默认的sys_user表支持存储非系统用户,但需注意:

    • 字段扩展性​:可通过添加自定义字段(如会员等级、外部用户标识)满足业务需求

    • 权限隔离​:需在@DataScope注解中配置deptAliasuserAlias,通过部门/用户表关联实现数据隔离

  2. 典型实现方式

    • 角色映射​:为非系统用户创建独立角色(如"external_user"),并在sys_role表中设置data_scope5(仅本人数据权限)

    • 接口扩展​:通过自定义UserDetailsService实现多用户类型认证,结合user_type字段区分登录逻辑

三、注意事项

  1. 数据权限冲突
    若混合使用系统用户和非系统用户,需特别注意:

    • 默认角色sys_admin拥有全数据权限(data_scope=1

    • 非系统用户角色应设置为data_scope=5(仅本人数据)或自定义范围

  2. 代码生成适配
    使用若依代码生成功能时,需在实体类中显式声明user_type字段,并在@DataScope注解中配置关联表别名

建议实现步骤:

  1. sys_user表中扩展user_type枚举值(如新增01为外部用户)

  2. 创建对应的角色并设置data_scope限制

  3. 在业务Service层添加@DataScope(deptAlias="d", userAlias="u")注解

  4. 在MyBatis的XML映射文件中添加${params.dataScope}条件

通过以上配置,可实现在同一用户表中区分系统用户与非系统用户,并保障数据权限隔离。若需更彻底隔离,可参考若依的多用户表登录方案


评论