Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master'

谭斌 2 жил өмнө
parent
commit
b8bd9bf824

+ 12 - 7
authorize-api-service/src/main/java/com/xy/redis/RedisCache.java

@@ -10,12 +10,18 @@ import com.xy.entity.join.SysMenuJoinSysRoleMenu;
 import com.xy.mapper.SysMenuMapper;
 import com.xy.mapper.SysRoleMapper;
 import com.xy.mapper.SysSystemMapper;
-import com.xy.utils.*;
+import com.xy.utils.Beans;
+import com.xy.utils.Emptys;
+import com.xy.utils.RedisService;
+import com.xy.utils.SpringBeanUtils;
 import icu.mhb.mybatisplus.plugln.core.JoinLambdaWrapper;
 import lombok.Data;
 import lombok.experimental.Accessors;
 import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -131,17 +137,17 @@ public class RedisCache {
      * 判断数据查询权限
      *
      * @param loginId 登录id
-     * @param dataUri 数据接口uri
      * @return true=管理员数据查询权限 false=普通查询权限
      */
-    public static boolean getDataAuth(Long loginId, String dataUri) {
+    public static boolean getDataAuth(Long loginId) {
+        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
         //获取redis缓存
         List<CacheEntity> cacheEntities = getRedisService().getMap(getKey(loginId), DEFAULT_STSTEM_ID);
         //遍历角色
         for (CacheEntity cacheEntity : cacheEntities) {
             //根据 接口uri和管理员数据查询权限=true 查找角色菜单,找到则有管理员数据查询权限,反之普通查询权限
             SysMenuJoinSysRoleMenu sysMenuJoinSysRoleMenu = new JArrayList<>(cacheEntity.getList()).filter()
-                    .eq(SysMenuJoinSysRoleMenu::getInterfaceUri, dataUri)
+                    .eq(SysMenuJoinSysRoleMenu::getInterfaceUri, request.getRequestURI())
                     .eq(SysMenuJoinSysRoleMenu::getSelectIsAdmin, true)
                     .object();
             if (sysMenuJoinSysRoleMenu != null) {
@@ -155,13 +161,12 @@ public class RedisCache {
      * 判断数据查询权限
      *
      * @param loginId            登录id
-     * @param dataUri            数据接口uri
      * @param lambdaQueryWrapper 查询构造器
      * @param function           普通查询权限时,条件lambda引用字段
      * @return true=管理员数据查询权限 false=普通查询权限
      */
-    public static <T> boolean getDataAuth(Long loginId, String dataUri, LambdaQueryWrapper<T> lambdaQueryWrapper, SFunction<T, ?> function) {
-        boolean dataAuth = getDataAuth(loginId, dataUri);
+    public static <T> boolean getDataAuth(Long loginId, LambdaQueryWrapper<T> lambdaQueryWrapper, SFunction<T, ?> function) {
+        boolean dataAuth = getDataAuth(loginId);
         if (!dataAuth) {
             lambdaQueryWrapper.eq(function, loginId);
         }

+ 9 - 5
authorize-api-service/src/main/java/com/xy/service/impl/SysSystemServiceImpl.java

@@ -20,8 +20,6 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 
-import javax.servlet.http.HttpServletRequest;
-
 import static com.xy.utils.Beans.copy;
 import static com.xy.utils.PlusBeans.toIPage;
 import static com.xy.utils.PlusBeans.toPageBean;
@@ -39,8 +37,6 @@ import static com.xy.utils.PlusBeans.toPageBean;
 @AllArgsConstructor
 public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem> implements SysSystemService {
 
-    private HttpServletRequest request;
-
     @PostMapping("save")
     @ApiOperation("添加系统")
     public R<Long> save(@RequestBody @Validated SysSystemDto.Save save) {
@@ -65,8 +61,16 @@ public class SysSystemServiceImpl extends ServiceImpl<SysSystemMapper, SysSystem
                 .like(SysSystem::getName)
                 .build();
         //判断数据权限
-        RedisCache.getDataAuth(Long.parseLong(SaTokenUtils.getId().toString()), request.getRequestURI(), lambdaQueryWrapper, SysSystem::getSysUserId);
+        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));
     }
+
+    @PostMapping("update")
+    @ApiOperation("修改系统")
+    public R<Boolean> update(@RequestBody @Validated SysSystemDto.Update update) {
+        SysSystem sysSystem = copy(SysSystem.class, update).update(Long.parseLong(SaTokenUtils.getId().toString()));
+        updateById(sysSystem);
+        return R.ok();
+    }
 }

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

@@ -15,6 +15,7 @@ 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;
 
@@ -94,7 +95,7 @@ public class SysSystemUserServiceImpl extends ServiceImpl<SysSystemUserMapper, S
 
     @PostMapping("update")
     @ApiOperation("修改")
-    public R<Boolean> update(@RequestBody SysSystemUserDto.Update update) {
+    public R<Boolean> update(@RequestBody @Validated SysSystemUserDto.Update update) {
         SysSystemUser sysSystemUser = new SysSystemUser()
                 .setId(update.getId())
                 .setStatus(Emptys.check(update.getStatus()) ? update.getStatus() : null)

+ 22 - 1
authorize-api/src/main/java/com/xy/dto/SysSystemDto.java

@@ -8,6 +8,8 @@ import lombok.Data;
 import lombok.experimental.Accessors;
 
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 
@@ -18,7 +20,7 @@ public class SysSystemDto {
 
     @Data
     @Accessors(chain = true)
-    @ApiModel("更新交互")
+    @ApiModel("添加交互")
     public static class Save {
 
         @NotBlank(message = "code不能为空")
@@ -30,6 +32,25 @@ public class SysSystemDto {
         private String name;
     }
 
+    @Data
+    @Accessors(chain = true)
+    @ApiModel("更新交互")
+    public static class Update {
+
+        @NotNull(message = "id不能为空")
+        @ApiModelProperty("唯一标识")
+        private Long id;
+
+        @ApiModelProperty("标识")
+        private String code;
+
+        @ApiModelProperty("名称")
+        private String name;
+
+        @ApiModelProperty("状态 true=启用 false=封禁")
+        private Boolean status;
+    }
+
     @Data
     @Accessors(chain = true)
     @ApiModel("查询交互")

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

@@ -8,6 +8,8 @@ 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;
@@ -46,6 +48,7 @@ public class SysSystemUserDto {
     @ApiModel("修改交互类")
     public static class Update {
 
+        @NotNull(message = "id不能为空")
         @ApiModelProperty("唯一标识")
         private Long id;