Ver Fonte

Merge remote-tracking branch 'origin/master'

dongxin há 1 ano atrás
pai
commit
7e80b06d35

+ 2 - 1
commons/src/main/java/com/jzg/commons/aop/PremissionCheck.java

@@ -8,5 +8,6 @@ import java.lang.annotation.Target;
 @Target({ElementType.METHOD, ElementType.TYPE})
 @Retention(RetentionPolicy.RUNTIME)
 public @interface PremissionCheck {
-    String value();
+    //权限标识  如果为空则标识只校验登录状态
+    String value() default "";
 }

+ 15 - 37
commons/src/main/java/com/jzg/commons/aop/aspect/PermissionAspect.java

@@ -20,6 +20,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @Aspect
 @Component
@@ -48,45 +49,22 @@ public class PermissionAspect {
         String token = request.getHeader("Authorization");
         String system = request.getHeader("System");
 
-        if(Objects.isNull(token)){
+        if(Objects.isNull(token) || Objects.isNull(redissonClient.getBucket(token).get())){
             throw new TokenExpireException("无权限访问");
         }
-        String userTokenDataStr = redissonClient.getBucket(token).get().toString();
-        if(Objects.isNull(userTokenDataStr))
-        {
-            throw new TokenExpireException();
-        }
-        //判断是否是admin用户 如果是的话则不进行权限过滤
-        if(JSON.parseObject(userTokenDataStr).getString("username").equals("admin")){
-            return;
-        }
-        JSONArray userSystemRole = JSON.parseObject(userTokenDataStr).getJSONArray("roles");
-        List<String> userSystemRoleIds = userSystemRole.stream().map(role ->
-            ((JSONObject) role).getString("roleId")).collect(Collectors.toList());
-
-        //取出缓存中的所有权限信息做对比
-        JSONArray jsonObject = JSON.parseArray(redissonClient.getBucket(RedisKeyConstants.ROLE_MENU_KEY).get().toString());
-
-        //取出系统的
-        JSONObject o = (JSONObject) jsonObject.stream()
-                .filter(item -> ((JSONObject) item).getString("systemCode").equals(system)).findFirst().orElse(null);
-
-        JSONArray collect = new JSONArray(o.getJSONArray("roleVos").stream()
-                .filter(x -> userSystemRoleIds.contains(((JSONObject) x).getString("id")))
-                .collect(Collectors.toList()));
-
-        //提取所有perms字段
-        List<String> permsList = collect.stream()
-                .flatMap(role -> {
-                    JSONArray menuVos = ((JSONObject) role).getJSONArray("menuVos");
-                    return menuVos.stream()
-                            .map(menu -> ((JSONObject) menu).getString("perms"));
-                })
-                .collect(Collectors.toList());
-
-        //判断是否用户是否存在权限标识
-        if(!permsList.contains(permission)){
-            throw new SystemException("无权限访问");
+        //如果权限标识为空 则不校验权限  只校验token
+        if(!permission.isEmpty()) {
+            String userTokenDataStr = redissonClient.getBucket(token).get().toString();
+            //判断是否是admin用户 如果是的话则不进行权限过滤
+            if (JSON.parseObject(userTokenDataStr).getString("username").equals("admin")) {
+                return;
+            }
+            JSONArray userSystemRole = JSON.parseObject(userTokenDataStr).getJSONArray("auths");
+            Stream<String> permsList = userSystemRole.stream().map(item -> ((JSONObject) item).getString("perms"));
+            //判断是否用户是否存在权限标识
+            if (!permsList.anyMatch(p -> p.equals(permission))) {
+                throw new TokenExpireException("无权限访问");
+            }
         }
     }
 }

+ 2 - 2
commons/src/main/java/com/jzg/commons/core/base/BaseModel.java

@@ -7,11 +7,11 @@ import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import java.io.Serializable;
 import java.time.LocalDateTime;
-import java.util.Date;
 
 @Data
-public class BaseModel {
+public class BaseModel implements Serializable {
 
     @Schema(description = "是否删除")
     @TableLogic

+ 13 - 1
commons/src/main/java/com/jzg/commons/entity/vo/LeftSysOrganizationVo.java

@@ -20,12 +20,24 @@ public class LeftSysOrganizationVo implements Serializable {
 
     @Schema(description = "名称")
     private String name;
-    @JsonSerialize(using = ToStringSerializer.class)
+
+    @Schema(description = "负责人id")
+    private String managerId;
+
+    @Schema(description = "负责人名称")
+    private String managerName;
+
     @Schema(description = "机构id")
     private String deptId;
 
     @Schema(description = "机构id")
     private String deptName;
 
+    @Schema(description = "成员数量")
+    private Integer memberNumber;
+
+    @Schema(description = "描述")
+    private String describeInformation;
+
 
 }

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/vo/SysUserInfoListVo.java

@@ -43,4 +43,7 @@ public class SysUserInfoListVo extends PageRequest {
     @Schema(description = "搜索关键字")
     private String name;
 
+    @Schema(description = "团队ID")
+    private String sysOrganizationId;
+
 }

+ 5 - 7
tenant/organization/src/main/java/com/jzg/organization/controller/SysOrganizationController.java

@@ -1,13 +1,11 @@
 package com.jzg.organization.controller;
 
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.*;
 import com.jzg.commons.entity.po.SysOrganization;
 import com.jzg.organization.service.SysOrganizationService;
 import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.media.Schema;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
@@ -33,9 +31,9 @@ public class SysOrganizationController {
     }
 
 
-    @Operation(summary = "团队、渠道、电销组", description = "详情页面")
+    @Operation(summary = "团队、渠道、电销组详情页面", description = "详情页面")
     @PostMapping("getDetails")
-    public HttpResult getDetails(@RequestParam("userId") Long userId){
+    public HttpResult getDetails(@RequestParam("userId") Long userId, @RequestParam("id") String id){
         return sysOrganizationService.getDetails(userId);
     }
 
@@ -45,7 +43,7 @@ public class SysOrganizationController {
      * @param sysOrganizationParam
      * @return
      */
-    @Operation(summary = "团队、渠道、电销组", description = "左侧列表页面")
+    @Operation(summary = "团队、渠道、电销组左侧列表页面", description = "左侧列表页面")
     @PostMapping("leftList")
     public HttpResult leftList(@Validated @RequestBody SysOrganizationParam sysOrganizationParam){
         return sysOrganizationService.leftList(sysOrganizationParam);
@@ -116,7 +114,7 @@ public class SysOrganizationController {
      * @param
      * @return
      */
-    @Schema(description = "新增团队、渠道、电销组用户")
+    @Operation(summary = "新增团队、渠道、电销组用户")
     @PostMapping("addTeamUsers")
     public HttpResult addTeamUsers(@Validated @RequestBody SysOrganizationUserLinkAdd organizationUserLinkAdd){
         return sysOrganizationService.addTeamUsers(organizationUserLinkAdd);
@@ -128,7 +126,7 @@ public class SysOrganizationController {
      * @param
      * @return
      */
-    @Schema(description = "设置团队、渠道、电销组负责人")
+    @Operation(summary = "设置团队、渠道、电销组负责人")
     @PostMapping("setResponsiblePerson")
     public HttpResult setResponsiblePerson(@Validated @RequestBody SysOrganizationSetPerson setPerson){
         return sysOrganizationService.setResponsiblePerson(setPerson);

+ 18 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/SysOrganizationMapper.java

@@ -3,8 +3,10 @@ package com.jzg.organization.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.jzg.commons.entity.dto.SysOrganizationParam;
 import com.jzg.commons.entity.po.SysOrganization;
+import com.jzg.commons.entity.vo.LeftSysOrganizationVo;
 import com.jzg.commons.entity.vo.SysOrganizationUserDetailsVo;
 import com.jzg.commons.entity.vo.SysOrganizationVo;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
@@ -20,4 +22,20 @@ public interface SysOrganizationMapper extends BaseMapper<SysOrganization> {
 
     @Select("")
     SysOrganizationUserDetailsVo getDetails(Long userId);
+
+
+    @Select({
+            "<script>",
+            "select id, system_code, name, dept_id, manager_id, describe_information, attribute," +
+                    "(SELECT COUNT(1) FROM sys_organization_user_link WHERE sys_organization_user_link.organization_id = sys_organization.id) memberNumber," +
+                    "(SELECT sys_dept.`name` FROM sys_dept WHERE sys_dept.id = sys_organization.dept_id) deptName," +
+                    "(SELECT u.username FROM sys_user u WHERE u.id = sys_organization.manager_id) managerName from sys_organization",
+            "<where> 1=1 ",
+            "<if test='params.param != null and params.param != \"\"'>",
+            " and sys_organization.name like concat('%',#{params.param},'%')",
+            "</if>",
+            "</where>",
+            "</script>"
+    })
+    List<LeftSysOrganizationVo> selectLeftList(@Param("params") SysOrganizationParam sysOrganizationParam);
 }

+ 3 - 9
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysOrganizationServiceImpl.java

@@ -74,19 +74,13 @@ public class SysOrganizationServiceImpl extends ServiceImpl<SysOrganizationMappe
         if (StringUtils.isNotEmpty(organizationAdd.getId())){
             last.ne(SysOrganization::getId, organizationAdd.getId());
         }
-        boolean exists = sysOrganizationMapper.exists(last);
-        return exists;
+        return sysOrganizationMapper.exists(last);
     }
 
     @Override
     public HttpResult leftList(SysOrganizationParam sysOrganizationParam) {
-        QueryWrapper<SysOrganization> queryWrapper = new QueryWrapper<>();
-        queryWrapper.select("id, system_code, name, dept_id, manager_id, describe_information, attribute," +
-                "(SELECT COUNT(1) FROM sys_organization_user_link WHERE sys_organization_user_link.organization_id = sys_organization.id) memberNumber," +
-                "(SELECT sys_dept.`name` FROM sys_dept WHERE sys_dept.id = sys_organization.dept_id) deptName");
-        List<SysOrganization> sysOrganizations = sysOrganizationMapper.selectList(queryWrapper);
-        List<LeftSysOrganizationVo> list = JSONObject.parseObject(JSONObject.toJSONString(sysOrganizations), List.class);
-        return HttpResult.ok(list);
+        List<LeftSysOrganizationVo> sysOrganizations = sysOrganizationMapper.selectLeftList(sysOrganizationParam);
+        return HttpResult.ok(sysOrganizations);
     }
 
     @Override

+ 3 - 0
tenant/organization/src/main/resources/mapper/SysUserJzgInfoMapper.xml

@@ -83,6 +83,9 @@
         <if test="sysUserInfoListVo.isEnable != null and sysUserInfoListVo.isEnable != ''">
             and suji.is_enable = #{sysUserInfoListVo.isEnable}
         </if>
+        <if test="sysUserInfoListVo.sysOrganizationId != null and sysUserInfoListVo.sysOrganizationId != ''">
+            and so.id = #{sysUserInfoListVo.sysOrganizationId}
+        </if>
         <if test="sysUserInfoListVo.leaderId != null and sysUserInfoListVo.leaderId != ''">
             and (suji.leader_id = #{sysUserInfoListVo.leaderId}
             or  su.username = #{sysUserInfoListVo.leaderId)