【更新】登录时如果新的用户登录没有菜单则清空顶部模块选中

This commit is contained in:
俞宝山
2026-01-27 00:22:02 +08:00
parent 93d7c5daf2
commit cf34cdb621
10 changed files with 80 additions and 5 deletions

View File

@@ -269,7 +269,7 @@ public class AuthThirdServiceImpl extends ServiceImpl<AuthThirdMapper, AuthThird
.clientSecret(devConfigApi.getValueByKey(SNOWY_THIRD_IAM_CLIENT_SECRET_KEY))
.redirectUri(devConfigApi.getValueByKey(SNOWY_THIRD_IAM_REDIRECT_URL_KEY))
.ignoreCheckState(true)
.scopes(CollectionUtil.newArrayList("profile", "account", "email", "phone"))
.scopes(CollectionUtil.newArrayList("profile", "account", "email", "phone", "org", "position"))
.build(), Map.of(
"authorizeUrl", devConfigApi.getValueByKey(SNOWY_THIRD_IAM_AUTHORIZE_URL_KEY),
"accessTokenUrl", devConfigApi.getValueByKey(SNOWY_THIRD_IAM_ACCESS_TOKEN_URL_KEY),

View File

@@ -36,7 +36,13 @@ public enum BizDataTypeEnum {
/**
* 人员
*/
USER("USER");
USER("USER"),
/**
* 用户组
*/
GROUP("GROUP");
private final String value;

View File

@@ -28,6 +28,7 @@ import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
import vip.xiaonuo.biz.core.enums.BizDataTypeEnum;
import vip.xiaonuo.biz.modular.group.entity.BizGroup;
import vip.xiaonuo.biz.modular.group.mapper.BizGroupMapper;
import vip.xiaonuo.biz.modular.group.param.*;
@@ -39,6 +40,7 @@ import vip.xiaonuo.biz.modular.user.enums.BizUserStatusEnum;
import vip.xiaonuo.biz.modular.user.service.BizUserService;
import vip.xiaonuo.common.enums.CommonSortOrderEnum;
import vip.xiaonuo.common.exception.CommonException;
import vip.xiaonuo.common.listener.CommonDataChangeEventCenter;
import vip.xiaonuo.common.page.CommonPageRequest;
import vip.xiaonuo.sys.api.SysGroupApi;
@@ -85,6 +87,8 @@ public class BizGroupServiceImpl extends ServiceImpl<BizGroupMapper, BizGroup> i
public void add(BizGroupAddParam bizGroupAddParam) {
BizGroup bizGroup = BeanUtil.toBean(bizGroupAddParam, BizGroup.class);
this.save(bizGroup);
// 发布增加事件
CommonDataChangeEventCenter.doAddWithData(BizDataTypeEnum.GROUP.getValue(), JSONUtil.createArray().put(bizGroup));
}
@Transactional(rollbackFor = Exception.class)
@@ -93,13 +97,18 @@ public class BizGroupServiceImpl extends ServiceImpl<BizGroupMapper, BizGroup> i
BizGroup bizGroup = this.queryEntity(bizGroupEditParam.getId());
BeanUtil.copyProperties(bizGroupEditParam, bizGroup);
this.updateById(bizGroup);
// 发布更新事件
CommonDataChangeEventCenter.doUpdateWithData(BizDataTypeEnum.GROUP.getValue(), JSONUtil.createArray().put(bizGroup));
}
@Transactional(rollbackFor = Exception.class)
@Override
public void delete(List<BizGroupIdParam> bizGroupIdParamList) {
List<String> groupIdList = CollStreamUtil.toList(bizGroupIdParamList, BizGroupIdParam::getId);
// 执行删除
this.removeByIds(CollStreamUtil.toList(bizGroupIdParamList, BizGroupIdParam::getId));
this.removeByIds(groupIdList);
// 发布删除事件
CommonDataChangeEventCenter.doDeleteWithDataIdList(BizDataTypeEnum.GROUP.getValue(), groupIdList);
}
@Override

View File

@@ -12,11 +12,14 @@
*/
package vip.xiaonuo.dev.modular.dict.provider;
import cn.hutool.json.JSONObject;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import vip.xiaonuo.dev.api.DevDictApi;
import vip.xiaonuo.dev.modular.dict.service.DevDictService;
import java.util.List;
/**
* 字典API接口实现类
*
@@ -38,4 +41,15 @@ public class DevDictApiProvider implements DevDictApi {
public String getDictLabel(String typeCode, String value) {
return devDictService.getDictLabel(typeCode, value);
}
/**
* 根据父类型获取字典列表
*
* @author yubaoshan
* @date 2025/6/6 13:04
*/
@Override
public List<JSONObject> getDictListByParentDictValue(String typeCode) {
return devDictService.getDictListByParentDictValue(typeCode);
}
}

