lyhzzz 3 лет назад
Родитель
Сommit
77c4c333c6

+ 25 - 0
src/main/java/com/fdkankan/ucenter/controller/api/FusionController.java

@@ -0,0 +1,25 @@
+package com.fdkankan.ucenter.controller.api;
+
+import com.fdkankan.common.response.ResultData;
+import com.fdkankan.ucenter.common.Result;
+import com.fdkankan.ucenter.service.IFusionService;
+import com.fdkankan.ucenter.vo.request.SceneParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/fusion")
+public class FusionController {
+
+    @Autowired
+    IFusionService fusionService;
+
+    /**
+     * 只需获取v4场景数据,无需文件夹
+     */
+    @PostMapping("/scene/list")
+    public Result sceneList(@RequestBody SceneParam param, @RequestHeader String token){
+
+        return Result.success(fusionService.scenePageList(param,token));
+    }
+}

+ 9 - 0
src/main/java/com/fdkankan/ucenter/service/IFusionService.java

@@ -0,0 +1,9 @@
+package com.fdkankan.ucenter.service;
+
+import com.fdkankan.common.response.PageInfo;
+import com.fdkankan.ucenter.vo.request.SceneParam;
+
+public interface IFusionService {
+
+    PageInfo scenePageList(SceneParam param, String token);
+}

+ 79 - 0
src/main/java/com/fdkankan/ucenter/service/impl/FusionService.java

@@ -0,0 +1,79 @@
+package com.fdkankan.ucenter.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.response.PageInfo;
+import com.fdkankan.ucenter.constant.LoginConstant;
+import com.fdkankan.ucenter.entity.Camera;
+import com.fdkankan.ucenter.entity.ScenePlus;
+import com.fdkankan.ucenter.entity.ScenePlusExt;
+import com.fdkankan.ucenter.entity.User;
+import com.fdkankan.ucenter.service.*;
+import com.fdkankan.ucenter.vo.request.SceneParam;
+import com.fdkankan.ucenter.vo.response.ScenePlusVo;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Service
+public class FusionService implements IFusionService {
+
+    @Autowired
+    IScenePlusService scenePlusService;
+    @Autowired
+    IScenePlusExtService scenePlusExtService;
+    @Autowired
+    IUserService userService;
+    @Autowired
+    ICameraService cameraService;
+
+    @Override
+    public PageInfo scenePageList(SceneParam param, String token) {
+        User user = userService.getByToken(token);
+        if(user == null){
+            throw new BusinessException(LoginConstant.FAILURE_CODE_3015,LoginConstant.FAILURE_MSG_3015);
+        }
+        List<Integer> resourceList = new ArrayList<>();
+        if(param.getType() == 0){
+            resourceList = Arrays.asList(1,2,12,13,14);
+        }else if(param.getType() == 1){
+            resourceList = Collections.singletonList(3);
+        }
+        LambdaQueryWrapper<ScenePlus> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ScenePlus::getUserId,user.getId());
+        wrapper.in(ScenePlus::getSceneSource,resourceList);
+        if(StringUtils.isNotBlank(param.getSceneName())){
+            wrapper.like(ScenePlus::getTitle,param.getSceneName());
+        }
+        if(param.getNumList()!= null && param.getNumList().size() >0){
+            wrapper.in(ScenePlus::getNum, param.getNumList());
+        }
+        Page<ScenePlus> page = scenePlusService.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
+        if(page.getTotal() <=0){
+            return PageInfo.PageInfo(page);
+        }
+        List<Long> plusIds = page.getRecords().parallelStream().map(ScenePlus::getId).collect(Collectors.toList());
+        List<Long> cameraIds = page.getRecords().parallelStream().map(ScenePlus::getCameraId).collect(Collectors.toList());
+        List<ScenePlusVo> list = new ArrayList<>();
+        HashMap<Long, ScenePlusExt> extMap = scenePlusExtService.getByPlusIds(plusIds);
+        HashMap<Long, Camera> cameraMap = cameraService.getByIds(cameraIds);
+        for (ScenePlus record : page.getRecords()) {
+            ScenePlusVo scenePlusVo = new ScenePlusVo();
+            String snCode = cameraMap.get(scenePlusVo.getCameraId()) == null ? "" :cameraMap.get(scenePlusVo.getCameraId()).getSnCode();
+            BeanUtils.copyProperties(record,scenePlusVo);
+            scenePlusVo.setPlusExt(extMap.get(record.getId()));
+            scenePlusVo.setSnCode(snCode);
+            scenePlusVo.setSceneType(param.getType());
+            list.add(scenePlusVo);
+        }
+        Page<ScenePlusVo> pageVo = new Page<>(param.getPageNum(),param.getPageSize());
+        pageVo.setRecords(list);
+        pageVo.setTotal(page.getTotal());
+        return PageInfo.PageInfo(pageVo);
+    }
+}

+ 2 - 0
src/main/java/com/fdkankan/ucenter/vo/request/SceneParam.java

@@ -20,4 +20,6 @@ public class SceneParam extends RequestBase {
     private String userName;        //协作者名称
 
     private String sceneNum;
+
+    private Integer type;
 }

+ 12 - 0
src/main/java/com/fdkankan/ucenter/vo/response/ScenePlusVo.java

@@ -0,0 +1,12 @@
+package com.fdkankan.ucenter.vo.response;
+
+import com.fdkankan.ucenter.entity.ScenePlus;
+import com.fdkankan.ucenter.entity.ScenePlusExt;
+import lombok.Data;
+
+@Data
+public class ScenePlusVo extends ScenePlus {
+    private ScenePlusExt plusExt;
+
+    private String snCode;
+}