Переглянути джерело

web首页代办查询逻辑修改

jingyuanchao 1 рік тому
батько
коміт
8d97bc9a8c

+ 3 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteUserService.java

@@ -90,4 +90,7 @@ public interface RemoteUserService {
      */
     @PostMapping("/user/checkuserpermission")
     List<Long> checkUserPermission(@RequestParam("menuIds") List<Long> menuIds,@RequestParam("userId") Long userId ,@RequestHeader(SecurityConstants.FROM_SOURCE)  String source);
+
+    @GetMapping("/user/selectUserRoleMenu")
+    List<Long> selectUserRoleMenu(@RequestParam("userId")Long userId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
 }

+ 5 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteUserFallbackFactory.java

@@ -82,6 +82,11 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
             public List<Long> checkUserPermission(@RequestParam("menuIds") List<Long> menuIds,Long userId, @RequestHeader(SecurityConstants.FROM_SOURCE) String source) {
                 return new ArrayList<>();
             }
+
+            @Override
+            public List<Long> selectUserRoleMenu(Long userId, String fromSource) {
+                return null;
+            }
         };
     }
 }

+ 1 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/constant/ErrorMsgConstants.java

@@ -19,4 +19,5 @@ public class ErrorMsgConstants {
     public static final String QUERY_USER_ROLE_ERROR = "获取当前用户角色信息失败!";
     public static final String QUERY_SYS_CONFIG_ERROR = "获取参数配置信息失败!";
     public static final String QUERY_CONFIG_ERROR = "获取系统参数配置失败!";
+    public static final String QUERY_USER_PERMISSION_ERROR = "获取用户权限失败!";
 }

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

@@ -1,5 +1,6 @@
 package com.xunmei.common.core.domain.panel.dto;
 
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Builder;
 import lombok.Data;
 