View File

@@ -13,6 +13,7 @@
package vip.xiaonuo.dev.modular.dict.service;
import cn.hutool.core.lang.tree.Tree;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import vip.xiaonuo.dev.modular.dict.entity.DevDict;
@@ -99,4 +100,12 @@ public interface DevDictService extends IService<DevDict> {
* @date 2025/6/6 13:04
*/
String getDictLabel(String typeCode, String value);
/**
* 根据父类型获取字典列表
*
* @author yubaoshan
* @date 2025/6/6 13:04
*/
List<JSONObject> getDictListByParentDictValue(String typeCode);
}

View File

@@ -22,6 +22,7 @@ import cn.hutool.core.lang.tree.parser.DefaultNodeParser;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -251,4 +252,11 @@ public class DevDictServiceImpl extends ServiceImpl<DevDictMapper, DevDict> impl
}
return null;
}
@Override
public List<JSONObject> getDictListByParentDictValue(String typeCode) {
DevDict parentDict = this.getOne(new LambdaQueryWrapper<DevDict>().eq(DevDict::getDictValue, typeCode));
return this.list(new LambdaQueryWrapper<DevDict>().eq(DevDict::getParentId, parentDict.getId())).stream()
.map(JSONUtil::parseObj).collect(Collectors.toList());
}
}

View File

@@ -46,7 +46,12 @@ public enum SysDataTypeEnum {
/**
* 用户
*/
USER("USER");
USER("USER"),
/**
* 用户组
*/
GROUP("GROUP");
private final String value;

View File

@@ -19,6 +19,7 @@ import cn.hutool.core.lang.tree.TreeNode;
import cn.hutool.core.lang.tree.TreeUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -28,13 +29,16 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import vip.xiaonuo.common.enums.CommonSortOrderEnum;
import vip.xiaonuo.common.exception.CommonException;
import vip.xiaonuo.common.listener.CommonDataChangeEventCenter;
import vip.xiaonuo.common.page.CommonPageRequest;
import vip.xiaonuo.sys.core.enums.SysDataTypeEnum;
import vip.xiaonuo.sys.modular.group.entity.SysGroup;
import vip.xiaonuo.sys.modular.group.mapper.SysGroupMapper;
import vip.xiaonuo.sys.modular.group.param.*;
import vip.xiaonuo.sys.modular.group.service.SysGroupService;
import vip.xiaonuo.sys.modular.org.entity.SysOrg;
import vip.xiaonuo.sys.modular.org.service.SysOrgService;
import vip.xiaonuo.sys.modular.position.param.SysPositionIdParam;
import vip.xiaonuo.sys.modular.relation.entity.SysRelation;
import vip.xiaonuo.sys.modular.relation.enums.SysRelationCategoryEnum;
import vip.xiaonuo.sys.modular.relation.service.SysRelationService;
@@ -87,6 +91,8 @@ public class SysGroupServiceImpl extends ServiceImpl<SysGroupMapper, SysGroup> i
public void add(SysGroupAddParam sysGroupAddParam) {
SysGroup sysGroup = BeanUtil.toBean(sysGroupAddParam, SysGroup.class);
this.save(sysGroup);
// 发布增加事件
CommonDataChangeEventCenter.doAddWithData(SysDataTypeEnum.GROUP.getValue(), JSONUtil.createArray().put(sysGroup));
}
@Transactional(rollbackFor = Exception.class)
@@ -95,13 +101,18 @@ public class SysGroupServiceImpl extends ServiceImpl<SysGroupMapper, SysGroup> i
SysGroup sysGroup = this.queryEntity(sysGroupEditParam.getId());
BeanUtil.copyProperties(sysGroupEditParam, sysGroup);
this.updateById(sysGroup);
// 发布更新事件
CommonDataChangeEventCenter.doUpdateWithData(SysDataTypeEnum.GROUP.getValue(), JSONUtil.createArray().put(sysGroup));
}
@Transactional(rollbackFor = Exception.class)
@Override
public void delete(List<SysGroupIdParam> sysGroupIdParamList) {
List<String> groupIdList = CollStreamUtil.toList(sysGroupIdParamList, SysGroupIdParam::getId);
// 执行删除
this.removeByIds(CollStreamUtil.toList(sysGroupIdParamList, SysGroupIdParam::getId));
this.removeByIds(groupIdList);
// 发布删除事件
CommonDataChangeEventCenter.doDeleteWithDataIdList(SysDataTypeEnum.GROUP.getValue(), groupIdList);
}
@Override

View File

@@ -1469,6 +1469,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
if (ObjectUtil.isEmpty(sysUser)) {
throw new CommonException("用户不存在id值为{}", id);
}
transService.transOne(sysUser);
return sysUser;
}