Browse Source

解决数据隔离bug

oyq28 3 years ago
parent
commit
4e6782a1f8

+ 1 - 0
imcs-admin-boot/imcs-authority-controller/src/main/java/com/github/zuihou/authority/controller/common/LoginLogController.java

@@ -53,6 +53,7 @@ public class LoginLogController extends SuperController<LoginLogService, Long, L
                 // 忽略 Wraps.q(model); 时, account  和 requestIp 字段的默认查询规则,
                 .ignore(LoginLog::setAccount)
                 .ignore(LoginLog::setRequestIp)
+                .ne(LoginLog::getUserName, "平台超管")
                 // 使用 自定义的查询规则
                 .likeRight(LoginLog::getAccount, model.getAccount())
                 .likeRight(LoginLog::getRequestIp, model.getRequestIp());

+ 24 - 5
imcs-admin-boot/imcs-authority-controller/src/main/java/com/github/zuihou/authority/controller/common/OptLogController.java

@@ -1,6 +1,7 @@
 package com.github.zuihou.authority.controller.common;
 
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.zuihou.authority.dto.common.OptLogUpdateDTO;
 import com.github.zuihou.authority.entity.common.OptLog;
@@ -8,9 +9,14 @@ import com.github.zuihou.authority.service.common.OptLogService;
 import com.github.zuihou.base.R;
 import com.github.zuihou.base.controller.SuperController;
 import com.github.zuihou.base.request.PageParams;
+import com.github.zuihou.database.mybatis.conditions.query.LbqWrapper;
+import com.github.zuihou.database.mybatis.conditions.query.QueryWrap;
 import com.github.zuihou.log.annotation.SysLog;
 import com.github.zuihou.log.entity.OptLogDTO;
 import com.github.zuihou.security.annotation.PreAuth;
+import com.github.zuihou.tenant.dto.InterfaceModulePageDTO;
+import com.github.zuihou.tenant.entity.InterfaceModule;
+import com.github.zuihou.tenant.entity.Productionresource;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -36,14 +42,27 @@ import java.time.LocalDateTime;
 @PreAuth(replace = "optLog:")
 public class OptLogController extends SuperController<OptLogService, Long, OptLog, OptLog, OptLogDTO, OptLogUpdateDTO> {
 
+//    @Override
+//    @ApiOperation(value = "分页列表查询")
+//    @PostMapping(value = "/page")
+//    @PreAuth("hasPermit('{}view')")
+//    public R<IPage<OptLog>> page(@RequestBody @Validated PageParams<OptLog> params) {
+//        return super.page(params);
+//    }
+
     @Override
-    @ApiOperation(value = "分页列表查询")
-    @PostMapping(value = "/page")
-    @PreAuth("hasPermit('{}view')")
-    public R<IPage<OptLog>> page(@RequestBody @Validated PageParams<OptLog> params) {
-        return super.page(params);
+    public void query(PageParams<OptLog> params, IPage<OptLog> page, Long defSize){
+        OptLog optLog = params.getModel();
+        QueryWrap<OptLog> wrap = handlerWrapper(null, params);
+        LbqWrapper<OptLog> wrapper = wrap.lambda();
+        wrapper.ne(OptLog::getUserName, "平台超管").like(OptLog::getUserName, optLog.getUserName())
+                .like(OptLog::getRequestIp, optLog.getRequestIp()).geHeader(OptLog::getCreateTime, optLog.getCreateTime_st())
+                .leFooter(OptLog::getCreateTime, optLog.getCreateTime_ed());
+
+        this.baseService.page(page, wrapper);
     }
 
+
     @ApiOperation("清空日志")
     @DeleteMapping("clear")
     @SysLog("清空日志")

+ 9 - 0
imcs-admin-boot/imcs-authority-entity/src/main/java/com/github/zuihou/authority/entity/common/OptLog.java

@@ -176,6 +176,15 @@ public class OptLog extends SuperEntity<Long> {
     private String ua;
 
 
+    @ApiModelProperty(value = "开始创建时间")
+    @TableField(exist = false)
+    private LocalDateTime createTime_st;
+
+    @ApiModelProperty(value = "截止创建时间")
+    @TableField(exist = false)
+    private LocalDateTime createTime_ed;
+
+
     @Builder
     public OptLog(Long id, LocalDateTime createTime, Long createUser,
                   String requestIp, LogType type, String userName, String description, String classPath,

+ 20 - 15
imcs-admin-boot/imcs-authority-server/src/main/java/com/github/zuihou/job/DashboardJob.java

@@ -33,13 +33,17 @@ import com.github.zuihou.database.mybatis.auth.DataScope;
 import com.github.zuihou.database.mybatis.conditions.Wraps;
 import com.github.zuihou.database.mybatis.conditions.query.LbqWrapper;
 import com.github.zuihou.database.mybatis.conditions.query.QueryWrap;
+import com.github.zuihou.exception.BizException;
+import com.github.zuihou.exception.code.ExceptionCode;
 import com.github.zuihou.jwt.utils.JwtUtil;
 import com.github.zuihou.security.model.SysUser;
+import com.github.zuihou.utils.Charsets;
 import com.github.zuihou.utils.DateUtils;
 import com.google.common.collect.Maps;
 import io.jsonwebtoken.Claims;
+import io.jsonwebtoken.ExpiredJwtException;
+import io.jsonwebtoken.Jwts;
 import org.apache.commons.lang3.StringUtils;
-import org.apache.cxf.security.claims.authorization.Claim;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.MDC;
@@ -100,25 +104,12 @@ public class DashboardJob {
         BaseContextHandler.setTenant("0000");
 
         List<String> userIds = webSocketServer.getUserIds();
-        //List<Session> sessions = webSocketServer.getSessions();
         userIds.forEach(item->{
             List<Session> sessions = webSocketServer.getSessions(item);
-            String userid = JwtUtil.parseJWT(item).get("userid").toString();
+            String userid = this.parseJWT(item).get("userid").toString();
             this.broadCastData(userid, sessions);
             //webSocketServer.BroadCastInfo(pushMsg, sessions);
         });
-
-            //logger.info("推送前端======"+pushMsg);
-            //webSocketServer.BroadCastInfo(pushMsg);
-            //更新推送状态
-//            if(CollectionUtil.isNotEmpty(warnData.getRecords())) {
-//                Long[] ids = warnData.getRecords().stream().map(item -> {
-//                    return item.getId();
-//                }).toArray(Long[]::new);
-//                UpdateWrapper<AAutoNodeLog> updateWrapper = new UpdateWrapper<AAutoNodeLog>();
-//                updateWrapper.lambda().set(AAutoNodeLog::getSendStatus, "1").in(AAutoNodeLog::getId, ids);
-//                autoNodeLogService.update(null, updateWrapper);
-//            }
     }
 
     private void broadCastData(String userid, List<Session> sessions){
@@ -211,6 +202,20 @@ public class DashboardJob {
         }
     }
 
+    private Claims parseJWT(String token){
+        Claims claims = null;
+        try {
+            claims = Jwts.parserBuilder()
+                    .setSigningKey(Base64.getDecoder().decode(BaseContextConstants.JWT_SIGN_KEY)) // 设置标识名
+                    .build()
+                    .parseClaimsJws(token)  //解析token
+                    .getBody();
+        } catch (ExpiredJwtException e) {
+            claims = e.getClaims();
+        }
+        return claims;
+    }
+
 
     private  QueryWrap handlerWrapper(Object model, PageParams params) {
         QueryWrap wrapper = model == null ? Wraps.q() : Wraps.q(model);