Procházet zdrojové kódy

1.系统用户更新,根据教育身份动态处理关联角色
2.系统关联表加入新删除方法

honorfire před 6 měsíci
rodič
revize
1796dbd04e

+ 2 - 0
snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/relation/service/SysRelationService.java

@@ -216,4 +216,6 @@ public interface SysRelationService extends IService<SysRelation> {
      * @date 2022/4/27 22:08
      */
     List<String> getRelationObjectIdListByTargetIdListAndCategory(List<String> targetIdList, String category);
+
+    void deleteByIds(List<String> idList);
 }

+ 7 - 0
snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/relation/service/impl/SysRelationServiceImpl.java

@@ -215,4 +215,11 @@ public class SysRelationServiceImpl extends ServiceImpl<SysRelationMapper, SysRe
         return this.getRelationListByTargetIdListAndCategory(targetIdList, category).stream()
                 .map(SysRelation::getObjectId).collect(Collectors.toList());
     }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void deleteByIds(List<String> idList)
+    {
+        this.removeByIds(idList);
+    }
 }

+ 11 - 0
snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/user/service/impl/SysUserServiceImpl.java

@@ -478,6 +478,17 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 roleId = "103";
             }
         }
+        //清理旧的教育身份角色
+        List<String> eduIdentityRoleList=new ArrayList();
+        eduIdentityRoleList.add("102");
+        eduIdentityRoleList.add("103");
+        QueryWrapper<SysRelation> alreadyRelationWrapper=new QueryWrapper<>();
+        alreadyRelationWrapper.lambda().eq(SysRelation::getObjectId, sysUser.getId());
+        alreadyRelationWrapper.lambda().in(SysRelation::getTargetId, eduIdentityRoleList);
+        alreadyRelationWrapper.lambda().eq(SysRelation::getCategory, SysRelationCategoryEnum.SYS_USER_HAS_ROLE.getValue());
+        List<SysRelation> alreadyRelationList=sysRelationService.list(alreadyRelationWrapper);
+        List relationIdList=CollStreamUtil.toList(alreadyRelationList, SysRelation::getId);
+        sysRelationService.deleteByIds(relationIdList);
         sysRelationService.saveRelationWithAppend(sysUser.getId(),roleId,SysRelationCategoryEnum.SYS_USER_HAS_ROLE.getValue());
 
         BeanUtil.copyProperties(sysUserEditParam, sysUser);