李进 2 år sedan
förälder
incheckning
90f656f4ab
21 ändrade filer med 207 tillägg och 644 borttagningar
  1. 0 65
      authorize-api-service/src/main/java/com/xy/config/SaTokenInterceptorImpl.java
  2. 0 6
      authorize-api-service/src/main/java/com/xy/entity/SysDeptRole.java
  3. 0 5
      authorize-api-service/src/main/java/com/xy/entity/SysSystem.java
  4. 0 37
      authorize-api-service/src/main/java/com/xy/entity/SysSystemUserRole.java
  5. 0 10
      authorize-api-service/src/main/java/com/xy/entity/SysWorkUser.java
  6. 0 40
      authorize-api-service/src/main/java/com/xy/mapper/SysDeptRelationMapper.xml
  7. 2 2
      authorize-api-service/src/main/java/com/xy/mapper/SysDeptRoleMapper.java
  8. 2 2
      authorize-api-service/src/main/java/com/xy/mapper/SysSystemMapper.java
  9. 0 15
      authorize-api-service/src/main/java/com/xy/mapper/SysSystemUserRoleMapper.java
  10. 15 124
      authorize-api-service/src/main/java/com/xy/redis/RedisCache.java
  11. 9 14
      authorize-api-service/src/main/java/com/xy/service/PublicInterfaceImpl.java
  12. 39 0
      authorize-api-service/src/main/java/com/xy/service/impl/SysMenuServiceImpl.java
  13. 11 17
      authorize-api-service/src/main/java/com/xy/service/impl/SysSystemServiceImpl.java
  14. 0 118
      authorize-api-service/src/main/java/com/xy/service/impl/SysSystemUserServiceImpl.java
  15. 1 2
      authorize-api-service/src/main/java/com/xy/service/impl/SysWorkUserServiceImpl.java
  16. 94 0
      authorize-api/src/main/java/com/xy/dto/SysMenuDto.java
  17. 0 6
      authorize-api/src/main/java/com/xy/dto/SysSystemDto.java
  18. 0 114
      authorize-api/src/main/java/com/xy/dto/SysSystemUserDto.java
  19. 11 29
      authorize-api/src/main/java/com/xy/service/PublicInterface.java
  20. 23 0
      authorize-api/src/main/java/com/xy/service/SysMenuService.java
  21. 0 38
      authorize-api/src/main/java/com/xy/service/SysSystemUserService.java

+ 0 - 65
authorize-api-service/src/main/java/com/xy/config/SaTokenInterceptorImpl.java

@@ -1,65 +0,0 @@
-package com.xy.config;
-
-import cn.dev33.satoken.stp.StpUtil;
-import com.xy.ServerWebConfig;
-import com.xy.enums.SaTokenEnum;
-import com.xy.error.CommRuntimeException;
-import com.xy.redis.RedisCache;
-import com.xy.swagger.Knife4jConfig;
-import com.xy.utils.Emptys;
-import com.xy.utils.SaTokenUtils;
-import lombok.AllArgsConstructor;
-import org.springframework.stereotype.Component;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
-
-/**
- * 权限系统权限拦截器
- */
-@Component
-@AllArgsConstructor
-public class SaTokenInterceptorImpl extends HandlerInterceptorAdapter implements WebMvcConfigurer {
-
-    private SaTokenAuthorizeConfig saTokenAuthorizeConfig;
-
-    /**
-     * 方法执行前
-     */
-    @Override
-    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
-        //登录校验
-        String satoken = request.getHeader(saTokenAuthorizeConfig.getTokenName());
-        if (!Emptys.check(satoken)) {
-            throw new CommRuntimeException(SaTokenEnum.NO_LOGIN.getKey(), SaTokenEnum.NO_LOGIN.getName());
-        }
-        Object loginIdByToken = StpUtil.getLoginIdByToken(satoken);
-        if (loginIdByToken == null) {
-            throw new CommRuntimeException(SaTokenEnum.NO_LOGIN.getKey(), SaTokenEnum.NO_LOGIN.getName());
-        }
-        //接口权限
-        if (saTokenAuthorizeConfig != null && saTokenAuthorizeConfig.getEnablePermission()) {
-            String permission = request.getRequestURI();
-            List<String> menuInterfaceUri = RedisCache.getMenuInterfaceUri(Long.parseLong(SaTokenUtils.getId().toString()));
-            if (!menuInterfaceUri.contains(permission)) {
-                throw new CommRuntimeException(SaTokenEnum.NO_AUTHORITY.getKey(), SaTokenEnum.NO_AUTHORITY.getName());
-            }
-        }
-        return true;
-    }
-
-    @Override
-    public void addInterceptors(InterceptorRegistry registry) {
-        List<String> excludePaths = saTokenAuthorizeConfig.getExcludePaths();
-        excludePaths.addAll(Knife4jConfig.swaggerExcludes);
-        excludePaths.addAll(ServerWebConfig.serverWebExcludes);
-        registry.addInterceptor(this)
-                .excludePathPatterns(excludePaths)
-                .addPathPatterns("/**");
-    }
-
-}

+ 0 - 6
authorize-api-service/src/main/java/com/xy/entity/SysDeptRole.java

@@ -1,8 +1,5 @@
 package com.xy.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -21,18 +18,15 @@ import lombok.experimental.Accessors;
 @Getter
 @Setter
 @Accessors(chain = true)
