From 228630caa111c8f3303632f2ec80c8428ddc3c51 Mon Sep 17 00:00:00 2001 From: yanyujia <3406185119@qq.com> Date: Tue, 6 Dec 2022 16:35:32 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../i3plus/core/api/iservice/dto/LanguageDTO.java | 9 ++++ .../controller/base/WhiteController.java | 54 +++++++++++++++++++--- .../controller/busi/SysRoleController.java | 6 ++- 3 files changed, 60 insertions(+), 9 deletions(-) create mode 100644 modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/dto/LanguageDTO.java diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/dto/LanguageDTO.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/dto/LanguageDTO.java new file mode 100644 index 0000000..9e494f9 --- /dev/null +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/dto/LanguageDTO.java @@ -0,0 +1,9 @@ +package cn.estsh.i3plus.core.api.iservice.dto; + +import lombok.Data; + +@Data +public class LanguageDTO { + + private String languageCode; +} diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java index 1189f4a..062706d 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.core.api.iservice.base.ISynchronizedService; import cn.estsh.i3plus.core.api.iservice.base.ISystemInitService; import cn.estsh.i3plus.core.api.iservice.base.ISystemLoginStrategyService; import cn.estsh.i3plus.core.api.iservice.busi.*; +import cn.estsh.i3plus.core.api.iservice.dto.LanguageDTO; import cn.estsh.i3plus.core.api.iservice.dto.SysMenuDTO; import cn.estsh.i3plus.core.apiservice.controller.busi.*; import cn.estsh.i3plus.core.apiservice.util.MailUtil; @@ -66,7 +67,7 @@ import com.google.common.cache.CacheBuilder; import com.taobao.api.ApiException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import lombok.val; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.map.HashedMap; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authc.*; @@ -86,7 +87,6 @@ import java.util.*; import java.util.concurrent.TimeUnit; import java.util.function.BiFunction; import java.util.stream.Collectors; -import java.util.stream.Stream; /** * @Description : @@ -491,10 +491,10 @@ public class WhiteController extends CoreBaseController { } // 记录登录记录 SessionUser sessionUser = (SessionUser)result.getResultObject(); - if(StringUtil.isEmpty(sessionUser) && StringUtil.isEmpty(sessionUser.getUserId())){ - recordSysUserLog(sessionUser.getUserId(), loginModel.getLoginName(), userLoginStatus.getValue()); - } else { + if(StringUtil.isEmpty(sessionUser) || StringUtil.isEmpty(sessionUser.getUserId())){ recordSysUserLog(null, loginModel.getLoginName(), userLoginStatus.getValue()); + } else { + recordSysUserLog(sessionUser.getUserId(), loginModel.getLoginName(), userLoginStatus.getValue()); } } @@ -518,10 +518,10 @@ public class WhiteController extends CoreBaseController { @PostMapping(value = "/find-language-code") @ApiOperation(value = "根据语言代码查询资源") - public ResultBean findSysLocaleResourceByLanguageCode(@RequestParam String languageCode) { + public ResultBean findSysLocaleResourceByLanguageCode(@RequestBody LanguageDTO languageCodeDto) { try { startMultiService(); - + String languageCode = languageCodeDto.getLanguageCode(); ValidatorBean.checkNotNull(languageCode, "语言代码不能为空"); if (sysLocaleLanguageService.getSysLocaleLanguageByCode(languageCode) == null) { throw ImppExceptionBuilder.newInstance() @@ -1610,4 +1610,44 @@ public class WhiteController extends CoreBaseController { } return result; } + /** + * 获取未用户功能权限信息 + * + * @param parentId 菜单id + * @return 处理结果 + */ + @GetMapping(value = "/no/login/menu/list") + @ApiOperation(value = "获取登录用户功能权限信息", notes = "获取首页权限信息") + public ResultBean findModuleListByNoLogin(@RequestParam String parentId, @RequestParam String userId) { + try { + ValidatorBean.checkIsNumber(parentId, "父节点不能为空"); + + List result = memTreeService.packTreeSysMenuByUserIdAndParentId(Long.valueOf(userId), Long.parseLong(parentId)); + result = findChildList(result); + + return ResultBean.success("操作成功") + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) + .setResultList(result); + } catch (ImppBusiException busExcep) { + LOGGER.error(busExcep.getErrorMsg() + ":{}", busExcep.getErrorDetail(), busExcep); + return ResultBean.fail(busExcep); + } catch (Exception e) { + LOGGER.error(LocaleUtils.getEnumLocaleResDesc(ImppExceptionEnum.SYSTEM_EXCEPTION, + ImppExceptionEnum.SYSTEM_EXCEPTION.getDescription()) + ":{}", e.getMessage(), e); + return ResultBean.fail().setCode(ImppExceptionEnum.SYSTEM_EXCEPTION.getCode()); + } + } + + private List findChildList(List findList) { + List result = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(findList)) { + for (SysMenu menu : findList) { + if (CollectionUtils.isNotEmpty(menu.getChildList())) { + result.addAll(findChildList(menu.getChildList())); + } + result.add(menu); + } + } + return result; + } } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java index 6585b68..6d087da 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysRoleController.java @@ -25,6 +25,7 @@ import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; import cn.estsh.impp.framework.boot.util.ImppRedis; import cn.estsh.impp.framework.boot.util.ResultBean; import cn.estsh.impp.framework.boot.util.ValidatorBean; +import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections.CollectionUtils; @@ -401,7 +402,9 @@ public class SysRoleController extends CrudBaseController { ValidatorBean.beginValid(refRoleMenu) .notNull("roleId", refRoleMenu.getRoleId()) .notNull("softType", refRoleMenu.getSoftType()); - + if (CollectionUtils.isEmpty(refRoleMenu.getMenuIdList())) { + throw ImppExceptionBuilder.newInstance().setSystemID(CommonEnumUtil.SOFT_TYPE.IMPP.getCode()).setErrorCode(ImppExceptionEnum.BUSINESS_EXCEPTION_DATA_ERROR.getCode()).setErrorDetail("未勾选菜单").build(); + } sysRoleService.refreshSysRoleRef(refRoleMenu.getRoleId(), refRoleMenu.getSoftType(), refRoleMenu.getMenuIdList() , AuthUtil.getSessionUser().getUserName()); @@ -487,5 +490,4 @@ public class SysRoleController extends CrudBaseController { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } - }