浏览代码

feign 补充 场景协作

lyhzzz 3 年之前
父节点
当前提交
e01fbbbcca
共有 17 个文件被更改,包括 329 次插入46 次删除
  1. 15 1
      4dkankan-center-api/4dkankan-center-scene-api/src/main/java/com/fdkankan/scene/api/feign/SceneUserSceneClient.java
  2. 47 0
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/common/CameraTypeEnum.java
  3. 1 1
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/impl/DeviceServiceImpl.java
  4. 27 9
      4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/UserServiceImpl.java
  5. 74 3
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/feign/UserSceenFeign.java
  6. 4 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/IFdkkLaserService.java
  7. 8 2
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneCooperationService.java
  8. 1 1
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneProService.java
  9. 2 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneResourceCameraService.java
  10. 5 1
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneResourceCooperationService.java
  11. 2 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneService.java
  12. 48 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/IFdkkLaserServiceImpl.java
  13. 47 18
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneCooperationServiceImpl.java
  14. 11 7
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java
  15. 15 1
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneResourceCameraServiceImpl.java
  16. 8 2
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneResourceCooperationServiceImpl.java
  17. 14 0
      4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneServiceImpl.java

+ 15 - 1
4dkankan-center-api/4dkankan-center-scene-api/src/main/java/com/fdkankan/scene/api/feign/SceneUserSceneClient.java

@@ -56,5 +56,19 @@ public interface SceneUserSceneClient {
                                       @RequestParam(value = "cameraId")Long cameraId);
 
     @PostMapping("/getSceneCount")
-    ResultData getSceneCount(@RequestParam(value = "cameraId") Long cameraId);
+    ResultData getSceneCount(@RequestParam(value = "cameraId") Long cameraId,
+                             @RequestParam(value = "userId") Long userId,
+                             @RequestParam(value = "cameraType") Integer cameraType);
+
+    @PostMapping("/disableCooperation")
+    ResultData disableCooperation(@RequestParam(value = "cameraId")Long cameraId,
+                                 @RequestParam(value = "snCode")String snCode,
+                                 @RequestParam(value = "cooperationUserName")String cooperationUserName);
+
+    @PostMapping("/saveCooperation")
+    ResultData saveCooperation(@RequestParam(value = "cameraId") Long cameraId,
+                               @RequestParam(value = "resourceIds") String resourceIds,
+                               @RequestParam(value = "userId") Long userId,
+                               @RequestParam(value = "snCode")String snCode,
+                               @RequestParam(value = "cooperationUserName")String cooperationUserName);
 }

+ 47 - 0
4dkankan-center-platform/src/main/java/com/fdkankan/platform/common/CameraTypeEnum.java

@@ -0,0 +1,47 @@
+package com.fdkankan.platform.common;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public enum CameraTypeEnum {
+    DOUBLE_EYE(0,"KK-","4DKKLITE_","旧双目相机"),
+    FDKK_PRO(1,"KK-","4DKKPRO_","四维看看pro八目相机"),
+    FDKK_LITE(2,"KK-","4DKKLITE_","四维看看lite"),
+    ZHIHOUSE_REDHOUSE(5,"KK-","4DKKLITE_","指房宝小红屋相机"),
+    DOUBLE_EYE_TURN(9,"KJ-","4DKKLITE_","双目转台"),
+    LASER_TURN(10,"SS-","4DKKLA_","激光转台");
+
+
+    private int type;
+    private String sceneNumPrefix;
+    private String wifiNamePrefix;
+    private String desc;
+
+    public int getType() {
+        return type;
+    }
+
+    public String getSceneNumPrefix() {
+        return sceneNumPrefix;
+    }
+
+    static Map<Integer,CameraTypeEnum> typeMaps = new HashMap<>(5);
+
+    static{
+        for (CameraTypeEnum typeEnum : CameraTypeEnum.values()) {
+            typeMaps.put(typeEnum.getType(),typeEnum);
+        }
+    }
+
+    CameraTypeEnum(Integer type, String sceneNumPrefix, String wifiNamePrefix, String desc) {
+        this.type = type;
+        this.sceneNumPrefix = sceneNumPrefix;
+        this.wifiNamePrefix = wifiNamePrefix;
+        this.desc = desc;
+    }
+
+    public static String getSceneNumPrefixByType(Integer type){
+        return typeMaps.get(type).getSceneNumPrefix();
+    }
+
+}

