diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/AuthorizedDeptVO.java b/jsowell-common/src/main/java/com/jsowell/common/core/domain/vo/AuthorizedDeptVO.java similarity index 89% rename from jsowell-pile/src/main/java/com/jsowell/pile/vo/web/AuthorizedDeptVO.java rename to jsowell-common/src/main/java/com/jsowell/common/core/domain/vo/AuthorizedDeptVO.java index 0958f5022..051006eda 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/AuthorizedDeptVO.java +++ b/jsowell-common/src/main/java/com/jsowell/common/core/domain/vo/AuthorizedDeptVO.java @@ -1,4 +1,4 @@ -package com.jsowell.pile.vo.web; +package com.jsowell.common.core.domain.vo; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/jsowell-common/src/main/java/com/jsowell/common/util/SecurityUtils.java b/jsowell-common/src/main/java/com/jsowell/common/util/SecurityUtils.java index a63c8cfd5..24a077516 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/util/SecurityUtils.java +++ b/jsowell-common/src/main/java/com/jsowell/common/util/SecurityUtils.java @@ -1,11 +1,18 @@ package com.jsowell.common.util; +import com.google.common.collect.Lists; +import com.jsowell.common.constant.HttpStatus; +import com.jsowell.common.core.domain.entity.SysDept; +import com.jsowell.common.core.domain.entity.SysRole; +import com.jsowell.common.core.domain.entity.SysUser; +import com.jsowell.common.core.domain.model.LoginUser; +import com.jsowell.common.core.domain.vo.AuthorizedDeptVO; +import com.jsowell.common.exception.ServiceException; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import com.jsowell.common.constant.HttpStatus; -import com.jsowell.common.core.domain.model.LoginUser; -import com.jsowell.common.exception.ServiceException; + +import java.util.List; /** * 安全服务工具类 @@ -96,4 +103,41 @@ public class SecurityUtils { public static boolean isAdmin(Long userId) { return userId != null && 1L == userId; } + + // 查询登录用户权限 + public static AuthorizedDeptVO getAuthorizedMap() { + // 登录用户 + LoginUser loginUser = getLoginUser(); + if (loginUser == null) { + return null; + } + // 用户 + SysUser user = loginUser.getUser(); + if (user == null) { + return null; + } + AuthorizedDeptVO resultVO = AuthorizedDeptVO.builder().build(); + // 登录用户所属部门(运营商或站点 根据父级id判断) + SysDept dept = user.getDept(); + if (dept == null) { + return null; + } + // 登录用户角色 + List roles = user.getRoles(); + Long parentId = dept.getParentId(); + List merchantDeptIds = Lists.newArrayList(); + List stationDeptIds = Lists.newArrayList(); + if (parentId == 0L) { + // 父级id是0,表明是该账号挂在平台下面,是系统管理员 + } else if (parentId == 100L) { + // 父级id是100,表明是该账号挂在运营商下面,是运营商管理员 + merchantDeptIds.add(String.valueOf(dept.getDeptId())); + resultVO.setMerchantDeptIds(merchantDeptIds); + } else { + // 其他情况,表明是站点管理员 + stationDeptIds.add(String.valueOf(dept.getDeptId())); + resultVO.setStationDeptIds(stationDeptIds); + } + return resultVO; + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index c8822f445..b3ae832f4 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -149,6 +149,8 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { @Override @DataScope(deptAlias = "t3") public List selectOrderBasicInfoList(QueryOrderDTO dto) { + // 权限过滤 + List orderListVOS = orderBasicInfoMapper.selectOrderBasicInfoList(dto); if (CollectionUtils.isNotEmpty(orderListVOS)) { for (OrderListVO orderListVO : orderListVOS) { diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java index 0d84ffd3b..3885b1403 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileStationInfoServiceImpl.java @@ -5,9 +5,7 @@ import com.github.pagehelper.PageInfo; import com.google.common.collect.Lists; import com.jsowell.common.constant.Constants; import com.jsowell.common.core.domain.entity.SysDept; -import com.jsowell.common.core.domain.entity.SysRole; -import com.jsowell.common.core.domain.entity.SysUser; -import com.jsowell.common.core.domain.model.LoginUser; +import com.jsowell.common.core.domain.vo.AuthorizedDeptVO; import com.jsowell.common.core.page.PageResponse; import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.DistanceUtils; @@ -26,7 +24,6 @@ import com.jsowell.pile.vo.base.ConnectorInfoVO; import com.jsowell.pile.vo.base.MerchantInfoVO; import com.jsowell.pile.vo.base.StationInfoVO; import com.jsowell.pile.vo.uniapp.CurrentTimePriceDetails; -import com.jsowell.pile.vo.web.AuthorizedDeptVO; import com.jsowell.pile.vo.web.PileStationVO; import com.jsowell.system.service.SysDeptService; import lombok.extern.slf4j.Slf4j; @@ -128,45 +125,6 @@ public class PileStationInfoServiceImpl implements IPileStationInfoService { return pileStationInfoMapper.selectPileStationInfoList(pileStationInfo); } - // 查询登录用户权限id - private AuthorizedDeptVO getAuthorizedMap() { - // 登录用户 - LoginUser loginUser = SecurityUtils.getLoginUser(); - if (loginUser == null) { - return null; - } - // 用户 - SysUser user = loginUser.getUser(); - if (user == null) { - return null; - } - AuthorizedDeptVO resultVO = AuthorizedDeptVO.builder().build(); - // 登录用户所属部门(运营商或站点 根据父级id判断) - SysDept dept = user.getDept(); - if (dept == null) { - return null; - } - // 登录用户角色 - List roles = user.getRoles(); - log.info("登录用户deptIds", roles.get(0).getDeptIds()); - Long parentId = dept.getParentId(); - List merchantDeptIds = Lists.newArrayList(); - List stationDeptIds = Lists.newArrayList(); - if (parentId == 0L) { - // 父级id是0,表明是该账号挂在平台下面,是系统管理员 - - } else if (parentId == 100L) { - // 父级id是100,表明是该账号挂在运营商下面,是运营商管理员 - merchantDeptIds.add(String.valueOf(dept.getDeptId())); - resultVO.setMerchantDeptIds(merchantDeptIds); - } else { - // 其他情况,表明是站点管理员 - stationDeptIds.add(String.valueOf(dept.getDeptId())); - resultVO.setStationDeptIds(stationDeptIds); - } - return resultVO; - } - /** * 通过运营商id查询站点信息 * @@ -271,7 +229,7 @@ public class PileStationInfoServiceImpl implements IPileStationInfoService { @Override // @DataScope(deptAlias = "t3") public List queryStationInfos(QueryStationDTO dto) { - AuthorizedDeptVO authorizedMap = getAuthorizedMap(); + AuthorizedDeptVO authorizedMap = SecurityUtils.getAuthorizedMap(); if (authorizedMap == null) { // 为空表示没有权限,返回空数组 return Lists.newArrayList();