瀏覽代碼

接口获取场景列表和授权信息

lyhzzz 1 年之前
父節點
當前提交
1b9d7fa345

+ 11 - 0
src/main/java/com/fdkankan/manage/controller/inner/InnerAPIController.java

@@ -9,6 +9,7 @@ import com.fdkankan.manage.entity.JyUser;
 import com.fdkankan.manage.exception.BusinessException;
 import com.fdkankan.manage.service.IJySceneUserAuthService;
 import com.fdkankan.manage.service.IJyUserService;
+import com.fdkankan.manage.service.IScenePlusService;
 import com.fdkankan.manage.service.IUserService;
 import com.fdkankan.manage.util.RsaUtils;
 import com.fdkankan.manage.vo.request.SceneParam;
@@ -27,6 +28,8 @@ public class InnerAPIController extends BaseController {
     IUserService userService;
     @Autowired
     IJySceneUserAuthService jySceneUserAuthService;
+    @Autowired
+    IScenePlusService scenePlusService;
 
     @PostMapping("/getByRyId")
     public ResultData getByRyId(@RequestBody UserParam param){
@@ -130,4 +133,12 @@ public class InnerAPIController extends BaseController {
         }
         return ResultData.ok(jySceneUserAuthService.getAuthList(param));
     }
+
+    @PostMapping("/getSceneList")
+    public ResultData getSceneList(@RequestBody SceneParam param){
+        if(StringUtils.isBlank(param.getRyId()) && StringUtils.isBlank(param.getRyNo())){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        return ResultData.ok(jySceneUserAuthService.getSceneList(param));
+    }
 }

+ 5 - 0
src/main/java/com/fdkankan/manage/service/IJySceneAuthService.java

@@ -3,6 +3,9 @@ package com.fdkankan.manage.service;
 import com.fdkankan.manage.entity.JySceneAuth;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.HashMap;
+import java.util.List;
+
 /**
  * <p>
  *  服务类
@@ -16,4 +19,6 @@ public interface IJySceneAuthService extends IService<JySceneAuth> {
     JySceneAuth getByNum(String num);
 
     void updateAuthTypeByNum(String num, Integer authType);
+
+    HashMap<String, JySceneAuth> getByNumList(List<String> numList);
 }

+ 5 - 0
src/main/java/com/fdkankan/manage/service/IJySceneUserAuthService.java

@@ -4,6 +4,7 @@ import com.fdkankan.manage.entity.JySceneUserAuth;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.manage.vo.request.SceneParam;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -40,4 +41,8 @@ public interface IJySceneUserAuthService extends IService<JySceneUserAuth> {
 
 
     void delByJyUserId(Integer id);
+
+    Object getSceneList(SceneParam param);
+
+    HashMap<String, List<JySceneUserAuth>> getByNumList(List<String> numList);
 }

+ 1 - 0
src/main/java/com/fdkankan/manage/service/IScenePlusService.java

@@ -5,6 +5,7 @@ import com.fdkankan.manage.entity.CameraDetail;
 import com.fdkankan.manage.entity.ScenePlus;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.manage.entity.UserShareParam;
+import com.fdkankan.manage.vo.request.SceneParam;
 import com.fdkankan.manage.vo.response.UserShareSceneVo;
 
 import java.util.ArrayList;

+ 16 - 0
src/main/java/com/fdkankan/manage/service/impl/JySceneAuthServiceImpl.java

@@ -9,6 +9,9 @@ import com.fdkankan.manage.service.IJySceneAuthService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
@@ -28,6 +31,19 @@ public class JySceneAuthServiceImpl extends ServiceImpl<IJySceneAuthMapper, JySc
     }
 
     @Override
+    public HashMap<String, JySceneAuth> getByNumList(List<String> numList) {
+        HashMap<String, JySceneAuth> map = new HashMap<>();
+        if(numList.isEmpty()){
+            return map;
+        }
+        LambdaQueryWrapper<JySceneAuth> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(JySceneAuth::getNum,numList);
+        List<JySceneAuth> list = this.list(wrapper);
+        list.forEach(e -> map.put(e.getNum(),e));
+        return map;
+    }
+
+    @Override
     public void updateAuthTypeByNum(String num, Integer authType) {
         JySceneAuth auth = this.getByNum(num);
         if(auth == null){

+ 83 - 4
src/main/java/com/fdkankan/manage/service/impl/JySceneUserAuthServiceImpl.java

@@ -18,17 +18,16 @@ import com.fdkankan.manage.vo.request.SceneParam;
 import com.fdkankan.manage.vo.response.CheckOtherVo;
 import com.fdkankan.manage.vo.response.ManageLoginResponse;
 import com.fdkankan.manage.vo.response.SceneAuthVo;
+import com.fdkankan.manage.vo.response.SceneUserAuthVo;
 import com.fdkankan.redis.util.RedisUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.tomcat.util.security.Escape;
 import org.joda.time.DateTime;
+import org.springframework.beans.BeanUtils;
 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;
+import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
@@ -394,4 +393,84 @@ public class JySceneUserAuthServiceImpl extends ServiceImpl<IJySceneUserAuthMapp
         wrapper.eq(JySceneUserAuth::getJyUserId,jyUserId);
         this.remove(wrapper);
     }
+
+    @Override
+    public Object getSceneList(SceneParam param) {
+        JyUser jyUser = null;
+        if(StringUtils.isNotBlank(param.getRyId()) ){
+            jyUser = jyUserService.getByRyId(param.getRyId());
+            if(jyUser == null){
+                throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
+            }
+        }
+        if(StringUtils.isNotBlank(param.getRyNo()) ){
+            jyUser = jyUserService.getByRyNo(param.getRyNo());
+            if(jyUser == null){
+                throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
+            }
+        }
+        if(jyUser == null){
+            throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
+        }
+
+        Long userId = jyUser.getUserId();
+        LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ScenePlus::getUserId,userId);
+        Page<ScenePlus> page = scenePlusService.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
+        List<String> numList = page.getRecords().stream().map(ScenePlus::getNum).collect(Collectors.toList());
+
+        HashMap<String,JySceneAuth> sceneAuthMap = jySceneAuthService.getByNumList(numList);
+        HashMap<String,List<JySceneUserAuth>> jySceneUserMap = jySceneUserAuthService.getByNumList(numList);
+        List<Integer> jyUserIds = new ArrayList<>();
+        List<SceneUserAuthVo> voList = new ArrayList<>();
+        for (ScenePlus record : page.getRecords()) {
+            SceneUserAuthVo vo = new SceneUserAuthVo();
+            BeanUtils.copyProperties(record,vo);
+
+            JySceneAuth jySceneAuth = sceneAuthMap.get(record.getNum());
+            if(jySceneAuth != null){
+                vo.setAuthType(jySceneAuth.getAuthType());
+                List<JySceneUserAuth> jySceneUserAuthList = jySceneUserMap.get(record.getNum() + "_" + jySceneAuth.getAuthType());
+                List<Integer> ids = jySceneUserAuthList.stream().map(JySceneUserAuth::getJyUserId).collect(Collectors.toList());
+                jyUserIds.addAll(ids);
+                vo.setAuthList(jySceneUserAuthList);
+            }
+            voList.add(vo);
+        }
+        HashMap<Integer, JyUser> userHashMap = jyUserService.getByIds(jyUserIds);
+
+        for (SceneUserAuthVo sceneUserAuthVo : voList) {
+            List<JySceneUserAuth> authList = sceneUserAuthVo.getAuthList();
+            for (JySceneUserAuth jySceneUserAuth : authList) {
+                JyUser jyUser1 = userHashMap.get(jySceneUserAuth.getJyUserId());
+                if(jyUser1 != null){
+                    jySceneUserAuth.setRyNo(jyUser1.getRyNo());
+                    jySceneUserAuth.setRyNickName(jyUser1.getRyNickName());
+                    jySceneUserAuth.setRyId(jyUser1.getRyId());
+                }
+            }
+        }
+
+        Page<SceneUserAuthVo> pageVo = new Page<>(param.getPageNum(),param.getPageSize());
+        pageVo.setRecords(voList);
+        pageVo.setTotal(page.getTotal());
+        return pageVo;
+    }
+
+    @Override
+    public HashMap<String, List<JySceneUserAuth>> getByNumList(List<String> numList) {
+        HashMap<String, List<JySceneUserAuth>> map = new HashMap<>();
+        if(numList.isEmpty()){
+            return map;
+        }
+        LambdaQueryWrapper<JySceneUserAuth> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(JySceneUserAuth::getNum,numList);
+        List<JySceneUserAuth> list = this.list(wrapper);
+        for (JySceneUserAuth e : list) {
+            String key = e.getNum() + "_"+ e.getAuthType();
+            map.computeIfAbsent(key, k -> new ArrayList<>());
+            map.get(key).add(e);
+        }
+        return map;
+    }
 }

+ 1 - 0
src/main/java/com/fdkankan/manage/service/impl/ScenePlusServiceImpl.java

@@ -9,6 +9,7 @@ import com.fdkankan.manage.entity.*;
 import com.fdkankan.manage.mapper.IScenePlusMapper;
 import com.fdkankan.manage.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.vo.request.SceneParam;
 import com.fdkankan.manage.vo.response.GroupByCount;
 import com.fdkankan.manage.vo.response.UserShareSceneVo;
 import org.springframework.beans.factory.annotation.Autowired;

+ 14 - 0
src/main/java/com/fdkankan/manage/vo/response/SceneUserAuthVo.java

@@ -0,0 +1,14 @@
+package com.fdkankan.manage.vo.response;
+
+import com.fdkankan.manage.entity.JySceneUserAuth;
+import com.fdkankan.manage.entity.ScenePlus;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class SceneUserAuthVo extends ScenePlus {
+
+    private Integer authType;
+    private List<JySceneUserAuth> authList;
+}