+ 1 - 1
4dkankan-center-platform/src/main/java/com/fdkankan/platform/goods/service/impl/DeviceServiceImpl.java

@@ -61,7 +61,7 @@ public class DeviceServiceImpl implements IDeviceService {
             }
             cameraEntity.setUserName(user.getUserName());
         }
-        Long count = (Long) sceneUserSceneClient.getSceneCount(cameraEntity.getId()).getData();
+        Long count = (Long) sceneUserSceneClient.getSceneCount(cameraEntity.getId(),null,null).getData();
         cameraEntity.setSceneCount(count.intValue());
         UserIncrement userIncrementEntity = userIncrementService.getByCameraId(cameraEntity.getId());
         if(userIncrementEntity != null){

+ 27 - 9
4dkankan-center-platform/src/main/java/com/fdkankan/platform/user/service/impl/UserServiceImpl.java

@@ -18,6 +18,7 @@ import com.fdkankan.common.util.FileUtils;
 import com.fdkankan.common.util.SsoUtil;
 import com.fdkankan.common.validation.Variable;
 import com.fdkankan.fyun.qiniu.QiniuUpload;
+import com.fdkankan.platform.common.CameraTypeEnum;
 import com.fdkankan.platform.goods.entity.Camera;
 import com.fdkankan.platform.goods.entity.CameraDetail;
 import com.fdkankan.platform.goods.entity.CameraDetailNumEntity;
@@ -38,6 +39,7 @@ import com.fdkankan.platform.user.vo.ResponseCamera;
 import com.fdkankan.platform.user.vo.ResponseUser;
 import com.fdkankan.platform.user.vo.SSOUserVo;
 import com.fdkankan.redis.util.RedisUtil;
+import com.fdkankan.scene.api.feign.SceneUserSceneClient;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -75,6 +77,8 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
     @Autowired
     private ICameraDetailService cameraDetailService;
     @Autowired
+    private SceneUserSceneClient sceneUserSceneClient;
+    @Autowired
     RedisUtil redisUtil;
     @Resource
     private IUserMapper userMapper;
@@ -130,13 +134,10 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
     public SSOUserVo getUserInfoByUser(Integer cameraType, User dbUser, String token) {
         ResponseUser vo = new ResponseUser();
         BeanUtils.copyProperties(dbUser,vo);
-        if(cameraType != null){
-            //todo sceneCount  CameraCount
-        }else {
-
-        }
-        vo.setSceneCount(0);
-        vo.setCameraCount(0);
+        Integer cameraCount = cameraDetailService.getListByUserId(dbUser.getId(),Long.valueOf(cameraType)).size();
+        Long sceneCount = (Long) sceneUserSceneClient.getSceneCount(null,dbUser.getId(),cameraType).getData();
+        vo.setSceneCount(sceneCount.intValue());
+        vo.setCameraCount(cameraCount);
         SSOUserVo ssoUserVo = new SSOUserVo();
         ssoUserVo.setToken(token);
         ssoUserVo.setResponseUser(vo);
@@ -422,10 +423,19 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
                 throw new BusinessException(CameraConstant.FAILURE_6003);
             }
         }
+        String snCode = null;
+        String cooperationUserName = null;
+        if(cameraDetailEntity.getCameraType() == CameraTypeEnum.LASER_TURN.getType()){
+            Camera cameraEntity = cameraService.getById(camera.getCameraId());
+            snCode = cameraEntity.getSnCode();
+            cooperationUserName  =camera.getUserName();
+        }
         cameraDetailEntity.setCooperationUser(null);
         cameraDetailService.updateById(cameraDetailEntity);
 
-        //删除相机和场景资源的关联关系 todo
+        //删除相机和场景资源的关联关系
+        sceneUserSceneClient.disableCooperation(camera.getCameraId(),snCode,cooperationUserName);
+
         return ServerCode.SUCCESS.message();
     }
 
