Quellcode durchsuchen

机构树加上本身,加上全局异常

hym vor 4 Jahren
Ursprung
Commit
76c8877060

+ 74 - 0
common/src/main/java/com/huaxu/exception/GloabalExceptionHandle.java

@@ -0,0 +1,74 @@
+package com.huaxu.exception;
+
+import com.huaxu.model.AjaxMessage;
+import com.huaxu.model.ResultStatus;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.NoHandlerFoundException;
+
+import javax.servlet.http.HttpServletRequest;
+
+@RestControllerAdvice
+@Slf4j
+public class GloabalExceptionHandle {
+
+
+
+
+
+
+    // 捕捉其他所有异常
+    @ExceptionHandler(Exception.class)
+    public AjaxMessage globalException(HttpServletRequest request, HandlerMethod handlerMethod, Throwable ex) {
+
+            return new AjaxMessage<>(ResultStatus.ERROR_500,ex.getMessage());
+
+
+    }
+
+    /**
+     * 判断是否是Ajax请求
+     *
+     * @param request
+     * @return
+     */
+    public boolean isAjax(HttpServletRequest request) {
+        return (request.getHeader("X-Requested-With") != null &&
+                "XMLHttpRequest".equals(request.getHeader("X-Requested-With").toString()));
+    }
+//    @ExceptionHandler(Exception.class)
+//    public Result globalException(HttpServletRequest request, Throwable ex) {
+//        return new Result(getStatus(request).value(),"访问出错,无法访问: " + ex.getMessage(),null);
+//    }
+
+
+    /**
+     * 获取响应状态码
+     * @param request
+     * @return
+     */
+    private HttpStatus getStatus(HttpServletRequest request) {
+        Integer statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code");
+        if (statusCode == null) {
+            return HttpStatus.INTERNAL_SERVER_ERROR;
+        }
+        return HttpStatus.valueOf(statusCode);
+    }
+
+    /**
+     * 捕捉404异常,这个方法只在配置
+     * spring.mvc.throw-exception-if-no-handler-found=true来后起作用
+     *
+     */
+    @ResponseStatus(HttpStatus.NOT_FOUND)
+    @ExceptionHandler(NoHandlerFoundException.class)
+    public AjaxMessage handle(HttpServletRequest request,NoHandlerFoundException e) {
+        System.out.println(12);
+
+        return  new AjaxMessage<>(ResultStatus.ERROR_500);
+    }
+}

+ 1 - 0
common/src/main/java/com/huaxu/model/ResultStatus.java