-@TableName("sys_dept_role")
 @ApiModel(value = "SysDeptRole对象", description = "部门角色表;")
 public class SysDeptRole extends Model<SysDeptRole> {
 
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty("部门id")
-    @TableId(value = "dept_id", type = IdType.ASSIGN_ID)
     private Long deptId;
 
     @ApiModelProperty("角色id")
-    @TableId(value = "role_id", type = IdType.ASSIGN_ID)
     private Long roleId;
 
 

+ 0 - 5
authorize-api-service/src/main/java/com/xy/entity/SysSystem.java

@@ -20,11 +20,6 @@ public class SysSystem extends BaseEntity2<SysSystem> {
 
     private static final long serialVersionUID = 1L;
 
-    /**
-     * 权限用户id
-     */
-    private Long sysUserId;
-
     /**
      * 标识
      */

+ 0 - 37
authorize-api-service/src/main/java/com/xy/entity/SysSystemUserRole.java

@@ -1,37 +0,0 @@
-package com.xy.entity;
-
-import com.xy.base.BaseEntity;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
-
-/**
- * <p>
- * 权限用户角色表
- * </p>
- *
- * @author lijin
- * @since 2022-12-09
- */
-@Data
-@Accessors(chain = true)
-@EqualsAndHashCode(callSuper = true)
-public class SysSystemUserRole extends BaseEntity<SysSystemUserRole> {
-
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 权限户id
-     */
-    private Long systemUserId;
-
-    /**
-     * 角色id
-     */
-    private Long roleId;
-
-    /**
-     * 系统id
-     */
-    private Long sysId;
-}

+ 0 - 10
authorize-api-service/src/main/java/com/xy/entity/SysWorkUser.java

@@ -22,16 +22,6 @@ public class SysWorkUser extends BaseEntity2<SysWorkUser> {
 
     private static final long serialVersionUID = 1L;
 
-    /**
-     * 权限用户id
-     */
-    private Long sysUserId;
-
-    /**
-     * 系统ID
-     */
-    private Long sysId;
-
     /**
      * 账号
      */

+ 0 - 40
authorize-api-service/src/main/java/com/xy/mapper/SysDeptRelationMapper.xml

@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.xy.mapper.SysDeptRelationMapper">
-    <!-- 删除部门节点关系	-->
-    <delete id="deleteDeptRelations">
-        DELETE
-        FROM sys_dept_relation
-        WHERE descendant IN (SELECT temp.descendant
-        FROM (SELECT descendant FROM sys_dept_relation WHERE ancestor = #{descendant}) temp)
-        AND ancestor IN (SELECT temp.ancestor
-        FROM (SELECT ancestor
-        FROM sys_dept_relation
-        WHERE descendant = #{descendant}
-        AND ancestor != descendant) temp)
-    </delete>
-
-    <!--删除部门节点关系,同时删除所有关联此部门子节点的部门关系-->
-    <delete id="deleteDeptRelationsById">
-        DELETE
-        FROM sys_dept_relation
-        WHERE descendant IN (
-        SELECT temp.descendant
-        FROM (
-        SELECT descendant
-        FROM sys_dept_relation
-        WHERE ancestor = #{id}
-        ) temp
-        )
-    </delete>
-
-    <!-- 新增部门节点关系	-->
-    <insert id="insertDeptRelations">
-        INSERT INTO sys_dept_relation (ancestor, descendant)
-        SELECT a.ancestor, b.descendant
-        FROM sys_dept_relation a
-        CROSS JOIN sys_dept_relation b
-        WHERE a.descendant = #{ancestor}
-        AND b.ancestor = #{descendant}
-    </insert>
-</mapper>

+ 2 - 2
authorize-api-service/src/main/java/com/xy/mapper/SysDeptRoleMapper.java

@@ -1,7 +1,7 @@
 package com.xy.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.xy.entity.SysDeptRole;
+import icu.mhb.mybatisplus.plugln.base.mapper.JoinBaseMapper;
 
 /**
  * <p>
@@ -11,6 +11,6 @@ import com.xy.entity.SysDeptRole;
  * @author 谭斌
  * @since 2022-12-15
  */
-public interface SysDeptRoleMapper extends BaseMapper<SysDeptRole> {
+public interface SysDeptRoleMapper extends JoinBaseMapper<SysDeptRole> {
 
 }

+ 2 - 2
authorize-api-service/src/main/java/com/xy/mapper/SysSystemMapper.java

@@ -1,7 +1,7 @@
 package com.xy.mapper;
 
 import com.xy.entity.SysSystem;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import icu.mhb.mybatisplus.plugln.base.mapper.JoinBaseMapper;
 
 /**
  * <p>
@@ -11,6 +11,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @author lijin
  * @since 2022-12-09
  */
-public interface SysSystemMapper extends BaseMapper<SysSystem> {
+public interface SysSystemMapper extends JoinBaseMapper<SysSystem> {
 
 }

+ 0 - 15
authorize-api-service/src/main/java/com/xy/mapper/SysSystemUserRoleMapper.java

@@ -1,15 +0,0 @@
-package com.xy.mapper;
-
-import com.xy.entity.SysSystemUserRole;
-import icu.mhb.mybatisplus.plugln.base.mapper.JoinBaseMapper;
-
-/**
- * <p>
- * 权限用户角色表 Mapper 接口
- * </p>
- *
- * @author lijin
- * @since 2022-12-09
- */
-public interface SysSystemUserRoleMapper extends JoinBaseMapper<SysSystemUserRole> {
-}

+ 15 - 124
authorize-api-service/src/main/java/com/xy/redis/RedisCache.java

@@ -33,11 +33,6 @@ import java.util.Map;
 @Component
 public class RedisCache {
 
-    /**
-     * 权限系统默认系统ID,代表本系统
-     */
-    public static final Long DEFAULT_STSTEM_ID = 1L;
-
     private static RedisService<List<CacheEntity>> getRedisService() {
         return SpringBeanUtils.getBean(RedisService.class);
     }
@@ -46,59 +41,6 @@ public class RedisCache {
         return String.format("%s:%d", "menu", loginId);
     }
 
-    /**
-     * 缓存权限系统权限到redis
-     *
-     * @param loginId 登录id
-     */
-    public static void systemCache(Long loginId) {
-        SysSystemMapper sysSystemMapper = SpringBeanUtils.getBean(SysSystemMapper.class);
-        SysRoleMapper sysRoleMapper = SpringBeanUtils.getBean(SysRoleMapper.class);
-        SysMenuMapper sysMenuMapper = SpringBeanUtils.getBean(SysMenuMapper.class);
-        RedisService<List<CacheEntity>> roleMenuRedisService = getRedisService();
-        //获取登录人所有系统
-        List<SysSystem> sysSystems = sysSystemMapper.selectList(new LambdaQueryWrapper<SysSystem>()
-                .eq(SysSystem::getSysUserId, loginId)
-                .eq(SysSystem::getStatus, true)
-        );
-        if (!Emptys.check(sysSystems)) {
-            return;
-        }
-        //获取登录人所有角色
-        JoinLambdaWrapper<SysRole> sysRoleJoinLambdaWrapper = new JoinLambdaWrapper<>(SysRole.class)
-                .eq(SysRole::getStatus, true)
-                .innerJoin(SysSystemUserRole.class, SysSystemUserRole::getRoleId, SysRole::getId)
-                .eq(SysSystemUserRole::getSystemUserId, loginId)
-                .end();
-        List<SysRole> sysRoles = sysRoleMapper.joinSelectList(sysRoleJoinLambdaWrapper, SysRole.class);
-        JList<Long> sysRoleIds = new JArrayList<>(sysRoles).getProperty(SysRole::getId);
-        if (sysRoleIds.size() == 0) {
-            return;
-        }
-        //获取登录人所有角色菜单
-        JoinLambdaWrapper<SysMenu> sysMenuJoinLambdaWrapper = new JoinLambdaWrapper<>(SysMenu.class)
-                .eq(SysMenu::getStatus, true)
-                .innerJoin(SysRoleMenu.class, SysRoleMenu::getMenuId, SysMenu::getId)
-                .selectAs(cb -> cb
-                        .add(SysRoleMenu::getSelectIsAdmin)
-                        .add(SysRoleMenu::getRoleId)
-                )
-                .in(SysRoleMenu::getRoleId, sysRoleIds)
-                .end();
-        List<SysMenuJoinSysRoleMenu> sysMenus = sysMenuMapper.joinSelectList(sysMenuJoinLambdaWrapper, SysMenuJoinSysRoleMenu.class);
-        JMap<Long, List<SysMenuJoinSysRoleMenu>> sysMenuMaps = new JArrayList<>(sysMenus).toMap(SysMenuJoinSysRoleMenu::getRoleId).group();
-        sysSystems.forEach(sysSystem -> {
-            List<CacheEntity> cacheEntitys = new ArrayList<>();
-            sysRoles.forEach(sysRole -> {
-                CacheEntity cacheEntity = new CacheEntity()
-                        .setRoleId(sysRole.getId())
-                        .setList(sysMenuMaps.get(sysRole.getId()));
-                cacheEntitys.add(cacheEntity);
-            });
-            roleMenuRedisService.setMap(getKey(loginId), sysSystem.getId().toString(), cacheEntitys);
-        });
-    }
-
     /**
      * 缓存业务系统权限到redis
      *
@@ -111,10 +53,11 @@ public class RedisCache {
         SysMenuMapper sysMenuMapper = SpringBeanUtils.getBean(SysMenuMapper.class);
         RedisService<List<RedisCache.CacheEntity>> roleMenuRedisService = getRedisService();
         //获取登录人所有系统
-        List<SysSystem> sysSystems = sysSystemMapper.selectList(new LambdaQueryWrapper<SysSystem>()
-                .eq(SysSystem::getSysUserId, loginId)
+        JoinLambdaWrapper<SysSystem> sysSystemsJoinLambdaWrapper = new JoinLambdaWrapper<>(SysSystem.class)
                 .eq(SysSystem::getStatus, true)
-        );
+                .innerJoin(SysUserRole.class, SysUserRole::getRoleId, SysRole::getId)
+                .end();
+        List<SysSystem> sysSystems = sysSystemMapper.joinSelectList(sysSystemsJoinLambdaWrapper, SysSystem.class);
         if (!Emptys.check(sysSystems)) {
             return;
         }
@@ -197,16 +140,6 @@ public class RedisCache {
         return sysMenuJoinSysRoleMenus;
     }
 
-    /**
-     * 获取菜单
-     *
-     * @param loginId 登录id
-     * @return
-     */
-    public static List<SysMenuJoinSysRoleMenu> getMenu(Long loginId) {
-        return getMenu(loginId, DEFAULT_STSTEM_ID);
-    }
-
     /**
      * 获取菜单树
      *
@@ -225,16 +158,6 @@ public class RedisCache {
         return tops;
     }
 
-    /**
-     * 获取菜单树
-     *
-     * @param loginId 登录id
-     * @return
-     */
-    public static List<SysMenuJoinSysRoleMenu> getMenuTree(Long loginId) {
-        return getMenuTree(loginId, DEFAULT_STSTEM_ID);
-    }
-
     /**
      * 判断数据查询权限
      *
@@ -263,17 +186,6 @@ public class RedisCache {
         return false;
     }
 
-    /**
-     * 判断数据查询权限
-     *
-     * @param loginId 登录id
-     * @return true=管理员数据查询权限 false=普通查询权限
-     */
-    public static boolean getDataAuth(Long loginId) {
-        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
-        return getDataAuth(loginId, DEFAULT_STSTEM_ID, request.getRequestURI());
-    }
-
     /**
      * 判断数据查询权限(引用传递,业务系统无法使用)
      *
@@ -291,18 +203,6 @@ public class RedisCache {
         return false;
     }
 
-    /**
-     * 判断数据查询权限(引用传递,业务系统无法使用)
-     *
-     * @param loginId            登录id
-     * @param lambdaQueryWrapper 查询构造器
-     * @param function           普通查询权限时,条件lambda引用字段
-     * @return true=管理员数据查询权限 false=普通查询权限
-     */
-    public static <T> boolean getDataAuth(Long loginId, LambdaQueryWrapper<T> lambdaQueryWrapper, SFunction<T, ?> function) {
-        return getDataAuth(loginId, DEFAULT_STSTEM_ID, lambdaQueryWrapper, function);
-    }
-
     /**
      * 获取所有系统ID
      *
@@ -319,6 +219,17 @@ public class RedisCache {
         return list;
     }
 
+    /**
+     * 检验系统ID是否属于当前登录人
+     *
+     * @param loginId 登录id
+     * @return
+     */
+    public static Boolean checkSystemId(Long loginId, Long systemId) {
+        Map<String, List<CacheEntity>> map = getRedisService().getMap(getKey(loginId));
+        return map.containsKey(systemId);
+    }
+
     /**
      * 获取所有角色ID
      *
@@ -335,16 +246,6 @@ public class RedisCache {
         return list;
     }
 
-    /**
-     * 获取所有角色ID
-     *
-     * @param loginId 登录id
-     * @return
-     */
-    public static List<Long> getRoleIds(Long loginId) {
-        return getRoleIds(loginId, DEFAULT_STSTEM_ID);
-    }
-
     /**
      * 获取所有菜单接口uri
      *
@@ -370,16 +271,6 @@ public class RedisCache {
         return list.comparing();
     }
 
-    /**
-     * 获取所有菜单接口uri
-     *
-     * @param loginId 登录id
-     * @return
-     */
-    public static List<String> getMenuInterfaceUri(Long loginId) {
-        return getMenuInterfaceUri(loginId, DEFAULT_STSTEM_ID);
-    }
-
     @Data
     @Accessors(chain = true)
     public static class CacheEntity {

+ 9 - 14
authorize-api-service/src/main/java/com/xy/service/PublicInterfaceImpl.java

@@ -1,6 +1,6 @@
 package com.xy.service;
 
-import com.xy.dto.SysSystemUserDto;
+import com.xy.dto.SysMenuDto;
 import com.xy.dto.SysSystemValueDto;
 import com.xy.dto.SysWorkUser.AddDto;
 import com.xy.dto.SysWorkUser.AuthByInterface;
@@ -14,29 +14,18 @@ import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
 import javax.validation.Valid;
+import java.util.List;
 
 @Service
 @AllArgsConstructor
 @Api(tags = "统一对外接口")
 public class PublicInterfaceImpl implements PublicInterface {
 
-    private SysSystemUserService sysSystemUserService;
-
     private SysSystemValueService sysSystemValueService;
 
     private SysWorkUserService sysWorkUserService;
 
-    @Override
-    @ApiOperation("租户登录")
-    public R<String> login(SysSystemUserDto.Login login) {
-        return sysSystemUserService.login(login);
-    }
-
-    @Override
-    @ApiOperation("租户注册")
-    public R<Boolean> register(SysSystemUserDto.Login login) {
-        return sysSystemUserService.register(login);
-    }
+    private SysMenuService sysMenuService;
 
     @Override
     @ApiOperation("系统属性分页查询")
@@ -85,4 +74,10 @@ public class PublicInterfaceImpl implements PublicInterface {
     public R<Boolean> authByData(AuthByInterface authByInterface) {
         return sysWorkUserService.authByData(authByInterface);
     }
+
+    @Override
+    @ApiOperation("业务用户菜单树")
+    public R<List<SysMenuDto.Vo>> workMenu(SysMenuDto.WorkMenu workMenu) {
+        return sysMenuService.workMenu(workMenu);
+    }
 }

+ 39 - 0
authorize-api-service/src/main/java/com/xy/service/impl/SysMenuServiceImpl.java

@@ -1,11 +1,23 @@
 package com.xy.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xy.dto.SysMenuDto;
 import com.xy.entity.SysMenu;
+import com.xy.entity.join.SysMenuJoinSysRoleMenu;
 import com.xy.mapper.SysMenuMapper;
+import com.xy.redis.RedisCache;
 import com.xy.service.SysMenuService;
+import com.xy.utils.R;
+import com.xy.utils.SaTokenUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import static com.xy.utils.Beans.copy;
+
 /**
  * <p>
  * 菜单表 服务实现类
@@ -15,6 +27,33 @@ import org.springframework.stereotype.Service;
  * @since 2022-12-09
  */
 @Service
+@Api(tags = "菜单接口")
 public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> implements SysMenuService {
 
+    @Override
+    @ApiOperation("业务用户菜单树")
+    public R<List<SysMenuDto.Vo>> workMenu(SysMenuDto.WorkMenu workMenu) {
+        List<SysMenuDto.Vo> list = new ArrayList<>();
+        Long longId = SaTokenUtils.getId(Long.class);
+        List<SysMenuJoinSysRoleMenu> menus = RedisCache.getMenuTree(longId, workMenu.getSystemId());
+        menus.forEach(sysMenuJoinSysRoleMenu -> {
+            SysMenuDto.Vo vo = copy(SysMenuDto.Vo.class, sysMenuJoinSysRoleMenu);
+            List<SysMenuDto.Vo> sonVos = copy(SysMenuDto.Vo.class, sysMenuJoinSysRoleMenu.getSonSysMenu());
+            list.add(vo.setSonSysMenu(sonVos));
+        });
+        return R.ok(list);
+    }
+
+    @Override
+    @ApiOperation("添加菜单")
+    public R save(SysMenuDto.Save save) {
+        Long longId = SaTokenUtils.getId(Long.class);
+        List<Long> systemIds = RedisCache.getSystemIds(longId);
+        if (!systemIds.contains(save.getSystemId())) {
+            return R.fail("系统不存在");
+        }
+
+
+        return null;
+    }
 }

+ 11 - 17
authorize-api-service/src/main/java/com/xy/service/impl/SysSystemServiceImpl.java

@@ -1,7 +1,6 @@
 package com.xy.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xy.dto.SysSystemDto;
 import com.xy.entity.SysSystem;
@@ -9,7 +8,6 @@ import com.xy.mapper.SysSystemMapper;
 import com.xy.redis.RedisCache;
 import com.xy.service.SysSystemService;
 import com.xy.utils.MybatisPlusQuery;
-import com.xy.utils.PageBean;
 import com.xy.utils.R;
 import com.xy.utils.SaTokenUtils;
 import io.swagger.annotations.Api;
@@ -20,9 +18,9 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import java.util.List;
+
 import static com.xy.utils.Beans.copy;
-import static com.xy.utils.PlusBeans.toIPage;
-import static com.xy.utils.PlusBeans.toPageBean;
 
 /**
  * <p>
@@ -40,33 +38,29 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
     @PostMapping("save")
     @ApiOperation("添加系统")
     public R<Long> save(@RequestBody @Validated SysSystemDto.Save save) {
-        long count = count(new LambdaQueryWrapper<SysSystem>()
-                .eq(SysSystem::getCode, save.getCode())
-                .eq(SysSystem::getSysUserId, SaTokenUtils.getId())
-        );
+        long count = count(new LambdaQueryWrapper<SysSystem>().eq(SysSystem::getCode, save.getCode()));
         if (count > 0) {
             return R.fail("标识已存在");
         }
         long loginId = Long.parseLong(SaTokenUtils.getId().toString());
         SysSystem sysSystem = copy(SysSystem.class, save)
-                .create(loginId)
-                .setSysUserId(loginId);
+                .create(loginId);
         save(sysSystem);
         return R.ok(sysSystem.getId());
     }
 
-    @PostMapping("page")
-    @ApiOperation("分页查询")
-    public R<PageBean<SysSystemDto.Vo>> page(@RequestBody SysSystemDto.Select select) {
+    @PostMapping("list")
+    @ApiOperation("列表查询")
+    public R<List<SysSystemDto.Vo>> list(@RequestBody SysSystemDto.Select select) {
+        List<Long> systemIds = RedisCache.getSystemIds(SaTokenUtils.getId(Long.class));
         LambdaQueryWrapper<SysSystem> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(select, SysSystem.class)
+                .in(SysSystem::getId, systemIds)
                 .ge(SysSystem::getCreateTime, select.getBeginCreateTime())
                 .le(SysSystem::getCreateTime, select.getEndCreateTime())
                 .like(SysSystem::getName)
                 .build();
-        //判断数据权限
-        RedisCache.getDataAuth(Long.parseLong(SaTokenUtils.getId().toString()), lambdaQueryWrapper, SysSystem::getSysUserId);
-        IPage<SysSystem> page = page(toIPage(select.getPage()), lambdaQueryWrapper);
-        return R.ok(toPageBean(SysSystemDto.Vo.class, page));
+        List<SysSystem> list = list(lambdaQueryWrapper);
+        return R.ok(copy(SysSystemDto.Vo.class, list));
     }
 
     @PostMapping("update")

+ 0 - 118
authorize-api-service/src/main/java/com/xy/service/impl/SysSystemUserServiceImpl.java

@@ -1,118 +0,0 @@
-package com.xy.service.impl;
-
-import cn.dev33.satoken.stp.StpUtil;
-import cn.hutool.crypto.SecureUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.xy.dto.SysSystemUserDto;
-import com.xy.entity.SysSystemUser;
-import com.xy.mapper.SysSystemUserMapper;
-import com.xy.redis.RedisCache;
-import com.xy.service.SysSystemUserService;
-import com.xy.utils.*;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.AllArgsConstructor;
-import org.springframework.stereotype.Service;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-
-import java.time.LocalDateTime;
-
-import static com.xy.utils.PlusBeans.toIPage;
-import static com.xy.utils.PlusBeans.toPageBean;
-
-/**
- * <p>
- * 权限用户表 服务实现类
- * </p>
- *
- * @author lijin
- * @since 2022-12-09
- */
-@Service
-@AllArgsConstructor
-@Api(tags = "权限用户接口")
-public class SysSystemUserServiceImpl extends ServiceImpl<SysSystemUserMapper, SysSystemUser> implements SysSystemUserService {
-
-    @Override
-    @ApiOperation("登录")
-    public R<String> login(SysSystemUserDto.Login login) {
-        //校验账密
-        SysSystemUser sysSystemUser = getOne(new LambdaQueryWrapper<SysSystemUser>()
-                .eq(SysSystemUser::getAccount, login.getAccount())
-                .eq(SysSystemUser::getPassword, SecureUtil.md5(login.getPassword()))
-        );
-        if (sysSystemUser == null) {
-            return R.fail("账号或密码错误");
-        }
-        if (!sysSystemUser.getStatus()) {
-            return R.fail("账号已被封禁");
-        }
-        //生成token
-        StpUtil.login(sysSystemUser.getId());
-        //更新登录信息
-        SysSystemUserDto.Update update = new SysSystemUserDto.Update()
-                .setIsLogin(true);
-        update.setId(sysSystemUser.getId());
-        update(update);
-        //缓存权限相关到redis
-        RedisCache.systemCache(sysSystemUser.getId());
-        return R.ok(StpUtil.getTokenValue());
-    }
-
-    @Override
-    @ApiOperation("注册")
-    public R register(SysSystemUserDto.Login login) {
-        //校验重复
-        long count = count(new LambdaQueryWrapper<SysSystemUser>()
-                .eq(SysSystemUser::getAccount, login.getAccount())
-        );
-        if (count > 0) {
-            return R.fail("账号已存在");
-        }
-        //注册
-        SysSystemUser sysSystemUser = new SysSystemUser()
-                .setAccount(login.getAccount())
-                .setPassword(SecureUtil.md5(login.getPassword()))
-                .create(null);
-        save(sysSystemUser);
-        return R.ok();
-    }
-
-    @PostMapping("page")
-    @ApiOperation("分页查询")
-    public R<PageBean<SysSystemUserDto.Vo>> page(@RequestBody SysSystemUserDto.Select select) {
-        LambdaQueryWrapper<SysSystemUser> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(select, SysSystemUser.class)
-                .ge(SysSystemUser::getCreateTime, select.getBeginCreateTime())
-                .le(SysSystemUser::getCreateTime, select.getEndCreateTime())
-                .build();
-        IPage<SysSystemUser> page = page(toIPage(select.getPage()), lambdaQueryWrapper);
-        return R.ok(toPageBean(SysSystemUserDto.Vo.class, page));
-    }
-
-    @PostMapping("update")
-    @ApiOperation("修改")
-    public R update(@RequestBody @Validated SysSystemUserDto.Update update) {
-        SysSystemUser sysSystemUser = new SysSystemUser()
-                .setId(update.getId())
-                .setStatus(Emptys.check(update.getStatus()) ? update.getStatus() : null)
-                .setPassword(Emptys.check(update.getIsAgainPwd()) && update.getIsAgainPwd() ? "88888888" : null)
-                .setPassword(Emptys.check(update.getPassword()) ? SecureUtil.md5(update.getPassword()) : null);
-        //如果是登录则更新登录时间和次数
-        if (Emptys.check(update.getIsLogin()) && update.getIsLogin()) {
-            sysSystemUser.setLastLoginTime(LocalDateTime.now()).setLoginNum(getById(update.getId()).getLoginNum() + 1);
-        } else {
-            sysSystemUser.update(Long.parseLong(SaTokenUtils.getId().toString()));
-        }
-        updateById(sysSystemUser);
-        //如果封禁账号则踢下线
-        if (Emptys.check(update.getStatus()) && !update.getStatus()) {
-            StpUtil.logout(SaTokenUtils.getId());
-        }
-        return R.ok();
-    }
-
-}

+ 1 - 2
authorize-api-service/src/main/java/com/xy/service/impl/SysWorkUserServiceImpl.java

@@ -179,8 +179,7 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
                         .eq(SysWorkUser::getEmail, loginDto.getLoginName())
                         .or()
                         .eq(SysWorkUser::getPhone, loginDto.getLoginName()))
-                .eq(SysWorkUser::getPassword, SecureUtil.md5(loginDto.getPassword()))
-                .eq(SysWorkUser::getSysUserId, longId);
+                .eq(SysWorkUser::getPassword, SecureUtil.md5(loginDto.getPassword()));
         SysWorkUser sysWorkUser = getOne(lambdaQueryWrapper);
         if (sysWorkUser == null) {
             return R.fail("账号或密码错误");

+ 94 - 0
authorize-api/src/main/java/com/xy/dto/SysMenuDto.java

@@ -1,11 +1,105 @@
 package com.xy.dto;
 
 import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.experimental.Accessors;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+import java.util.List;
+
 @Data
 @ApiModel("菜单交互类")
 @Accessors(chain = true)
 public class SysMenuDto {
+
+    @Data
+    @ApiModel("业务用户菜单树")
+    @Accessors(chain = true)
+    public static class WorkMenu {
+
+        @NotNull(message = "systemId不能为空")
+        @ApiModelProperty(value = "系统id", required = true)
+        private Long systemId;
+    }
+
+    @Data
+    @ApiModel("添加")
+    @Accessors(chain = true)
+    public static class Save {
+
+        @NotNull(message = "systemId不能为空")
+        @ApiModelProperty(value = "系统id", required = true)
+        private Long systemId;
+
+        @NotBlank(message = "code不能为空")
+        @ApiModelProperty(value = "标识", required = true)
+        private String code;
+
+        @ApiModelProperty(value = "名称", required = true)
+        private String name;
+
+        @ApiModelProperty(value = "类型 1=导航列 2=数据页 3=数据接口", required = true)
+        private Integer type;
+
+        @ApiModelProperty(value = "父菜单id")
+        private Long paterId;
+
+        @ApiModelProperty("数据接口uri")
+        private String interfaceUri;
+
+        @ApiModelProperty("前端参数")
+        private String webJson;
+    }
+
+    @Data
+    @ApiModel("返参类")
+    @Accessors(chain = true)
+    public static class Vo {
+
+        @ApiModelProperty("父id")
+        private Long paterId;
+
+        @ApiModelProperty("系统id")
+        private Long sysId;
+
+        @ApiModelProperty("标识")
+        private String code;
+
+        @ApiModelProperty("名称")
+        private String name;
+
+        @ApiModelProperty("类型;1=导航列 2=数据页 3=数据接口")
+        private Integer type;
+
+        @ApiModelProperty("数据接口uri")
+        private String interfaceUri;
+
+        @ApiModelProperty("前端参数")
+        private String webJson;
+
+        @ApiModelProperty("状态")
+        private Boolean status;
+
+        @ApiModelProperty("唯一标识")
+        private Long id;
+
+        @ApiModelProperty("创建时间")
+        private LocalDateTime createTime;
+
+        @ApiModelProperty("更新时间")
+        private LocalDateTime updateTime;
+
+        @ApiModelProperty("创建人")
+        private Long createUser;
+
+        @ApiModelProperty("更新人")
+        private Long updateUser;
+
+        @ApiModelProperty("子级集合")
+        private List<Vo> sonSysMenu;
+    }
+
 }

+ 0 - 6
authorize-api/src/main/java/com/xy/dto/SysSystemDto.java

@@ -51,9 +51,6 @@ public class SysSystemDto {
     @Accessors(chain = true)
     @ApiModel("查询交互")
     public static class Select extends Vo {
-        @ApiModelProperty("分页对象")
-        private PageBean page;
-
         @JsonFormat(pattern = "yyyy-MM-dd")
         @ApiModelProperty(value = "创建时间-起")
         private LocalDate beginCreateTime;
@@ -91,9 +88,6 @@ public class SysSystemDto {
         @ApiModelProperty("更新人")
         private Long updateUser;
 
-        @ApiModelProperty("权限用户id")
-        private Long sysUserId;
-
         @ApiModelProperty("标识")
         private String code;
 

+ 0 - 114
authorize-api/src/main/java/com/xy/dto/SysSystemUserDto.java

@@ -1,114 +0,0 @@
-package com.xy.dto;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import com.xy.utils.PageBean;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-import lombok.experimental.Accessors;
-
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Pattern;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-
-@Data
-@ApiModel("权限用户交互类")
-@Accessors(chain = true)
-public class SysSystemUserDto {
-
-    @Data
-    @ApiModel("查询交互类")
-    @Accessors(chain = true)
-    public static class Select extends Vo {
-        @ApiModelProperty("分页对象")
-        private PageBean page;
-
-        @JsonFormat(pattern = "yyyy-MM-dd")
-        @ApiModelProperty(value = "创建时间-起")
-        private LocalDate beginCreateTime;
-
-        @JsonFormat(pattern = "yyyy-MM-dd")
-        @ApiModelProperty(value = "创建时间-始")
-        private LocalDate endCreateTime;
-
-        public LocalDateTime getBeginCreateTime() {
-            return beginCreateTime == null ? null : beginCreateTime.atTime(0, 0, 0);
-        }
-
-        public LocalDateTime getEndCreateTime() {
-            return endCreateTime == null ? null : endCreateTime.atTime(23, 59, 59);
-        }
-    }
-
-    @Data
-    @Accessors(chain = true)
-    @ApiModel("修改交互类")
-    public static class Update {
-
-        @NotNull(message = "id不能为空")
-        @ApiModelProperty("唯一标识")
-        private Long id;
-
-        @ApiModelProperty("密码")
-        private String password;
-
-        @ApiModelProperty("状态 true=启用 false=封禁")
-        private Boolean status;
-
-        @ApiModelProperty(value = "是否是登录", hidden = true)
-        private Boolean isLogin;
-
-        @ApiModelProperty(value = "是否是重置密码")
-        private Boolean isAgainPwd;
-    }
-
-    @Data
-    @Accessors(chain = true)
-    @ApiModel("登录交互类")
-    public static class Login {
-        @ApiModelProperty(value = "账号", required = true)
-        @NotBlank(message = "account不能为空")
-        @Pattern(regexp = "^[a-zA-z0-9]{6,11}$", message = "account必须为数字或字母,长度6-11位之间")
-        private String account;
-
-        @ApiModelProperty(value = "密码", required = true)
-        @NotBlank(message = "password不能为空")
-        @Pattern(regexp = "^[a-zA-z0-9]{6,11}$", message = "password必须为数字或字母,长度6-11位之间")
-        private String password;
-    }
-
-    @Data
-    @Accessors(chain = true)
-    @ApiModel("返参类")
-    public static class Vo {
-        @ApiModelProperty("账号")
-        private String account;
-
-        @ApiModelProperty("最后登录时间")
-        private LocalDateTime lastLoginTime;
-
-        @ApiModelProperty("登录次数")
-        private Integer loginNum;
-
-        @ApiModelProperty("状态 true=启用 false=封禁")
-        private Boolean status;
-
-        @ApiModelProperty("唯一标识")
-        private Long id;
-
-        @ApiModelProperty("创建时间")
-        private LocalDateTime createTime;
-
-        @ApiModelProperty("更新时间")
-        private LocalDateTime updateTime;
-
-        @ApiModelProperty("创建人")
-        private Long createUser;
-
-        @ApiModelProperty("更新人")
-        private Long updateUser;
-    }
-}

+ 11 - 29
authorize-api/src/main/java/com/xy/service/PublicInterface.java

@@ -1,7 +1,7 @@
 package com.xy.service;
 
 import com.xy.annotate.RestMappingController;
-import com.xy.dto.SysSystemUserDto;
+import com.xy.dto.SysMenuDto;
 import com.xy.dto.SysSystemValueDto;
 import com.xy.dto.SysWorkUser.AddDto;
 import com.xy.dto.SysWorkUser.AuthByInterface;
@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
 import javax.validation.Valid;
+import java.util.List;
 
 /**
  * 统一对外接口
@@ -21,29 +22,8 @@ import javax.validation.Valid;
 @RestMappingController("public-interface")
 public interface PublicInterface {
 
-    /**
-     * 租户登录
-     * 无需token
-     *
-     * @param login
-     * @return
-     */
-    @PostMapping("systemUserLogin")
-    R<String> login(@RequestBody @Validated SysSystemUserDto.Login login);
-
-    /**
-     * 租户注册
-     * 无需token
-     *
-     * @param login
-     * @return
-     */
-    @PostMapping("systemUserRegister")
-    R<Boolean> register(@RequestBody @Validated SysSystemUserDto.Login login);
-
     /**
      * 系统属性分页查询
-     * 需要租户token
      *
      * @param select
      * @return
@@ -53,7 +33,6 @@ public interface PublicInterface {
 
     /**
      * 业务用户注册
-     * 需要租户token
      *
      * @param addDto
      * @return
@@ -63,7 +42,6 @@ public interface PublicInterface {
 
     /**
      * 业务用户登录
-     * 需要租户token
      *
      * @param loginDto
      * @return
@@ -73,7 +51,6 @@ public interface PublicInterface {
 
     /**
      * 业务用户登出
-     * 需要业务用户token
      *
      * @return
      */
@@ -82,7 +59,6 @@ public interface PublicInterface {
 
     /**
      * 业务用户修改
-     * 需要租户token
      *
      * @return
      */
@@ -91,7 +67,6 @@ public interface PublicInterface {
 
     /**
      * 业务用户登录鉴权
-     * 需要业务用户token
      *
      * @return
      */
@@ -100,7 +75,6 @@ public interface PublicInterface {
 
     /**
      * 业务用户接口鉴权
-     * 需要业务用户token
      *
      * @return
      */
@@ -109,11 +83,19 @@ public interface PublicInterface {
 
     /**
      * 业务用户数据鉴权
-     * 需要业务用户token
      *
      * @param authByInterface
      * @return
      */
     @PostMapping("workUserAuthByData")
     R<Boolean> authByData(@RequestBody @Validated AuthByInterface authByInterface);
+
+    /**
+     * 业务用户菜单树
+     *
+     * @param workMenu
+     * @return
+     */
+    @PostMapping("workUserMenu")
+    R<List<SysMenuDto.Vo>> workMenu(@RequestBody @Validated SysMenuDto.WorkMenu workMenu);
 }

+ 23 - 0
authorize-api/src/main/java/com/xy/service/SysMenuService.java

@@ -1,6 +1,13 @@
 package com.xy.service;
 
 import com.xy.annotate.RestMappingController;
+import com.xy.dto.SysMenuDto;
+import com.xy.utils.R;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +20,20 @@ import com.xy.annotate.RestMappingController;
 @RestMappingController("sys-menu")
 public interface SysMenuService {
 
+    /**
+     * 业务用户菜单树
+     *
+     * @return
+     */
+    @PostMapping("workMenu")
+    R<List<SysMenuDto.Vo>> workMenu(@RequestBody @Validated SysMenuDto.WorkMenu workMenu);
+
+    /**
+     * 添加菜单
+     *
+     * @param save
+     * @return
+     */
+    @PostMapping("save")
+    R save(@RequestBody @Validated SysMenuDto.Save save);
 }

+ 0 - 38
authorize-api/src/main/java/com/xy/service/SysSystemUserService.java

@@ -1,38 +0,0 @@
-package com.xy.service;
-
-import com.xy.annotate.RestMappingController;
-import com.xy.dto.SysSystemUserDto;
-import com.xy.utils.R;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-
-/**
- * <p>
- * 权限用户表 服务类
- * </p>
- *
- * @author lijin
- * @since 2022-12-09
- */
-@RestMappingController("sys-system-user")
-public interface SysSystemUserService {
-
-    /**
-     * 登录
-     *
-     * @param login
-     * @return
-     */
-    @PostMapping("login")
-    R<String> login(@RequestBody @Validated SysSystemUserDto.Login login);
-
-    /**
-     * 注册
-     *
-     * @param login
-     * @return
-     */
-    @PostMapping("register")
-    R<Boolean> register(@RequestBody @Validated SysSystemUserDto.Login login);
-}