lyhzzz пре 1 година
родитељ
комит
fe3fd06c87

+ 5 - 0
src/main/java/com/fdkankan/manage/entity/JySceneUserAuth.java

@@ -82,6 +82,11 @@ public class JySceneUserAuth implements Serializable {
      */
     @TableField("can_edit_look")
     private Integer canEditLook;
+    /**
+     * 授权者id
+     */
+    @TableField("author_id")
+    private Integer authorId;
 
     @TableField("rec_status")
     @TableLogic(value = "A",delval = "I")

+ 39 - 0
src/main/java/com/fdkankan/manage/service/impl/JySceneUserAuthServiceImpl.java

@@ -21,6 +21,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -48,11 +49,24 @@ public class JySceneUserAuthServiceImpl extends ServiceImpl<IJySceneUserAuthMapp
     @Autowired
     ISysUserService sysUserService;
 
+
     @Override
     public Object getAuthList(SceneParam param) {
         if(StringUtils.isBlank(param.getNum())){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
+
+        ScenePro pro = sceneProService.getByNum(param.getNum());
+        ScenePlus plus = scenePlusService.getByNum(param.getNum());
+        if(pro == null && plus == null){
+            throw new BusinessException(ResultCode.SCENE_NOT_EXIST);
+        }
+        Long sceneUserId = pro  == null ? plus.getUserId(): pro.getUserId();
+
+        SysUser byId = sysUserService.getById(Long.valueOf(StpUtil.getLoginId().toString()));
+        JyUser loginUser = jyUserService.getBySysId(byId.getId());
+
+
         JySceneAuth jySceneAuth = jySceneAuthService.getByNum(param.getNum());
         if(jySceneAuth == null ){
             return new JySceneAuth(0);
@@ -63,21 +77,43 @@ public class JySceneUserAuthServiceImpl extends ServiceImpl<IJySceneUserAuthMapp
 
         LambdaQueryWrapper<JySceneUserAuth> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(JySceneUserAuth::getNum,param.getNum());
+        if(!sceneUserId.equals(loginUser.getUserId())){
+            List<Integer> ids = new ArrayList<>();
+            getSubAuthorIdsById(loginUser.getId(),param.getNum(),ids);
+            wrapper.in(JySceneUserAuth::getAuthorId,ids);
+        }
         wrapper.orderByDesc(JySceneUserAuth::getCreateTime);
         Page<JySceneUserAuth> page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
+
         List<Integer> jyUserIds = page.getRecords().stream().map(JySceneUserAuth::getJyUserId).collect(Collectors.toList());
         HashMap<Integer, JyUser> map = jyUserService.getByIds(jyUserIds);
+
         for (JySceneUserAuth jySceneUserAuth : page.getRecords()) {
             JyUser jyUser = map.get(jySceneUserAuth.getJyUserId());
             if(jyUser != null){
                 jySceneUserAuth.setRyId(jyUser.getRyId());
                 jySceneUserAuth.setRyNickName(jyUser.getRyNickName());
             }
+
         }
         jySceneAuth.setPageInfo(PageInfo.PageInfo(page));
         return jySceneAuth;
     }
 
+    private void getSubAuthorIdsById(Integer id,String num,List<Integer> ids) {
+        ids.add(id);
+        LambdaQueryWrapper<JySceneUserAuth> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(JySceneUserAuth::getNum,num);
+        wrapper.eq(JySceneUserAuth::getAuthorId,id);
+        List<JySceneUserAuth> list = this.list(wrapper);
+        if(list.size() >0){
+            for (JySceneUserAuth auth : list) {
+                ids.add(auth.getAuthorId());
+                getSubAuthorIdsById(auth.getAuthorId(),num,ids);
+            }
+        }
+    }
+
 
     @Override
     public void addAuth(JySceneUserAuth param) {
@@ -114,6 +150,9 @@ public class JySceneUserAuthServiceImpl extends ServiceImpl<IJySceneUserAuthMapp
             param.setId(auth.getId());
         }
         param.setJyUserId(jyUser.getId());
+        SysUser byId = sysUserService.getById(Long.valueOf(StpUtil.getLoginId().toString()));
+        JyUser loginUser = jyUserService.getBySysId(byId.getId());
+        param.setAuthorId(loginUser.getId());
         this.saveOrUpdate(param);
 
     }