Procházet zdrojové kódy

日志管理相关代码提交

songxinlu před 3 roky
rodič
revize
73727412b3

+ 25 - 4
src/main/java/com/diagbot/aop/LogAspect.java

@@ -9,6 +9,7 @@ import com.diagbot.dto.QcCasesDTO;
 import com.diagbot.dto.QcCasesEntryHospitalDTO;
 import com.diagbot.dto.SysLoginLogDTO;
 import com.diagbot.dto.SysOperationLogDTO;
+import com.diagbot.dto.SysRoleDTO;
 import com.diagbot.entity.QcType;
 import com.diagbot.dto.SysUserRoleDTO;
 import com.diagbot.entity.SysHospitalSet;
@@ -51,6 +52,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description:日志记录处理
@@ -359,12 +361,31 @@ public class LogAspect {
                     }
                     break;
                 case "/sys/user/editUserRoles"://修改用户角色
-                    Object[] args4 = joinPoint.getArgs();
-                    if (null != args4 && args4.length >= 0) {
+                    if (null != args && args.length >= 0) {
                         //通过id获取角色信息
-                        if (args4[0] instanceof SysUserRoleVO) {
-                            SysUserRoleVO sysUserRoleVO = (SysUserRoleVO) args4[0];
+                        if (args[0] instanceof SysUserRoleVO) {
+                            SysUserRoleVO sysUserRoleVO = (SysUserRoleVO) args[0];
                             SysUserRoleDTO sysUserRoleDTO = operationLogFacade.editUserRoles(sysUserRoleVO.getUserId());
+                            SysUser sysUser = operationLogFacade.getSysUser(sysUserRoleVO.getUserId());
+                            compareTwoClass(sysUser, sysUserRoleVO.getUserId(), outMap);
+                            if(ListUtil.isNotEmpty(sysUserRoleDTO.getSelRoles())){
+                                if(ListUtil.isNotEmpty(sysUserRoleVO.getRoleIds())){
+                                    List<Long> oldRoleIds = sysUserRoleDTO.getSelRoles().stream().map(SysRoleDTO::getId).collect(Collectors.toList());
+                                    List<Long> temp = new ArrayList<>(sysUserRoleVO.getRoleIds());
+                                    temp.removeAll(oldRoleIds);
+                                    if(ListUtil.isNotEmpty(temp)){//角色被改动
+                                        List<SysRole> roles = operationLogFacade.getSysUserRoles(sysUserRoleVO.getRoleIds());
+                                        outMap.put("#roles",roles.stream().map(SysRole::getName).collect(Collectors.joining(",")));
+                                    }
+                                }else {
+                                    outMap.put("#roles","空");
+                                }
+                            }else {
+                                if(ListUtil.isNotEmpty(sysUserRoleVO.getRoleIds())){//角色被改动
+                                    List<SysRole> roles = operationLogFacade.getSysUserRoles(sysUserRoleVO.getRoleIds());
+                                    outMap.put("#roles",roles.stream().map(SysRole::getName).collect(Collectors.joining(",")));
+                                }
+                            }
                             compareTwoClass(sysUserRoleDTO, sysUserRoleVO, outMap);
                         }
                     }

+ 6 - 0
src/main/java/com/diagbot/facade/OperationLogFacade.java

@@ -17,6 +17,8 @@ import com.diagbot.vo.SysUserBaseVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 
 /**
  * @Description:操作日志处理类
@@ -71,4 +73,8 @@ public class OperationLogFacade extends SysOperationLogServiceImpl {
     public QcType getQCTypeById(Object id) {
         return qcTypeFacade.getOne(new QueryWrapper<QcType>().eq("id",id));
     }
+
+    public List<SysRole> getSysUserRoles(List<Long> roleIds) {
+        return sysRoleFacade.list(new QueryWrapper<SysRole>().in("id",roleIds).eq("is_deleted", IsDeleteEnum.N.getKey()));
+    }
 }