@@ -457,7 +467,15 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
             CameraDetail cameraDetailEntity = cameraDetailService.getByCameraId(Long.valueOf(cameraId));
             cameraDetailEntity.setCooperationUser(userEntity.getId());
             cameraDetailService.updateById(cameraDetailEntity);
-            //保存相机和场景资源的关联关系 todo
+            //保存相机和场景资源的关联关系
+            String snCode = null;
+            String cooperationUserName = null;
+            if(cameraDetailEntity.getCameraType() == CameraTypeEnum.LASER_TURN.getType()){
+                Camera cameraEntity = cameraService.getById(Long.valueOf(cameraId));
+                snCode = cameraEntity.getSnCode();
+                cooperationUserName = camera.getUserName();
+            }
+            sceneUserSceneClient.saveCooperation(Long.valueOf(cameraId),camera.getResourceIds(),userEntity.getId(),snCode,cooperationUserName);
 
         }
         return ServerCode.SUCCESS.message();

+ 74 - 3
4dkankan-center-scene/src/main/java/com/fdkankan/scene/feign/UserSceenFeign.java

@@ -1,20 +1,28 @@
 package com.fdkankan.scene.feign;
 
+import com.aliyuncs.utils.StringUtils;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.scene.api.dto.SceneCntDTO;
 import com.fdkankan.scene.api.dto.SceneInfoDTO;
 import com.fdkankan.scene.api.dto.ScenePODTO;
 import com.fdkankan.scene.api.dto.SceneProDTO;
+import com.fdkankan.scene.entity.SceneCooperation;
 import com.fdkankan.scene.entity.ScenePO;
+import com.fdkankan.scene.entity.SceneProPO;
 import com.fdkankan.scene.service.*;
 import com.fdkankan.scene.vo.SceneInfoParamVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 提供计算调用
