Explorar o código

解决 待办某些时候查询 报错的问题

zhulu hai 10 meses
pai
achega
7942327c33

+ 5 - 5
soc-auth/src/main/java/com/xunmei/auth/service/FJNXLoginService.java

@@ -264,14 +264,14 @@ public class FJNXLoginService{
 
         //10100000	登录失败,账号或密码错误	密码错误,密码未送
         //10100003	登录失败,账号或密码错误	用户不存在
-        if("10100000".equals(code) || "10100003".equals(code))
-        {
-            throw new ServiceException("登录失败,账号或密码错误");
-        }
+//        if("10100000".equals(code) || "10100003".equals(code))
+//        {
+//            throw new ServiceException("登录失败,账号或密码错误");
+//        }
         //10200001	登录失败,请到统一运营门户输入账号完成维护	用户状态未启用
         //10300008	登录失败,请到统一运营门户输入账号完成维护	超过登录尝试次数用户状态禁用
         //10200004	登录失败,请到统一运营门户输入账号完成维护	密码太久未修改
-        else if("10200001".equals(code)||  "10200004".equals(code) || "10300008".equals(code) ){
+        if("10200001".equals(code)||  "10200004".equals(code) || "10300008".equals(code) ){
             throw new ServiceException("登录失败,请到统一运营门户输入账号完成维护");
         }
         return  null;

+ 2 - 2
soc-auth/src/main/java/com/xunmei/auth/service/SysLoginService.java

@@ -106,8 +106,8 @@ public class SysLoginService {
             }
             // 如果统一门户验证失败, 再走本系统默认密码验证
             catch (Exception e) {
-                // 发现是因为这种错误登录失败,将错误抛出
-                if ("登录失败,账号或密码错误".equals(e.getMessage()) || "登录失败,请到统一运营门户输入账号完成维护".equals(e.getMessage())) {
+                // 发现是因为这种错误登录失败,将错误抛出
+                if ("登录失败,请到统一运营门户输入账号完成维护".equals(e.getMessage())) {
                     throw e;
                 }
                 passwordService.validate(user, password, platformType);

+ 1 - 1
soc-auth/src/main/java/com/xunmei/auth/service/SysPasswordService.java

@@ -62,7 +62,7 @@ public class SysPasswordService
             retryCount = retryCount + 1;
             recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, String.format("密码输入错误%s次", retryCount),platformType);
             RedisUtils.setCacheObject(getCacheKey(username), retryCount, Duration.ofMinutes(lockTime));
-            throw new ServiceException("密码错误");
+            throw new ServiceException("登录失败,账号或密码错误");
         }
         else
         {

+ 3 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/panel/dto/PanelListDto.java

@@ -6,6 +6,7 @@ import lombok.Data;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Set;
 
 @Data
 
@@ -27,4 +28,6 @@ public class PanelListDto {
 
     private Integer orgType;
 
+    private Set<String> permissions;
+
 }

+ 19 - 8
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java

@@ -1365,9 +1365,15 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
     public List<PanelListVo> selectCurUserTaskList(PanelListDto panelListDto) {
 /*        SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() ->
                 orgService.selectSysOrgById(panelListDto.getOrgId(), SecurityConstants.FROM_SOURCE), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);*/
-        SysOrg sysOrg = SecurityUtils.getUserSysOrg();
+       /* SysOrg sysOrg = SecurityUtils.getUserSysOrg();
         panelListDto.setOrgType(sysOrg.getType());
-        panelListDto.setOrgPath(sysOrg.getPath());
+        panelListDto.setOrgPath(sysOrg.getPath());*/
+        //待办获取使用了多线程 新开的线程中 通过SecurityUtils.getUserSysOrg() 获取会是空
+        SysOrg sysOrg =new SysOrg();
+        sysOrg.setType(panelListDto.getOrgType());
+        sysOrg.setId(panelListDto.getOrgId());
+        sysOrg.setPath(panelListDto.getOrgPath());
+
         List<Integer> statusList = new ArrayList<>();
         Collections.addAll(statusList, DrillDoStatus.WAIT_SUBMIT.getCode(),
                 DrillDoStatus.WAIT_RECORDED.getCode(), DrillDoStatus.WAIT_SIGN.getCode());
@@ -1406,14 +1412,19 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
     public List<PanelListVo> selectRecList(PanelListDto panelListDto) {
         /*SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() ->
                 orgService.selectSysOrgById(panelListDto.getOrgId(), SecurityConstants.FROM_SOURCE), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);*/
-        SysOrg sysOrg = SecurityUtils.getUserSysOrg();
-        panelListDto.setOrgType(sysOrg.getType());
-        panelListDto.setOrgPath(sysOrg.getPath());
+          //待办获取使用了多线程 新开的线程中 通过SecurityUtils.getUserSysOrg() 获取会是空
+//        SysOrg sysOrg = SecurityUtils.getUserSysOrg();
+//        panelListDto.setOrgType(sysOrg.getType());
+//        panelListDto.setOrgPath(sysOrg.getPath());
+        SysOrg sysOrg =new SysOrg();
+        sysOrg.setType(panelListDto.getOrgType());
+        sysOrg.setId(panelListDto.getOrgId());
+        sysOrg.setPath(panelListDto.getOrgPath());
         List<PanelListVo> waitRecTaskList = new ArrayList<>();
         //省联社/办事处或行社
-        if (OrgTypeEnum.HANG_SHE.getCode().equals(sysOrg.getType()) ||
-                OrgTypeEnum.BAN_SHI_CHU.getCode().equals(sysOrg.getType()) ||
-                OrgTypeEnum.SHEGN_LIAN_SHE.getCode().equals(sysOrg.getType())) {
+        if (OrgTypeEnum.HANG_SHE.getCode().equals(panelListDto.getOrgType()) ||
+                OrgTypeEnum.BAN_SHI_CHU.getCode().equals(panelListDto.getOrgType()) ||
+                OrgTypeEnum.SHEGN_LIAN_SHE.getCode().equals(panelListDto.getOrgType())) {
 
             //如果演练优秀案例已经达到推荐上限,那么就不再显示推优的代办
             if (!checkRecNum(sysOrg)) {

+ 8 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/panel/controller/PanelController.java

@@ -28,8 +28,14 @@ public class PanelController {
     @ApiOperation(value = "App面板接口")
     //@RequiresPermissions("core:panel:list")
     @GetMapping("/list")
-    public AjaxResult list() throws ExecutionException, InterruptedException, TimeoutException {
-        return AjaxResult.success(panelService.selectPage());
+    public AjaxResult list() throws Exception {
+        try {
+            return AjaxResult.success(panelService.selectPage());
+        }
+        catch (Exception e)
+        {
+           throw new Exception("待办数据查询超时,请稍后再试");
+        }
     }
 
     /**

+ 9 - 4
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/panel/service/impl/PanelServiceImpl.java

@@ -132,6 +132,10 @@ public class PanelServiceImpl implements PanelService {
         if (ObjectUtil.isEmpty(panelListDto.getRoleIdList())) {
             return new ArrayList<>();
         }
+        SysOrg sysOrg = SecurityUtils.getUserSysOrg();
+        panelListDto.setOrgType(sysOrg.getType());
+        panelListDto.setOrgPath(sysOrg.getPath());
+        panelListDto.setPermissions(SecurityUtils.getLoginUser().getPermissions());
 //        List<PanelListVo> panelListVos = resumptionService.selectCurUserTaskList(panelListDto);
 //        List<PanelListVo> panelListVos1 = coreMonitoringRetrievalTaskService.selectCurUserTaskList(panelListDto);
 //        List<PanelListVo> panelListVos2 = iCoreEvaluateTaskService.selectCurUserTaskList(panelListDto);
@@ -292,10 +296,10 @@ public class PanelServiceImpl implements PanelService {
 
     @Override
     public List<WebPanelResult> selectWebData() throws ExecutionException, InterruptedException, TimeoutException {
-        List<Long> roles = RemoteCallHandlerExecutor.executeRemoteCall(
-                () -> roleService.getUserRoleId(SecurityUtils.getUserId(), SecurityConstants.INNER),
-                ErrorMsgConstants.QUERY_USER_ROLE_ERROR);
-
+//        List<Long> roles = RemoteCallHandlerExecutor.executeRemoteCall(
+//                () -> roleService.getUserRoleId(SecurityUtils.getUserId(), SecurityConstants.INNER),
+//                ErrorMsgConstants.QUERY_USER_ROLE_ERROR);
+        List<Long> roles=SecurityUtils.getLoginUser().getSysUser().getRoles().stream().map(x->x.getId()).collect(Collectors.toList());
         List<Long> permList = RemoteCallHandlerExecutor.executeRemoteCall(
                 () -> userService.selectUserRoleMenu(SecurityUtils.getUserId(), SecurityConstants.INNER),
                 ErrorMsgConstants.QUERY_USER_PERMISSION_ERROR);
@@ -306,6 +310,7 @@ public class PanelServiceImpl implements PanelService {
         if (ObjectUtil.isEmpty(req.getRoleIdList()) || ObjectUtil.isEmpty(permList)) {
             return new ArrayList<>();
         }
+        req.setPermissions(SecurityUtils.getLoginUser().getPermissions());
         List<CompletableFuture<WebPanelResult>> list = new ArrayList<>();
         //教育培训
         CompletableFuture<WebPanelResult> eduTrainingTaskFuture = CompletableFuture.supplyAsync(() ->

+ 2 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/question/service/impl/QuestionServiceImpl.java

@@ -436,7 +436,8 @@ public class QuestionServiceImpl extends ServiceImpl<QuestionMapper, Question> i
 //        if (!ObjectUtil.equal(userId, SecurityUtils.getUserId())) {
 //            log.error("用户id不一致:" + userId + "-" + SecurityUtils.getUserId());
 //        }
-        Set<String> permissions = SecurityUtils.getLoginUser().getPermissions();
+        // 待办获取使用了多线程 新开的线程中 通过SecurityUtils.getLoginUser().getPermissions() 获取不到用户信息;将用户信息改成参数输入
+        Set<String> permissions = panelListDto.getPermissions();
         // permissions 包含字符串
 
         /*List<Long> ownPermission = remoteUserService.checkUserPermission(btns, panelListDto.getUserId(), SecurityConstants.INNER);*/