浏览代码

修改内容:权限修改

lth 1 年之前
父节点
当前提交
06434448cf

+ 48 - 0
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/component/DataPowerComponent.java

@@ -1,9 +1,12 @@
 package com.zanxiang.game.data.serve.component;
 
+import com.github.sd4324530.jtuple.Tuple2;
 import com.zanxiang.erp.base.ErpServer;
 import com.zanxiang.erp.base.rpc.ISysGameUserGroupRpc;
 import com.zanxiang.erp.security.util.SecurityUtil;
 import com.zanxiang.game.module.base.ServerInfo;
+import com.zanxiang.game.module.base.pojo.enums.GameAuthEnum;
+import com.zanxiang.game.module.base.pojo.vo.GameAuthUserVO;
 import com.zanxiang.game.module.base.rpc.GameAuthRpc;
 import com.zanxiang.module.util.JsonUtil;
 import com.zanxiang.module.util.exception.BaseException;
@@ -26,6 +29,51 @@ public class DataPowerComponent {
     @DubboReference(providedBy = ServerInfo.SERVER_DUBBO_NAME)
     private GameAuthRpc gameAuthRpc;
 
+
+
+    /**
+     * 获取当前登录用户有权限查看的用户列表
+     * 1:普通用户-投手:自己
+     * 1:普通用户-运营:游戏数据
+     * 2:投手组长:自己+组员+自然量
+     * 3:管理员/超管:所有数据
+     */
+    public Tuple2<List<Long>, List<Long>> getPowerInfo() {
+        if (SecurityUtil.isAdmin()) {
+            return null;
+        }
+        GameAuthUserVO userGameInfo = gameAuthRpc.getGameAuthByUserIds().getData();
+        if(CollectionUtils.isEmpty(userGameInfo.getGameIdList())) {
+            throw new BaseException("没有游戏查看权限,请联系管理员指派游戏权限");
+        }
+        GameAuthEnum gameAuth = userGameInfo.getGameAuthEnum();
+        Collection<Long> subUserIds = sysGameUserGroupRpc.memberUserIds(SecurityUtil.getCompanyId(), SecurityUtil.getUserId()).getData();
+        if(CollectionUtils.isEmpty(subUserIds)) {
+            throw new BaseException("服务异常,获取用户列表失败!!");
+        }
+        if (subUserIds.size() == 1) {
+            if(gameAuth == GameAuthEnum.OPERATE) {
+                // 运营
+                return Tuple2.with(null, userGameInfo.getGameIdList());
+            } else {
+                // 投手
+                return Tuple2.with(new ArrayList<>(subUserIds), userGameInfo.getGameIdList());
+            }
+        } else {
+            // 组长
+            if(gameAuth == GameAuthEnum.OPERATE) {
+                // 运营组长
+                return Tuple2.with(null, userGameInfo.getGameIdList());
+            } else {
+                // 投手组长
+                // 自然量
+                subUserIds.add(0L);
+                return Tuple2.with(new ArrayList<>(subUserIds), userGameInfo.getGameIdList());
+            }
+        }
+    }
+
+
     /**
      * 获取当前登录用户有权限查看的用户列表
      * 1:普通用户-投手:自己

+ 4 - 2
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/AdsOrderDetailService.java

@@ -1,5 +1,6 @@
 package com.zanxiang.game.data.serve.service.impl;
 
+import com.github.sd4324530.jtuple.Tuple2;
 import com.google.common.base.CaseFormat;
 import com.zanxiang.erp.security.util.SecurityUtil;
 import com.zanxiang.game.data.serve.component.DataPowerComponent;
@@ -42,8 +43,9 @@ public class AdsOrderDetailService implements IAdsOrderDetailService {
 
     @Override
     public Page<AdsOrderDetailVO> listOfPage(AdsOrderDetailListDTO dto) {
-        List<Long> userIds = dto.getPitcherId() == null ? dataPowerComponent.getSubUserIdList() : Collections.singletonList(Long.parseLong(dto.getPitcherId()));
-        List<Long> gameIds = CollectionUtils.isEmpty(dto.getGameId()) ? dataPowerComponent.getSubGameIdList() : dto.getGameId();
+        Tuple2<List<Long>, List<Long>> poerInfo = dataPowerComponent.getPowerInfo();
+        List<Long> userIds = dto.getPitcherId() == null ? poerInfo.first : Collections.singletonList(Long.parseLong(dto.getPitcherId()));
+        List<Long> gameIds = CollectionUtils.isEmpty(dto.getGameId()) ? poerInfo.second : dto.getGameId();
         if (StringUtils.isBlank(dto.getPitcherId()) && !SecurityUtil.isManager()) {
             // 只有管理员才能查看全部数据
             dto.setPitcherId(SecurityUtil.getUserId().toString());