@@ -26,6 +26,7 @@ public enum ResultStatus {
      */
     OK(0, "成功"),
 
+    ERROR_500(500, "系统错误"),
     //100 人员模块
     MEMBER_TELPHONE_ALREADY_EXISTS(100001,"手机号码已存在"),
     PERSON_TYPE_ALREADY_EXISTS(1000002,"该场景下的人员类型已存在"),

+ 8 - 3
user_center/src/main/java/com/huaxu/controller/RoleController.java

@@ -110,13 +110,18 @@ public class RoleController {
         return new AjaxMessage<>(ResultStatus.OK, roleService.selectList(role));
     }
 
-    @RequestMapping(value = "findUsersByUserGroup", method = RequestMethod.POST)
+    @RequestMapping(value = "findUsersByUserRole", method = RequestMethod.POST)
     @ApiOperation(value = "查询角色对应user")
-    AjaxMessage<List<UserEntity>> findUsersByRole(@ApiParam(value = "角色id", required = true) @RequestParam Integer id) {
+    AjaxMessage<Pagination<UserEntity>> findUsersByRole(@ApiParam(value = "角色id", required = true)
+                                                  @RequestParam Integer id,
+          Integer pageNum, Integer pageSize) {
         Role role = new Role();
         role.setId(id);
+        IPage<UserEntity> iPage = new Page<>(pageNum, pageSize);
+        iPage = roleService.findUsersByRole(role,iPage);
+        Pagination<UserEntity> pages = new Pagination<>(iPage);
         return new AjaxMessage<>(ResultStatus.OK,
-                roleService.findUsersByRole(role));
+                pages);
     }
 
     @RequestMapping(value = "deleteAll", method = RequestMethod.POST)

+ 1 - 1
user_center/src/main/java/com/huaxu/dao/RoleMapper.java

@@ -86,6 +86,6 @@ public interface RoleMapper {
     int deleteRoleUser(Role role);
     int deleteRoleMenu(Role role);
 
-    List<UserEntity> findUsersByRole(Role role);
+    IPage<UserEntity> findUsersByRole(IPage<UserEntity> iPage,Role role);
 
 }

+ 1 - 1
user_center/src/main/java/com/huaxu/service/RoleService.java

@@ -84,7 +84,7 @@ public interface RoleService {
 
     IPage<RoleDto> selectPage(Role role, IPage<RoleDto> page);
 
-    List<UserEntity> findUsersByRole(Role role);
+    IPage<UserEntity> findUsersByRole(Role role, IPage<UserEntity> iPage);
 
     int updateRoleMenuRelations(RoleRequestDto dto);
 

+ 19 - 3
user_center/src/main/java/com/huaxu/service/impl/OrgServiceImpl.java

@@ -206,7 +206,7 @@ public class OrgServiceImpl implements OrgService {
         if("company".equals(org.getOrgType())){
             if(currentUser.getDepartmentId()==null){
                 trees=orgMapper.selectTrees(org);
-                trees=getOrgTree(trees,currentUser.getCompanyId(),1);
+                trees=getOrgTreeByOrg(trees,currentUser.getCompanyId());
             }else{
                 org.setId(currentUser.getCompanyId());
                 trees=orgMapper.selectTrees(org);
@@ -215,15 +215,31 @@ public class OrgServiceImpl implements OrgService {
             if(currentUser.getDepartmentId()!=null){
                 org.setOrgType("department");
                 trees=orgMapper.selectTrees(org);
-                trees=getOrgTree(trees,currentUser.getDepartmentId(),1);
+                trees=getOrgTreeByOrg(trees,currentUser.getDepartmentId());
             }
 
         }
 
         return trees;
     }
+    List<OrgTree> getOrgTreeByOrg(List<OrgTree> trees,int id){
+        OrgTree fatherOrgTree=new OrgTree();
+        for (OrgTree tree : trees) {
+            if(tree.getId()==id){
+                fatherOrgTree=tree;
+                break;
+            }
+
+        }
 
-    public static List<OrgTree> getOrgTree(List<OrgTree> list, Integer id, Integer level) {
+        trees=getOrgTree(trees,id,1);
+        fatherOrgTree.setOrgs(trees);
+        List<OrgTree> result=new ArrayList<>();
+        result.add(fatherOrgTree);
+        trees=result;
+        return trees;
+    }
+    public  List<OrgTree> getOrgTree(List<OrgTree> list, Integer id, Integer level) {
         List<OrgTree> temList = newArrayList();
         if (list != null) {
             for (OrgTree orgTree : list) {

+ 2 - 2
user_center/src/main/java/com/huaxu/service/impl/RoleServiceImpl.java

@@ -211,8 +211,8 @@ public class RoleServiceImpl implements RoleService {
     }
 
     @Override
-    public List<UserEntity> findUsersByRole(Role role) {
-        return  roleMapper.findUsersByRole(role);
+    public IPage<UserEntity> findUsersByRole(Role role, IPage<UserEntity> iPage) {
+        return  roleMapper.findUsersByRole(iPage,role);
     }
 
     @Override

+ 13 - 1
user_center/src/main/java/com/huaxu/service/impl/UserGroupServiceImpl.java

@@ -3,6 +3,7 @@ package com.huaxu.service.impl;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.huaxu.dao.GroupUserMapper;
 import com.huaxu.dao.UserGroupMapper;
+import com.huaxu.dao.UserMapper;
 import com.huaxu.dto.UserGroupDto;
 import com.huaxu.entity.*;
 import com.huaxu.model.LoginUser;
@@ -28,6 +29,8 @@ public class UserGroupServiceImpl implements UserGroupService {
     private UserGroupMapper userGroupMapper;
     @Autowired
     private GroupUserMapper groupUserMapper;
+    @Autowired
+    private UserMapper userMapper;
 
 
 
@@ -159,7 +162,16 @@ public class UserGroupServiceImpl implements UserGroupService {
     public List<UserEntity> findUsersByUserGroup(UserGroup userGroup) {
         LoginUser currentUser = UserUtil.getCurrentUser();
         userGroup.setTenantId(currentUser.getTenantId());
-        return  userGroupMapper.findUsersByUserGroup( userGroup);
+        UserEntity userEntity=new UserEntity();
+        userEntity.setTenantId(currentUser.getTenantId());
+        List<UserEntity>list;
+        if(userGroup.getId()==-1){
+            list=userMapper.findList(userEntity);
+        }else{
+            list=userGroupMapper.findUsersByUserGroup( userGroup);
+        }
+
+        return list;
     }
 
     @Override

+ 1 - 1
user_center/src/main/resources/mapper/RoleMapper.xml

@@ -246,7 +246,7 @@
         select 	<include refid="userColumns"/>
          from uims_user_role b join uims_user a on b.USER_ID=a.ID
         <include refid="sysAreaJoins"/>
-        where b.ROLE_ID=#{id} and b.status!=0 and userrole.status!=0
+        where b.ROLE_ID=#{role.id} and b.status!=0 and userrole.status!=0
     </select>
     <update id="deleteRoleUser">
         update uims_user_role set status=0 where ROLE_ID=#{id}