Browse Source

操作日志和登录日志增加数据权限

wangyangyang 4 years ago
parent
commit
d62f5501c8

+ 1 - 1
user_center/src/main/java/com/huaxu/controller/LoginLogController.java

@@ -142,7 +142,7 @@ public class LoginLogController {
         loginLogDto.setTenantId(loginUser.getTenantId());
         loginLogDto.setCondition(condition);
         loginLogDto.setDepartmentId(departmentId);
-
+        loginLogDto.setPermissonType(loginUser.getPermissonType());
         //系统管理员不过滤权限,机构信息为null的去掉
         if((!loginUser.getType().equals("-9999")) && !loginUser.getType().equals("-999")   ){
             loginLogDto.setProgramItems(loginUser.getProgramItemList().stream().filter(p -> p.getOrgId() != null).collect(Collectors.toList()));

+ 1 - 0
user_center/src/main/java/com/huaxu/controller/OperateLogController.java

@@ -137,6 +137,7 @@ public class OperateLogController {
         operateLogDto.setTenantId(loginUser.getTenantId());
         operateLogDto.setCondition(condition);
         operateLogDto.setDepartmentId(departmentId);
+        operateLogDto.setPermissonType(loginUser.getPermissonType());
         //系统管理员不过滤权限,数据为null的去掉
         if((!loginUser.getType().equals("-9999")) && !loginUser.getType().equals("-999")   ){
             operateLogDto.setProgramItems(loginUser.getProgramItemList().stream().filter(p -> p.getOrgId() != null).collect(Collectors.toList()));

+ 6 - 0
user_center/src/main/java/com/huaxu/dto/LoginLogDto.java

@@ -2,6 +2,7 @@ package com.huaxu.dto;
 
 import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.huaxu.entity.LoginLogEntity;
 import com.huaxu.model.ProgramItem;
@@ -45,4 +46,9 @@ public class LoginLogDto extends LoginLogEntity {
     @ApiModelProperty(value ="权限",hidden = true)
     private List<ProgramItem> programItems;
 
+    @ExcelIgnore
+    @ApiModelProperty(value="用户权限类型")
+    @TableField(exist = false)
+    private Integer permissonType;
+
 }

+ 6 - 0
user_center/src/main/java/com/huaxu/dto/OperateLogDto.java

@@ -2,6 +2,7 @@ package com.huaxu.dto;
 
 import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.huaxu.entity.OperateLogEntity;
 import com.huaxu.model.ProgramItem;
@@ -49,4 +50,9 @@ public class OperateLogDto extends OperateLogEntity {
     @ExcelIgnore
     @ApiModelProperty(value ="权限",hidden = true)
     private List<ProgramItem> programItems;
+
+    @ExcelIgnore
+    @ApiModelProperty(value="用户权限类型")
+    @TableField(exist = false)
+    private Integer permissonType;
 }

+ 28 - 12
user_center/src/main/resources/mapper/LoginLogMapper.xml

@@ -172,18 +172,34 @@
                 and a.create_time &lt;= DATE_ADD(#{loginLogDto.endTime},INTERVAL 1 DAY)
             </if>
             <if test="loginLogDto.programItems != null and loginLogDto.programItems.size() > 0">
-                and
-                (com.id in
-                <foreach item="item" index="index" collection="loginLogDto.programItems"
-                         open="(" separator="," close=")">
-                    #{item.orgId}
-                </foreach>
-                or dep.id in
-                <foreach item="item" index="index" collection="loginLogDto.programItems"
-                         open="(" separator="," close=")">
-                    #{item.orgId}
-                </foreach>
-                )
+                <if test="loginLogDto.permissonType == 5 or loginLogDto.permissonType == 2">
+                    and (a.company_id in
+                    <foreach item="item" index="index" collection="loginLogDto.programItems"
+                             open="(" separator="," close=")">
+                        #{item.orgId}
+                    </foreach>
+                    or a.DEPARTMENT_ID in
+                    <foreach item="item" index="index" collection="loginLogDto.programItems"
+                             open="(" separator="," close=")">
+                        #{item.orgId}
+                    </foreach>
+                    )
+                </if>
+                <if test="loginLogDto.permissonType == 4 or loginLogDto.permissonType == 3">
+                    and  a.DEPARTMENT_ID in
+                    <foreach item="item" index="index" collection="loginLogDto.programItems"
+                             open="(" separator="," close=")">
+                        #{item.orgId}
+                    </foreach>
+                </if>
+                <if test="loginLogDto.permissonType == 1">
+                    and a.company_id in
+                    <foreach item="item" index="index" collection="loginLogDto.programItems"
+                             open="(" separator="," close=")">
+                        #{item.orgId}
+                    </foreach>
+                    and (a.DEPARTMENT_ID is null or a.DEPARTMENT_ID=0)
+                </if>
             </if>
         </where>
     </select>

+ 29 - 12
user_center/src/main/resources/mapper/OperateLogMapper.xml

@@ -171,18 +171,35 @@
             </if>
 
             <if test="operateLogDto.programItems != null and operateLogDto.programItems.size() > 0">
-                and
-                (com.id in
-                <foreach item="item" index="index" collection="operateLogDto.programItems"
-                         open="(" separator="," close=")">
-                    #{item.orgId}
-                </foreach>
-                or dep.id in
-                <foreach item="item" index="index" collection="operateLogDto.programItems"
-                         open="(" separator="," close=")">
-                    #{item.orgId}
-                </foreach>
-                )
+
+                    <if test="operateLogDto.permissonType == 5 or operateLogDto.permissonType == 2">
+                        and (a.company_id in
+                        <foreach item="item" index="index" collection="operateLogDto.programItems"
+                                 open="(" separator="," close=")">
+                            #{item.orgId}
+                        </foreach>
+                        or a.DEPARTMENT_ID in
+                        <foreach item="item" index="index" collection="operateLogDto.programItems"
+                                 open="(" separator="," close=")">
+                            #{item.orgId}
+                        </foreach>
+                        )
+                    </if>
+                    <if test="operateLogDto.permissonType == 4 or operateLogDto.permissonType == 3">
+                        and  a.DEPARTMENT_ID in
+                        <foreach item="item" index="index" collection="operateLogDto.programItems"
+                                 open="(" separator="," close=")">
+                            #{item.orgId}
+                        </foreach>
+                    </if>
+                    <if test="operateLogDto.permissonType == 1">
+                        and a.company_id in
+                        <foreach item="item" index="index" collection="operateLogDto.programItems"
+                                 open="(" separator="," close=")">
+                            #{item.orgId}
+                        </foreach>
+                        and (a.DEPARTMENT_ID is null or a.DEPARTMENT_ID=0)
+                    </if>
             </if>
         </where>
     </select>