Compare commits

...

5 Commits

Author SHA1 Message Date
wangyetao 272d88657b 自定义注解 1 month ago
wangyetao 525e0b7915 自定义注解 1 month ago
wangyetao 39658f01f3 获取用户权限地区 1 month ago
HY-LSZNWIN10\Administrator 7c05e5176e 获取用户权限地区 1 month ago
HY-LSZNWIN10\Administrator 8239b27272 获取用户权限地区 1 month ago
  1. 55
      src/main/java/com/example/demo/Util/SecurityUtils.java
  2. 16
      src/main/java/com/example/demo/annotation/DataScope.java
  3. 8
      src/main/java/com/example/demo/controller/GeneralController.java
  4. 2
      src/main/java/com/example/demo/service/GeneralService.java
  5. 8
      src/main/java/com/example/demo/serviceImpl/GeneralServiceImpl.java

55
src/main/java/com/example/demo/Util/SecurityUtils.java

@ -0,0 +1,55 @@
package com.example.demo.Util;
import com.example.demo.domain.entity.Admin;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import java.util.Arrays;
import java.util.List;
/**
* 安全服务工具类
*/
public class SecurityUtils {
//用户ID
public static Integer getUserId() {
try {
return getLoginUser().getId();
} catch (Exception e) {
throw new RuntimeException("获取用户ID异常", e);
}
}
//获取用户地区信息
public static List<String> getMarketList() {
try {
return Arrays.stream(getLoginUser().getMarket().split(",")).toList();
} catch (Exception e) {
throw new RuntimeException("获取部门ID异常", e);
}
}
//获取用户账户
public static String getUsername() {
try {
return getLoginUser().getUsername();
} catch (Exception e) {
throw new RuntimeException("获取用户账户异常", e);
}
}
//获取当前登录用户
public static Admin getLoginUser() {
try {
return (Admin) getAuthentication().getPrincipal();
} catch (Exception e) {
throw new RuntimeException("获取用户信息异常", e);
}
}
//获取Authentication
public static Authentication getAuthentication() {
return SecurityContextHolder.getContext().getAuthentication();
}
}

16
src/main/java/com/example/demo/annotation/DataScope.java

@ -0,0 +1,16 @@
package com.example.demo.annotation;
import java.lang.annotation.*;
/**
* 数据权限过滤注解
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DataScope {
/**
* 表别名
*/
String tableAlias() default "";
}

8
src/main/java/com/example/demo/controller/GeneralController.java

@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Date;
import java.util.List;
/**
@ -53,4 +54,11 @@ public class GeneralController {
List<String> list = generalService.getActivity();
return Result.success(list);
}
//获取用户权限地区
@PostMapping("/getFilterMarket")
public Result getFilterMarket() {
List<String> list = generalService.getFilterMarket();
return Result.success(list);
}
}

2
src/main/java/com/example/demo/service/GeneralService.java

@ -32,5 +32,7 @@ public interface GeneralService {
String formatDate(Date date) ;
//获取时间段内的所有日期包含起始和结束日
List<Date> getAllDatesBetween(Date start, Date end);
//获取过滤地区
List<String> getFilterMarket();
}

8
src/main/java/com/example/demo/serviceImpl/GeneralServiceImpl.java

@ -1,5 +1,6 @@
package com.example.demo.serviceImpl;
import com.example.demo.Util.SecurityUtils;
import com.example.demo.mapper.GeneralMapper;
import com.example.demo.service.GeneralService;
import org.springframework.beans.factory.annotation.Autowired;
@ -107,6 +108,13 @@ public class GeneralServiceImpl implements GeneralService {
return dates;
}
/**
* 获取当前用户有权限查看的market列表
*/
@Override
public List<String> getFilterMarket() {
return SecurityUtils.getMarketList();
}

Loading…
Cancel
Save