From 01bbc423848483d049ec358d9969dcf84949227f Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 26 Oct 2022 09:09:02 +0800
Subject: [PATCH] 后端返回用户封禁状态

---
 src/main/java/org/springblade/modules/system/controller/UserController.java |   20 ++++++++++++++++----
 1 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/springblade/modules/system/controller/UserController.java b/src/main/java/org/springblade/modules/system/controller/UserController.java
index 638d846..f7481aa 100644
--- a/src/main/java/org/springblade/modules/system/controller/UserController.java
+++ b/src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -27,6 +27,7 @@
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
 import org.springblade.common.cache.CacheNames;
+import org.springblade.common.cache.ParamCache;
 import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.launch.constant.AppConstant;
@@ -44,6 +45,7 @@
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringPool;
 import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.modules.auth.granter.PasswordTokenGranter;
 import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.excel.UserExcel;
 import org.springblade.modules.system.excel.UserImporter;
@@ -83,7 +85,7 @@
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "查看详情", notes = "传入id")
 	@GetMapping("/detail")
-	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	@PreAuth("hasAnyRole('administrator,admin,user')")
 	public R<UserVO> detail(User user) {
 		User detail = userService.getOne(Condition.getQueryWrapper(user));
 		return R.data(UserWrapper.build().entityVO(detail));
@@ -130,7 +132,18 @@
 	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
 	public R<IPage<UserVO>> page(@ApiIgnore User user, Query query, Long deptId, BladeUser bladeUser) {
 		IPage<User> pages = userService.selectUserPage(Condition.getPage(query), user, deptId, (bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? StringPool.EMPTY : bladeUser.getTenantId()));
-		return R.data(UserWrapper.build().pageVO(pages));
+		IPage<UserVO> userVOIPage = UserWrapper.build().pageVO(pages);
+		userVOIPage.getRecords().forEach(userVO -> {
+			int cnt = Func.toInt(bladeRedis.get(CacheNames.tenantKey(userVO.getTenantId(), CacheNames.USER_FAIL_KEY, userVO.getAccount())), 0);
+			int failCount = Func.toInt(ParamCache.getValue(PasswordTokenGranter.FAIL_COUNT_VALUE), PasswordTokenGranter.FAIL_COUNT);
+			//设置封禁状态,1为已封禁,0为未封禁
+			if (cnt >= failCount) {
+				userVO.setBannedState("1");
+			}else {
+				userVO.setBannedState("0");
+			}
+		});
+		return R.data(userVOIPage);
 	}
 
 	/**
@@ -152,7 +165,7 @@
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "修改", notes = "传入User")
 	public R update(@Valid @RequestBody User user) {
-		CacheUtil.clear(USER_CACHE);
+//		CacheUtil.clear(USER_CACHE);
 		return R.status(userService.updateUser(user));
 	}
 
@@ -342,5 +355,4 @@
 	public R getUserList(UserVO user){
 		return R.data(userService.getUserList(user));
 	}
-
 }

--
Gitblit v1.9.3