|
@@ -7,6 +7,7 @@ import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
+import shop.alien.config.redis.BaseRedisService;
|
|
|
import shop.alien.entity.result.R;
|
|
import shop.alien.entity.result.R;
|
|
|
import shop.alien.entity.store.StorePlatformMenu;
|
|
import shop.alien.entity.store.StorePlatformMenu;
|
|
|
import shop.alien.entity.store.StorePlatformRole;
|
|
import shop.alien.entity.store.StorePlatformRole;
|
|
@@ -44,6 +45,7 @@ public class StorePlatformUserRoleServiceImpl extends ServiceImpl<StorePlatformU
|
|
|
private final StorePlatformRoleMenuService storePlatformRoleMenuService;
|
|
private final StorePlatformRoleMenuService storePlatformRoleMenuService;
|
|
|
private final StorePlatformRoleMapper storePlatformRoleMapper;
|
|
private final StorePlatformRoleMapper storePlatformRoleMapper;
|
|
|
private final StorePlatformMenuMapper storePlatformMenuMapper;
|
|
private final StorePlatformMenuMapper storePlatformMenuMapper;
|
|
|
|
|
+ private final BaseRedisService baseRedisService;
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public List<Long> getRoleIdsByUserId(Integer userId, Integer storeId) {
|
|
public List<Long> getRoleIdsByUserId(Integer userId, Integer storeId) {
|
|
@@ -177,14 +179,30 @@ public class StorePlatformUserRoleServiceImpl extends ServiceImpl<StorePlatformU
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ StoreUser storeUser = storeUserMapper.selectById(userId);
|
|
|
|
|
+ if (storeUser != null && storeUser.getPhone() != null) {
|
|
|
|
|
+ // 删除Redis中的token,key格式:storePlatform_手机号
|
|
|
|
|
+ String tokenKey = "store_" + storeUser.getPhone();
|
|
|
|
|
+ String existingToken = baseRedisService.getString(tokenKey);
|
|
|
|
|
+ if (existingToken != null) {
|
|
|
|
|
+ baseRedisService.delete(tokenKey);
|
|
|
|
|
+ log.info("清除角色编辑后的用户token成功, userId={}, phone={}, tokenKey={}",
|
|
|
|
|
+ userId, storeUser.getPhone(), tokenKey);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ log.warn("用户token不存在或已过期, userId={}, phone={}, tokenKey={}",
|
|
|
|
|
+ userId, storeUser.getPhone(), tokenKey);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// 3. 如果只是一个账号的子账号(删除前只有1个),则需要进一步判断是否为主账号,再决定是否同时逻辑删除 store_user 表
|
|
// 3. 如果只是一个账号的子账号(删除前只有1个),则需要进一步判断是否为主账号,再决定是否同时逻辑删除 store_user 表
|
|
|
if (subAccountCount == 1) {
|
|
if (subAccountCount == 1) {
|
|
|
// 查询用户信息以判断是否为主账号
|
|
// 查询用户信息以判断是否为主账号
|
|
|
- StoreUser user = storeUserMapper.selectById(userId);
|
|
|
|
|
- if (user != null) {
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if (storeUser != null) {
|
|
|
// 如果用户有 storeId 字段值,说明是主账号,不应删除
|
|
// 如果用户有 storeId 字段值,说明是主账号,不应删除
|
|
|
- if (user.getStoreId() != null && user.getStoreId() > 0) {
|
|
|
|
|
- log.info("用户是主账号,不删除 store_user 记录: userId={}, storeId={}", userId, user.getStoreId());
|
|
|
|
|
|
|
+ if (storeUser.getStoreId() != null && storeUser.getStoreId() > 0) {
|
|
|
|
|
+ log.info("用户是主账号,不删除 store_user 记录: userId={}, storeId={}", userId, storeUser.getStoreId());
|
|
|
} else {
|
|
} else {
|
|
|
// 不是主账号,可以安全删除
|
|
// 不是主账号,可以安全删除
|
|
|
LambdaUpdateWrapper<StoreUser> userUpdateWrapper = new LambdaUpdateWrapper<>();
|
|
LambdaUpdateWrapper<StoreUser> userUpdateWrapper = new LambdaUpdateWrapper<>();
|
|
@@ -510,6 +528,21 @@ public class StorePlatformUserRoleServiceImpl extends ServiceImpl<StorePlatformU
|
|
|
continue; // 继续处理下一个用户
|
|
continue; // 继续处理下一个用户
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ StoreUser storeUser = storeUserMapper.selectById(userId);
|
|
|
|
|
+ if (storeUser != null && storeUser.getPhone() != null) {
|
|
|
|
|
+ // 删除Redis中的token,key格式:storePlatform_手机号
|
|
|
|
|
+ String tokenKey = "store_" + storeUser.getPhone();
|
|
|
|
|
+ String existingToken = baseRedisService.getString(tokenKey);
|
|
|
|
|
+ if (existingToken != null) {
|
|
|
|
|
+ baseRedisService.delete(tokenKey);
|
|
|
|
|
+ log.info("清除角色编辑后的用户token成功 userId={}, phone={}, tokenKey={}",
|
|
|
|
|
+ userId, storeUser.getPhone(), tokenKey);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ log.warn("用户token不存在或已过期,userId={}, phone={}, tokenKey={}",
|
|
|
|
|
+ userId, storeUser.getPhone(), tokenKey);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
log.info("逻辑删除 store_platform_user_role 记录成功: userId={}, storeId={}, 删除数量={}", userId, storeId, result);
|
|
log.info("逻辑删除 store_platform_user_role 记录成功: userId={}, storeId={}, 删除数量={}", userId, storeId, result);
|
|
|
|
|
|
|
|
// 3. 判断是否只有一个子账号,如果是则同时逻辑删除 store_user 表
|
|
// 3. 判断是否只有一个子账号,如果是则同时逻辑删除 store_user 表
|