系统设计导致数据不一致

Blade 未结 1 600
yangfei
yangfei 剑者 2022-08-20 00:07

一、该问题的重现步骤是什么?

1. 新建用户时选择多个部门,比如部门id为1 , 2

2. 新建业务数据,插入数据,调用baseService中save方法

3.

新增部分代码:

(entity) {
    .resolveEntity(entity).save(entity)}


(entity) {
    {
        BladeUser user = AuthUtil.()Date now = DateUtil.()(entity.getId() == ) {
            (user != ) {
                entity.setCreateUser(user.getUserId())entity.setCreateDept(Func.(user.getDeptId()))entity.setUpdateUser(user.getUserId())}

            (entity.getStatus() == ) {
                entity.setStatus()}

            entity.setCreateTime(now)} (user != ) {
            entity.setUpdateUser(user.getUserId())}

数据权限部分代码:

(DataScopeEnum.== scopeTypeEnum) {
   ids.addAll(Func.(bladeUser.getDeptId()))

关键代码为:

entity.setCreateDept(Func.firstLong(user.getDeptId()));

这里给业务数据自设置了一个部门id,数据权限那块设置的本部门可见类型数据权限,那么业务数据在当前用户为多个部门时会缺失某些部门的数据

二、你期待的结果是什么?实际看到的又是什么?

用户可以设置多部门,业务权限如果设置本部门可见,业务数据就应该显示多个部门的数据,然而并不是。

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladex 2.9


1条回答
  • 你这种情况就需要自定义数据权限。

    0}P8$E[6D`Y0O(W){TMI_NQ.png

    0 讨论(0)
提交回复