@@ -34,6 +42,14 @@ public class UserSceenFeign {
     ISceneService sceneService;
     @Autowired
     ISceneProService sceneProService;
+    @Autowired
+    ISceneResourceCameraService sceneResourceCameraService;
+    @Autowired
+    ISceneResourceCooperationService sceneResourceCooperationService;
+    @Autowired
+    ISceneCooperationService sceneCooperationService;
+    @Autowired
+    IFdkkLaserService fdkkLaserService;
 
     @PostMapping("/getSceneCnt")
     ResultData<SceneCntDTO> getSceneCnt(@RequestParam(value = "userId") Long userId, Long cameraId){
@@ -111,8 +127,63 @@ public class UserSceenFeign {
     }
 
     @PostMapping("/getSceneCount")
-    ResultData getSceneCount(@RequestParam(value = "cameraId")Long cameraId) throws Exception{
-        return ResultData.ok(sceneProService.getSceneCount(cameraId));
+    ResultData getSceneCount(@RequestParam(value = "cameraId")Long cameraId,
+                             @RequestParam(value = "userId")Long userId ,
+                             @RequestParam(value = "cameraType")Integer cameraType ) throws Exception{
+        if(cameraId!=null){
+            return ResultData.ok(sceneProService.getSceneCount(cameraId,null));
+        }
+        if(cameraType == null || cameraType != 4){
+            return ResultData.ok(sceneService.getSceneCount(null,userId));
+        }
+        return ResultData.ok(sceneProService.getSceneCount(null,userId));
+    }
+
+
+    @PostMapping("/disableCooperation")
+    ResultData disableCooperation(@RequestParam(value = "cameraId")Long cameraId,
+                                 @RequestParam(value = "snCode")String snCode,
+                                 @RequestParam(value = "cooperationUserName")String cooperationUserName){
+
+        sceneResourceCameraService.deleteByCameraId(cameraId);
+        deleteCooperation(cameraId);
+        if(StringUtils.isEmpty(snCode)){
+            fdkkLaserService.disableCooperation(snCode,cooperationUserName);
+        }
+        return ResultData.ok();
+    }
+
+
+    @PostMapping("/saveCooperation")
+    ResultData saveCooperation(@RequestParam(value = "cameraId") Long cameraId,
+                               @RequestParam(value = "resourceIds") String resourceIds,
+                               @RequestParam(value = "userId") Long userId,
+                               @RequestParam(value = "snCode")String snCode,
+                               @RequestParam(value = "cooperationUserName")String cooperationUserName){
+        sceneResourceCameraService.saveByResourceIds(cameraId,resourceIds);
+        List<SceneProPO> sceneProPOS = deleteCooperation(cameraId);
+        sceneCooperationService.saveByResourceIds(sceneProPOS,cameraId,resourceIds,userId);
+
+        if(StringUtils.isEmpty(snCode)){
+            fdkkLaserService.disableCooperation(snCode,cooperationUserName);
+            fdkkLaserService.enableCameraCooperation(snCode,cooperationUserName);
+        }
+        return ResultData.ok();
+    }
+
+    private List<SceneProPO>  deleteCooperation(Long cameraId){
+        List<SceneProPO> sceneProList = sceneProService.findByCameraIdPro(cameraId);
+        if(!CollectionUtils.isEmpty(sceneProList)) {
+            List<String> numList = sceneProList.stream().map(SceneProPO::getNum).collect(Collectors.toList());
+            List<SceneCooperation> list = sceneCooperationService.getListByNums(numList);
+            List<Long> cooIds = list.parallelStream().map(SceneCooperation::getId).collect(Collectors.toList());
+            if(cooIds.size() >0){
+                //删除相机下每个场景的关联关系
+                sceneResourceCooperationService.deleteByCooperationIds(cooIds);
+                sceneCooperationService.updateRecStatusList(cooIds);
+            }
+        }
+        return sceneProList;
     }
 }
 

+ 4 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/IFdkkLaserService.java

@@ -11,4 +11,8 @@ package com.fdkankan.scene.service;
 public interface IFdkkLaserService {
 
     void updateSceneStatus(String sceneCode,int status);
+
+    void disableCooperation(String snCode, String cooperationUserName);
+
+    void enableCameraCooperation(String snCode, String cooperationUserName);
 }

+ 8 - 2
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneCooperationService.java

@@ -4,11 +4,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.scene.entity.SceneCooperation;
+import com.fdkankan.scene.entity.SceneProPO;
 import com.fdkankan.scene.vo.SceneCooperationParamVO;
-
 import com.fdkankan.scene.vo.SceneParamVO;
+
 import java.util.List;
-import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * <p>
@@ -31,4 +31,10 @@ public interface ISceneCooperationService extends IService<SceneCooperation> {
     List<SceneCooperation> getListByUserId(List<Long> userIds);
 
     Page cooperationSceneListNew(SceneParamVO param) throws Exception;
+
+    List<SceneCooperation> getListByNums(List<String> numList);
+
+    void updateRecStatusList(List<Long> ids);
+
+    void saveByResourceIds(List<SceneProPO> scenePros, Long cameraId, String resourceIds, Long userId);
 }

+ 1 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneProService.java

@@ -35,7 +35,7 @@ public interface ISceneProService extends IService<ScenePro> {
 
     List<SceneVO> convert2(List<SceneProPO> list);
 
-    Long getSceneCount(Long cameraId);
+    Long getSceneCount(Long cameraId,Long userId);
 
     ScenePro findBySceneNum(String sceneNum);
 

+ 2 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneResourceCameraService.java

@@ -18,4 +18,6 @@ public interface ISceneResourceCameraService extends IService<SceneResourceCamer
     void deleteByCameraId(Long id);
 
     List<SceneResourceCamera> findListByCameraId(Long id);
+
+    void saveByResourceIds(Long cameraId, String resourceIds);
 }

+ 5 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneResourceCooperationService.java

@@ -1,7 +1,9 @@
 package com.fdkankan.scene.service;
 
-import com.fdkankan.scene.entity.SceneResourceCooperation;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.scene.entity.SceneResourceCooperation;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +15,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface ISceneResourceCooperationService extends IService<SceneResourceCooperation> {
     void deleteByCooperationId(Long id);
+
+    void deleteByCooperationIds(List<Long> ids);
 }

+ 2 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneService.java

@@ -101,4 +101,6 @@ public interface ISceneService extends IService<Scene> {
     ResultData getScenes(DeviceSceneParamVO param);
 
     ResultData deleteScene(String sceneNum) throws IOException;
+
+    Long getSceneCount(Long cameraId, Long userId);
 }

+ 48 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/IFdkkLaserServiceImpl.java

@@ -1,10 +1,12 @@
 package com.fdkankan.scene.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.HttpCode;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.scene.service.IFdkkLaserService;
 import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -12,11 +14,18 @@ import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 
 import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 @Service
+@Slf4j
 public class IFdkkLaserServiceImpl implements IFdkkLaserService {
 
     private final String UPDATE_SCENE_STATUS_URL_TEMPLATE="/indoor/%s/scene/useStatus/%s";
+    private final String DISABLE_COOPERATION_SCENE_URL="/laser/4dage/scene/cooperation/disable";
+    private final String ENABLE_COOPERATION_CAMERA_URL="/laser/4dage/scene/cooperation/cameraSave";
 
     @Value("${4dkk.laserService.host}")
     private String laserHost;
@@ -34,6 +43,45 @@ public class IFdkkLaserServiceImpl implements IFdkkLaserService {
         }
     }
 
+    /**
+     * 自研激光转台取消协作
+     */
+    @Override
+    public void disableCooperation(String snCode, String cooperationUserName) {
+        List<Map<String,String>> params = new ArrayList<>();
+        Map<String,String> param = new HashMap<>();
+        param.put("snCode",snCode);
+        param.put("cooperationUserName",cooperationUserName);
+        params.add(param);
+
+        String url = laserHost + DISABLE_COOPERATION_SCENE_URL;
+        log.info("自研激光转台取消协作,url:{},params:{}",DISABLE_COOPERATION_SCENE_URL, JSONObject.toJSONString(params));
+        ResponseEntity<Result> responseEntity = restTemplate.postForEntity(url,params, Result.class);
+        log.info("自研激光转台相机同步,url:{},params:{},结果:{}",url, JSONObject.toJSONString(params),JSONObject.toJSONString(responseEntity.getBody()));
+        if(responseEntity.getStatusCode() != HttpStatus.OK || responseEntity.getBody().getCode() != HttpStatus.OK.value()){
+            log.error("激光场景状态同步失败!");
+        }
+    }
+    /**
+     * 自研激光转台添加协作
+     */
+    @Override
+    public void enableCameraCooperation(String snCode, String cooperationUserName) {
+        List<Map<String,String>> params = new ArrayList<>();
+        Map<String,String> param = new HashMap<>();
+        param.put("snCode",snCode);
+        param.put("cooperationUserName",cooperationUserName);
+        params.add(param);
+
+        String url = laserHost + ENABLE_COOPERATION_CAMERA_URL;
+        log.info("自研激光转台相机协作,url:{},params:{}",ENABLE_COOPERATION_CAMERA_URL, JSONObject.toJSONString(params));
+        ResponseEntity<Result> responseEntity = restTemplate.postForEntity(url,params, Result.class);
+        log.info("自研激光转台相机协作,url:{},params:{},结果:{}",url, JSONObject.toJSONString(params),JSONObject.toJSONString(responseEntity.getBody()));
+        if(responseEntity.getStatusCode() != HttpStatus.OK || responseEntity.getBody().getCode() != HttpStatus.OK.value()){
+            log.error("自研激光转台相机协作失败!");
+        }
+    }
+
     @Data
     public static class Result<T> implements Serializable {
         private static final long serialVersionUID = -1491499610244557029L;

+ 47 - 18
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneCooperationServiceImpl.java

@@ -2,6 +2,7 @@ package com.fdkankan.scene.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.csp.sentinel.util.StringUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -10,34 +11,21 @@ import com.fdkankan.common.constant.TbStatus;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.user.SSOLoginHelper;
 import com.fdkankan.common.util.PageInfoUtils;
-import com.fdkankan.platform.api.feign.PlatformGoodsClient;
 import com.fdkankan.platform.api.dto.Camera;
-import com.fdkankan.scene.entity.Folder;
-import com.fdkankan.scene.entity.SceneCooperation;
-import com.fdkankan.scene.entity.SceneEditInfoExt;
-import com.fdkankan.scene.entity.ScenePro;
-import com.fdkankan.scene.entity.SceneProPO;
+import com.fdkankan.platform.api.feign.PlatformGoodsClient;
+import com.fdkankan.scene.entity.*;
 import com.fdkankan.scene.mapper.ISceneCooperationMapper;
 import com.fdkankan.scene.mapper.ISceneProMapper;
-import com.fdkankan.scene.service.IFolderSceneService;
-import com.fdkankan.scene.service.IFolderService;
-import com.fdkankan.scene.service.ISceneCooperationService;
-import com.fdkankan.scene.service.ISceneEditInfoExtService;
-import com.fdkankan.scene.service.ISceneProService;
-import com.fdkankan.scene.service.ISceneResourceService;
-import com.fdkankan.scene.service.ISceneService;
+import com.fdkankan.scene.service.*;
 import com.fdkankan.scene.vo.SceneCooperationParamVO;
 import com.fdkankan.scene.vo.SceneParamVO;
 import com.fdkankan.scene.vo.SceneVO;
-import java.util.ArrayList;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-
-import java.util.Calendar;
-import java.util.List;
-import java.util.Objects;
 import org.springframework.util.ObjectUtils;
 
+import java.util.*;
+
 /**
  * <p>
  *  服务实现类
@@ -67,6 +55,8 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
     ISceneService sceneService;
     @Autowired
     ISceneEditInfoExtService sceneEditInfoExtService;
+    @Autowired
+    ISceneResourceCooperationService sceneResourceCooperationService;
 
     @Override
     public void updateRecStatus(String sceneNum) {
@@ -215,4 +205,43 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
         });
         return page;
     }
+
+    @Override
+    public List<SceneCooperation> getListByNums(List<String> numList) {
+        return this.list(new LambdaQueryWrapper<SceneCooperation>().in(SceneCooperation::getNum,numList));
+    }
+
+    @Override
+    public void updateRecStatusList(List<Long> ids) {
+        this.update(new LambdaUpdateWrapper<SceneCooperation>()
+                .set(SceneCooperation::getTbStatus,TbStatus.DELETE.code())
+                .in(SceneCooperation::getId,ids));
+    }
+
+    @Override
+    public void saveByResourceIds(List<SceneProPO> sceneProList, Long cameraId, String resourceIds,Long userId) {
+        List<SceneResourceCooperation> sceneResourceCooperationEntityList = new ArrayList<>();
+
+        for (SceneProPO sceneProEntity : sceneProList) {
+            //保存相机下新的场景关联关系
+            SceneCooperation sceneCooperationEntity = new SceneCooperation();
+            sceneCooperationEntity.setUserId(userId);
+            sceneCooperationEntity.setNum(sceneProEntity.getNum());
+            this.save(sceneCooperationEntity);
+
+            if(StringUtil.isNotEmpty(resourceIds)){
+                SceneResourceCooperation sceneResourceCooperationEntity = null;
+                String[] ids = resourceIds.split(",");
+                for(String resourceId : ids){
+                    sceneResourceCooperationEntity = new SceneResourceCooperation();
+                    sceneResourceCooperationEntity.setSceneResourceId(Long.valueOf(resourceId));
+                    sceneResourceCooperationEntity.setSceneCooperationId(sceneCooperationEntity.getId());
+                    sceneResourceCooperationEntityList.add(sceneResourceCooperationEntity);
+                }
+            }
+        }
+        if(sceneResourceCooperationEntityList.size()>0){
+            sceneResourceCooperationService.saveBatch(sceneResourceCooperationEntityList);
+        }
+    }
 }

+ 11 - 7
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java

@@ -171,13 +171,17 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     }
 
     @Override
-    public Long getSceneCount(Long cameraId) {
-
-        return this.count(new LambdaQueryWrapper<ScenePro>()
-                .eq(ScenePro::getCameraId, cameraId)
-                .eq(ScenePro::getTbStatus,TbStatus.VALID.code())
-                .notIn(ScenePro::getSceneType, SceneType.YJHZXNFY.code()));
-
+    public Long getSceneCount(Long cameraId,Long userId) {
+        LambdaQueryWrapper<ScenePro> queryWrapper = new LambdaQueryWrapper<ScenePro>()
+                .eq(ScenePro::getTbStatus, TbStatus.VALID.code())
+                .notIn(ScenePro::getSceneType, SceneType.YJHZXNFY.code());
+        if(cameraId !=null){
+            queryWrapper.eq(ScenePro::getCameraId ,cameraId);
+        }
+        if(userId !=null){
+            queryWrapper.eq(ScenePro::getUserId ,userId);
+        }
+        return this.count(queryWrapper);
     }
 
     @Override

+ 15 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneResourceCameraServiceImpl.java

@@ -1,9 +1,9 @@
 package com.fdkankan.scene.service.impl;
 
+import com.alibaba.csp.sentinel.util.StringUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.fdkankan.common.constant.RecStatus;
 import com.fdkankan.common.constant.TbStatus;
 import com.fdkankan.scene.entity.SceneResourceCamera;
 import com.fdkankan.scene.mapper.ISceneResourceCameraMapper;
@@ -36,4 +36,18 @@ public class SceneResourceCameraServiceImpl extends ServiceImpl<ISceneResourceCa
                 .eq(SceneResourceCamera::getTbStatus, TbStatus.VALID.code())
                 .eq(SceneResourceCamera::getTbStatus, TbStatus.VALID.code()).eq(SceneResourceCamera::getCameraId, id));
     }
+
+    @Override
+    public void saveByResourceIds(Long cameraId, String resourceIds) {
+        if(StringUtil.isNotEmpty(resourceIds)){
+            SceneResourceCamera sceneResourceCameraEntity = null;
+            String[] ids = resourceIds.split(",");
+            for(String resourceId : ids){
+                sceneResourceCameraEntity = new SceneResourceCamera();
+                sceneResourceCameraEntity.setSceneResourceId(Long.valueOf(resourceId));
+                sceneResourceCameraEntity.setCameraId(cameraId);
+                this.save(sceneResourceCameraEntity);
+            }
+        }
+    }
 }

+ 8 - 2
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneResourceCooperationServiceImpl.java

@@ -1,13 +1,14 @@
 package com.fdkankan.scene.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.scene.entity.SceneResourceCooperation;
 import com.fdkankan.scene.mapper.ISceneResourceCooperationMapper;
 import com.fdkankan.scene.service.ISceneResourceCooperationService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 场景资源和协作用户关联表 服务实现类
@@ -23,4 +24,9 @@ public class SceneResourceCooperationServiceImpl extends ServiceImpl<ISceneResou
     public void deleteByCooperationId(Long id) {
         this.remove(new LambdaQueryWrapper<SceneResourceCooperation>().eq(SceneResourceCooperation::getSceneCooperationId, id));
     }
+
+    @Override
+    public void deleteByCooperationIds(List<Long> ids) {
+        this.remove(new LambdaQueryWrapper<SceneResourceCooperation>().in(SceneResourceCooperation::getSceneCooperationId, ids));
+    }
 }

+ 14 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneServiceImpl.java

@@ -1305,4 +1305,18 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
         return ResultData.ok();
 
     }
+
+    @Override
+    public Long getSceneCount(Long cameraId,Long userId) {
+        LambdaQueryWrapper<Scene> queryWrapper = new LambdaQueryWrapper<Scene>()
+                .eq(Scene::getTbStatus, TbStatus.VALID.code())
+                .notIn(Scene::getSceneType, SceneType.YJHZXNFY.code());
+        if(cameraId !=null){
+            queryWrapper.eq(Scene::getCameraId ,cameraId);
+        }
+        if(userId !=null){
+            queryWrapper.eq(Scene::getUserId ,userId);
+        }
+        return this.count(queryWrapper);
+    }
 }