@@ -9,12 +10,17 @@ import java.util.List;
 @Data
 
 public class PanelListDto {
-
+    @ApiModelProperty(value = "当前用户id")
     private Long userId;
+    @ApiModelProperty(value = "当前用户机构id")
     private Long orgId;
+    @ApiModelProperty(value = "当前用户机构path")
     private String orgPath;
+    @ApiModelProperty(value = "当前用户角色id数组")
     private List<Long> roleIdList;
-    private List<Integer> statusList;
+    @ApiModelProperty(value = "当前用户菜单权限id")
+    private List<Long> permList;
+
     private Date startTime;
     private Date endTime;
 

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

@@ -1066,11 +1066,11 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
     public WebPanelResult selectWebIndexData(PanelListDto req) {
         final int count = coreDrillTaskMapper.selectCount(new LambdaQueryWrapper<CoreDrillTask>()
                 .eq(CoreDrillTask::getOrgId, req.getOrgId())
-                .eq(CoreDrillTask::getStatus,DrillDoStatus.WAIT_RECORDED.getCode())).intValue();
+                .in(CoreDrillTask::getStatus, Arrays.asList(DrillDoStatus.WAIT_RECORDED.getCode(),DrillDoStatus.WAIT_SUBMIT.getCode()))).intValue();
         return WebPanelResult
                 .builder()
                 .status(DrillDoStatus.WAIT_RECORDED.getCode())
-                .statusText(DrillDoStatus.WAIT_RECORDED.getName())
+                .statusText("待完成")
                 .taskType(PanelTypeEnums.DRILL.ordinal())
                 .taskTypeText(PanelTypeEnums.DRILL.getName())
                 .nums(count).build();

+ 3 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java

@@ -900,11 +900,12 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
     public WebPanelResult selectWebIndexData(PanelListDto req) {
         final int count = coreEduTrainingTaskMapper.selectCount(new LambdaQueryWrapper<CoreEduTrainingTask>()
                 .eq(CoreEduTrainingTask::getOrgId, req.getOrgId())
-                .eq(CoreEduTrainingTask::getStatus, EduTrainingDoStatus.WAIT_RECORDED.getCode())).intValue();
+                .in(CoreEduTrainingTask::getStatus, Arrays.asList(EduTrainingDoStatus.WAIT_RECORDED.getCode(),
+                        EduTrainingDoStatus.WAIT_SUBMIT.getCode()))).intValue();
         return WebPanelResult
                 .builder()
                 .status(EduTrainingDoStatus.WAIT_RECORDED.getCode())
-                .statusText(EduTrainingDoStatus.WAIT_RECORDED.getName())
+                .statusText("待完成")
                 .taskType(PanelTypeEnums.EDU_TRAINING.ordinal())
                 .taskTypeText(PanelTypeEnums.EDU_TRAINING.getName())
                 .nums(count).build();

+ 24 - 18
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/letter/service/impl/CoreIntroduceLetterServiceImpl.java

@@ -29,6 +29,7 @@ import com.xunmei.core.letter.mapper.CoreOutInRecordMapper;
 import com.xunmei.core.letter.service.ICoreIntroduceLetterService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.RemoteRoleService;
+import com.xunmei.system.api.RemoteUserService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.domain.SysRole;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
@@ -58,7 +59,8 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
 
     @Autowired
     private RemoteRoleService roleService;
-
+    @Autowired
+    private RemoteUserService userService;
     @Resource
     private RemoteOrgService orgService;
 
@@ -305,36 +307,40 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
 
     @Override
     public WebPanelResult selectWebIndexData(PanelListDto req) {
+        final WebPanelResult result = WebPanelResult
+                .builder().status(0).statusText(DictUtils.getDictLabel(DictConstants.OUT_IN_APPROVE_STATUS, 0))
+                .taskType(PanelTypeEnums.VISIT_APPROVE.ordinal()).taskTypeText(PanelTypeEnums.VISIT_APPROVE.getName())
+                .nums(0).build();
+
+        final List<Long> menu = userService.selectUserRoleMenu(req.getUserId(), SecurityConstants.INNER);
+        //web端出入审批按钮权限id
+        if (!menu.contains(1722551208603836417L)) {
+            result.setNums(0);
+            return result;
+        }
         final int count = approveLogMapper.selectCount(new LambdaQueryWrapper<CoreIntroduceLetterApproveLog>()
                         .eq(CoreIntroduceLetterApproveLog::getOrgId, req.getOrgId())
                         .eq(CoreIntroduceLetterApproveLog::getApproveStatus, 0))
                 .intValue();
-        return WebPanelResult
-                .builder()
-                .status(0)
-                .statusText(DictUtils.getDictLabel(DictConstants.OUT_IN_APPROVE_STATUS, 0))
-                .taskType(PanelTypeEnums.VISIT_APPROVE.ordinal())
-                .taskTypeText(PanelTypeEnums.VISIT_APPROVE.getName())
-                .nums(count).build();
+        result.setNums(count);
+        return result;
     }
 
     @Override
     public List<PanelListVo> selectToDoApproveListForAPP(PanelListDto panelListDto) {
-        List<PanelListVo> resultList=new ArrayList<>();
+        List<PanelListVo> resultList = new ArrayList<>();
         SysRole role = roleService.getRoleByName("网点负责人", SecurityConstants.INNER);
         // 没有角色
-        if(ObjectUtil.isEmpty( panelListDto.getRoleIdList()))
-        {
+        if (ObjectUtil.isEmpty(panelListDto.getRoleIdList())) {
             return resultList;
         }
         // 没有网点负责人角色
-        if(!panelListDto.getRoleIdList().stream().anyMatch(x->ObjectUtil.equal(x,role.getId())))
-        {
+        if (!panelListDto.getRoleIdList().stream().anyMatch(x -> ObjectUtil.equal(x, role.getId()))) {
             return resultList;
         }
-        CoreIntroduceLetterApproveRequestDto requestDto =new CoreIntroduceLetterApproveRequestDto();
+        CoreIntroduceLetterApproveRequestDto requestDto = new CoreIntroduceLetterApproveRequestDto();
         requestDto.setOrgId(panelListDto.getOrgId());
-        resultList=coreIntroduceLetterMapper.selectToDoApproveListForAPP(requestDto);
+        resultList = coreIntroduceLetterMapper.selectToDoApproveListForAPP(requestDto);
         resultList.forEach(item -> {
             item.setType(PanelTypeEnums.VISIT_APPROVE.getCode());
         });
@@ -408,7 +414,7 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
         oqw.ne(CoreIntroduceLetter::getStatus, 2).eq(CoreIntroduceLetter::getDeleted, 0);
         List<CoreIntroduceLetter> coreIntroduceLetters = coreIntroduceLetterMapper.selectList(oqw);
         List<CoreIntroduceLetter> overdueLettersList = new ArrayList<>();
-        List<CoreIntroduceLetterApproveLog> approveLogs=  new ArrayList<>();
+        List<CoreIntroduceLetterApproveLog> approveLogs = new ArrayList<>();
         if (ObjectUtil.isNotEmpty(coreIntroduceLetters)) {
             Date currentDate = DateUtil.beginOfDay(new Date());
 
@@ -417,7 +423,7 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
                 if (result > 0) {
                     x.setStatus(2);
                     overdueLettersList.add(x);
-                    CoreIntroduceLetterApproveLog approveLog=   new CoreIntroduceLetterApproveLog();
+                    CoreIntroduceLetterApproveLog approveLog = new CoreIntroduceLetterApproveLog();
                     approveLog.setLetterId(x.getId());
                     approveLog.setApproveStatus(3);
                     approveLogs.add(approveLog);
@@ -425,7 +431,7 @@ public class CoreIntroduceLetterServiceImpl extends ServiceImpl<CoreIntroduceLet
             });
         }
         if (ObjectUtil.isNotEmpty(overdueLettersList)) {
-            approveLogs.forEach(x->{
+            approveLogs.forEach(x -> {
                 coreIntroduceLetterMapper.updateApproveLogStatus(x);
             });
             // 批量修改需要修改连接字符串添加 &allowMultiQueries=true

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

@@ -38,6 +38,7 @@ import com.xunmei.core.safetyCheck.service.ICoreSafetyTaskService;
 import com.xunmei.core.thread.ThreadPoolConfig;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.RemoteRoleService;
+import com.xunmei.system.api.RemoteUserService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.function.RemoteCallHandlerExecutor;
 import com.xunmei.system.api.model.LoginUser;
@@ -77,7 +78,8 @@ public class PanelServiceImpl implements PanelService {
 
     @Autowired
     private IQuestionService questionService;
-
+    @Autowired
+    private RemoteUserService userService;
     @Autowired
     private RemoteRoleService roleService;
     @Autowired
@@ -156,7 +158,7 @@ public class PanelServiceImpl implements PanelService {
 
         CompletableFuture<Void> allQueries = CompletableFuture.allOf(
                 resumptionTaskFuture, protectionTaskFuture, monitorTaskFuture, evaluateTaskFuture,
-                safetyTaskFuture, drillTaskFuture, eduTrainingTaskFuture, recLitFuture,questionTaskFuture, letterOutInFuture
+                safetyTaskFuture, drillTaskFuture, eduTrainingTaskFuture, recLitFuture, questionTaskFuture, letterOutInFuture
         );
 
         allQueries.get(TIMEOUT, TimeUnit.SECONDS);
@@ -164,7 +166,7 @@ public class PanelServiceImpl implements PanelService {
         List<PanelListVo> resultList = Stream.of(
                         resumptionTaskFuture.join(), protectionTaskFuture.join(), monitorTaskFuture.join(), evaluateTaskFuture.join(),
                         safetyTaskFuture.join(), drillTaskFuture.join(), eduTrainingTaskFuture.join(), recLitFuture.join(),
-                        questionTaskFuture.join(),letterOutInFuture.join()
+                        questionTaskFuture.join(), letterOutInFuture.join()
                 )
                 .flatMap(Collection::stream)
                 .collect(Collectors.toList());
@@ -189,11 +191,16 @@ public class PanelServiceImpl implements PanelService {
     @Override
     public List<WebPanelResult> selectWebData() throws ExecutionException, InterruptedException, TimeoutException {
         List<Long> roles = RemoteCallHandlerExecutor.executeRemoteCall(
-                () -> roleService.getUserRoleId(SecurityUtils.getUserId(), SecurityConstants.FROM_SOURCE),
+                () -> roleService.getUserRoleId(SecurityUtils.getUserId(), SecurityConstants.INNER),
                 ErrorMsgConstants.QUERY_USER_ROLE_ERROR);
 
+        List<Long> permList = RemoteCallHandlerExecutor.executeRemoteCall(
+                () -> userService.selectUserRoleMenu(SecurityUtils.getUserId(), SecurityConstants.INNER),
+                ErrorMsgConstants.QUERY_USER_PERMISSION_ERROR);
+
         PanelListDto req = PanelAdapter.getMapperSelectParam(SecurityUtils.getLoginUser().getOrgId(),
                 roles, SecurityUtils.getUserId());
+        req.setPermList(permList);
         List<CompletableFuture<WebPanelResult>> list = new ArrayList<>();
         //教育培训
         CompletableFuture<WebPanelResult> eduTrainingTaskFuture = CompletableFuture.supplyAsync(() ->
@@ -261,7 +268,7 @@ public class PanelServiceImpl implements PanelService {
         final TableDataInfo<MessageAppPageVo> page = notificationService.selectAppPage(req);
         final List<MessageAppPageVo> rows = page.getRows();
         rows.sort(Comparator.comparing(MessageAppPageVo::getPublishTime).reversed());
-        hashMap.put("index1",rows );
+        hashMap.put("index1", rows);
     }
 
     private void getMaterials(Map<String, Object> hashMap) {
@@ -286,7 +293,7 @@ public class PanelServiceImpl implements PanelService {
                 final List<String> list = JSON.parseArray(json, String.class);
                 for (String str : list) {
                     final Map map = JSON.parseObject(str, Map.class);
-                    map.put("createTime",vo.getCreateTime());
+                    map.put("createTime", vo.getCreateTime());
 
                     fileLit.add(JSON.toJSONString(map));
                 }

+ 2 - 5
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/CoreSafetyTaskServiceImpl.java

@@ -214,17 +214,14 @@ public class CoreSafetyTaskServiceImpl extends ServiceImpl<CoreSafetyTaskMapper,
 
     @Override
     public WebPanelResult selectWebIndexData(PanelListDto req) {
-        final int count = coreSafetyTaskMapper.selectCount(new LambdaQueryWrapper<CoreSafetyTask>()
-                .eq(CoreSafetyTask::getCheckOrgId, req.getOrgId())
-                .eq(CoreSafetyTask::getStatus, 1))
-                .intValue();
+        final List<PanelListVo> taskList = selectCurUserTaskList(req);
         return WebPanelResult
                 .builder()
                 .status(1)
                 .statusText(DictUtils.getDictLabel(DictConstants.SAFETY_CHECK_STATUS,1))
                 .taskType(PanelTypeEnums.SAFETY_CHECK.ordinal())
                 .taskTypeText(PanelTypeEnums.SAFETY_CHECK.getName())
-                .nums(count).build();
+                .nums(taskList.size()).build();
     }
 
     @Override

+ 6 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysUserController.java

@@ -613,6 +613,12 @@ public class SysUserController extends BaseController {
         return userService.checkUserPermission(menuIds, userId);
     }
 
+    @InnerAuth
+    @GetMapping("/selectUserRoleMenu")
+    List<Long> selectUserRoleMenu(Long userId){
+        return userService.selectUserRoleMenu(userId);
+    }
+
     /**
      * 导入
      */

+ 2 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysUserService.java

@@ -245,4 +245,6 @@ public interface ISysUserService extends IService<SysUser> {
     List<SysUser> selectUserListData(SysUser user);
 
     List<Long> checkUserPermission(@RequestParam List<Long> menuIds,Long userId);
+
+    List<Long> selectUserRoleMenu(Long userId);
 }

+ 19 - 3
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysUserServiceImpl.java

@@ -23,6 +23,7 @@ import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.domain.SysRole;
 import com.xunmei.system.api.domain.SysUser;
 import com.xunmei.system.domain.SysPost;
+import com.xunmei.system.domain.SysRoleMenu;
 import com.xunmei.system.domain.SysUserPost;
 import com.xunmei.system.domain.SysUserRole;
 import com.xunmei.system.domain.vo.SysUserListVo;
@@ -78,7 +79,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     private SysOrgMapper sysOrgMapper;
     @Autowired
     private ISysDictDataService iSysDictDataService;
-
+    @Autowired
+    SysRoleMenuMapper roleMenuMapper;
     /**
      * 根据条件分页查询用户列表
      *
@@ -606,7 +608,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                     BeanValidators.validateWithException(validator, user);
                     String salt = SecurityUtils.salt();
                     user.setSalt(salt);
-                    user.setPassword(SecurityUtils.encryptPassword(password,salt));
+                    user.setPassword(SecurityUtils.encryptPassword(password, salt));
                     user.setCreateBy(operName);
                     userMapper.insertUser(user);
                     successNum++;
@@ -746,10 +748,24 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     @Override
-    public List<Long> checkUserPermission(List<Long> menuIds,Long userId) {
+    public List<Long> checkUserPermission(List<Long> menuIds, Long userId) {
         if (CollectionUtil.isEmpty(menuIds)) {
             return new ArrayList<>();
         }
         return baseMapper.checkUserPermission(menuIds, userId);
     }
+
+
+
+    @Override
+    public List<Long> selectUserRoleMenu(Long userId) {
+        final List<SysUserRole> roleList = userRoleMapper.selectList(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, userId));
+        final List<Long> collect = roleList.stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
+        return roleMenuMapper.selectList(new LambdaQueryWrapper<SysRoleMenu>()
+                .in(SysRoleMenu::getRoleId, collect))
+                .stream()
+                .map(SysRoleMenu::getMenuId)
+                .distinct()
+                .collect(Collectors.toList());
+    }
 }