lyhzzz 6 months ago
parent
commit
77eff2464e

+ 11 - 0
src/main/java/com/fdkankan/ucenter/common/SceneSourceUtil.java

@@ -0,0 +1,11 @@
+package com.fdkankan.ucenter.common;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class SceneSourceUtil {
+
+    public static List<Integer> getLaserList(){
+        return Arrays.asList(4,5,57);
+    }
+}

+ 13 - 0
src/main/java/com/fdkankan/ucenter/controller/SceneCooperationController.java

@@ -60,6 +60,19 @@ public class SceneCooperationController extends BaseController {
         sceneCooperationService.saveCooperation(param,username);
         return Result.success();
     }
+
+    @PostMapping("/saveBatch")
+    public Result saveBatch(@RequestBody SceneCooperationParam param){
+        String username = JwtUtil.getUsername(getToken());
+        if(StringUtils.isNotBlank(getLang())){
+            param.setLang(getLang());
+        }
+        sceneCooperationService.saveBatchCooperation(param,username);
+        return Result.success();
+    }
+
+
+
     /**
      * 取消协作场景
      * sceneNum         场景码

+ 10 - 0
src/main/java/com/fdkankan/ucenter/httpClient/service/LaserService.java

@@ -430,4 +430,14 @@ public class LaserService {
         }
         return null ;
     }
+
+    public void saveBatchCooperation(List<String> numList2, String userName, List<String> userNameList) {
+        if(userNameList.isEmpty()){
+            userNameList.add(userName);
+        }
+        HashMap<String,Object> map = new HashMap<>();
+        map.put("numList",numList2);
+        map.put("userNameList",userNameList);
+        rabbitMqProducer.sendByWorkQueue("laser-batch-save-cooperation",map);
+    }
 }

+ 2 - 0
src/main/java/com/fdkankan/ucenter/service/ISceneCooperationService.java

@@ -42,4 +42,6 @@ public interface ISceneCooperationService extends IService<SceneCooperation> {
     SceneCooperation getByNum(String num);
 
     Object cooperationSceneList(SceneParam param, String username);
+
+    void saveBatchCooperation(SceneCooperationParam param, String username);
 }

+ 8 - 17
src/main/java/com/fdkankan/ucenter/service/impl/CameraServiceImpl.java

@@ -183,19 +183,22 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
         }
         for (CameraVo responseCamera : page.getRecords()) {
             responseCamera.setCameraType(param.getCameraType());
+            GroupByCount groupByCount = sceneNumMap.get(responseCamera.getId());
+            Integer sceneNum = groupByCount == null ? 0 : Math.toIntExact(sceneNumMap.get(responseCamera.getId()).getCount());
+            Long space = groupByCount == null ?0 :sceneNumMap.get(responseCamera.getId()).getSpace();
             if (responseCamera.getType() != 0){
                 if("GB".equals(responseCamera.getUnit())){
-                    responseCamera.setUsedSpaceStr(FileSizeUtil.formatFileSize(Long.parseLong(responseCamera.getUsedSpace())));
+                    responseCamera.setUsedSpaceStr(FileSizeUtil.formatFileSize(space));
                     responseCamera.setTotalSpaceStr(FileSizeUtil.formatFileSize(Long.parseLong(responseCamera.getTotalSpace())));
-                    String usedSpace = String.valueOf(FileSizeUtil.formetFileSize(Long.parseLong(responseCamera.getUsedSpace()), FileSizeUtil.SIZETYPE_GB));
+                    String usedSpace = String.valueOf(FileSizeUtil.formetFileSize(space, FileSizeUtil.SIZETYPE_GB));
                     String totalSpace = String.valueOf(FileSizeUtil.formetFileSize(Long.parseLong(responseCamera.getTotalSpace()), FileSizeUtil.SIZETYPE_GB));
                     responseCamera.setUsedSpace(usedSpace);
                     responseCamera.setTotalSpace(totalSpace);
                 }
                 if("SP".equals(responseCamera.getUnit())){
-                    responseCamera.setUsedSpaceStr(responseCamera.getUsedSpace());
+                    responseCamera.setUsedSpaceStr(String.valueOf(sceneNum));
                     responseCamera.setTotalSpaceStr(responseCamera.getTotalSpace());
-                    responseCamera.setUsedSpace(responseCamera.getUsedSpace());
+                    responseCamera.setUsedSpace(String.valueOf(responseCamera.getUsedSpace()));
                     responseCamera.setTotalSpace(responseCamera.getTotalSpace());
                 }
 
@@ -239,19 +242,7 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
 
                 }
             }
-//            CameraType cameraType = cameraTypeService.getByCameraType(responseCamera.getType());
-//            if (cameraType.getIsLaser() == 1) {
-//                Map<String, String> params = new HashMap<>();
-//                params.put("snCode", responseCamera.getSnCode());
-//                responseCamera.setSceneNum(fdkkLaserService.getLaserSceneNum(params));
-//            }else{
-//                Integer sceneNum = sceneNumMap.get(responseCamera.getId()) == null ? 0 : Math.toIntExact(sceneNumMap.get(responseCamera.getId()).getCount());
-//                String lastTime = sceneNumMap.get(responseCamera.getId()) == null ? "" : sceneNumMap.get(responseCamera.getId()).getLastTime();
-//                responseCamera.setSceneNum(sceneNum);
-//                responseCamera.setLastTime(lastTime);
-//            }
-            Integer sceneNum = sceneNumMap.get(responseCamera.getId()) == null ? 0 : Math.toIntExact(sceneNumMap.get(responseCamera.getId()).getCount());
-            String lastTime = sceneNumMap.get(responseCamera.getId()) == null ? "" : sceneNumMap.get(responseCamera.getId()).getLastTime();
+            String lastTime = groupByCount == null ? "" : sceneNumMap.get(responseCamera.getId()).getLastTime();
             responseCamera.setSceneNum(sceneNum);
             responseCamera.setLastTime(lastTime);
         }

+ 41 - 36
src/main/java/com/fdkankan/ucenter/service/impl/SceneCooperationServiceImpl.java

@@ -7,6 +7,7 @@ import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.ucenter.common.PageInfo;
 import com.fdkankan.ucenter.common.RedisKeyUtil;
+import com.fdkankan.ucenter.common.SceneSourceUtil;
 import com.fdkankan.ucenter.common.constants.NacosProperty;
 import com.fdkankan.ucenter.constant.LoginConstant;
 import com.fdkankan.ucenter.entity.*;
@@ -115,23 +116,6 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
         }
         this.saveBatch(list);
 
-        if(resourceIdList.size() >0){
-            List<SceneResourceCooperation> resourceCooperationList = new ArrayList<>();
-            for (SceneCooperation sceneCooperation : list) {
-                for (Long resourceId : resourceIdList) {
-                    SceneResourceCooperation sceneResourceCooperation = new SceneResourceCooperation();
-                    sceneResourceCooperation.setSceneResourceId(resourceId);
-                    sceneResourceCooperation.setSceneCooperationId(sceneCooperation.getId());
-                    sceneResourceCooperation.setRecStatus("A");
-                    sceneResourceCooperation.setCreateTime(DateUserUtil.getDate(new Date()));
-                    sceneResourceCooperation.setUpdateTime(DateUserUtil.getDate(new Date()));
-                    resourceCooperationList.add(sceneResourceCooperation);
-                }
-            }
-            if(resourceCooperationList.size() >0){
-                sceneResourceCooperationService.saveBatch(resourceCooperationList,10000);
-            }
-        }
     }
 
     @Override
@@ -221,7 +205,7 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
 
     @Override
     public void saveCooperation(SceneCooperationParam param, String username) {
-        if(StringUtils.isEmpty(param.getUserName()) || StringUtils.isEmpty(param.getSceneNum()) || StringUtils.isEmpty(param.getResourceIds())){
+        if(StringUtils.isEmpty(param.getUserName()) || StringUtils.isEmpty(param.getSceneNum())){
             throw new BusinessException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
         }
         if(param.getUserName().equals( username)){
@@ -231,36 +215,57 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
         if(user == null){
             throw new BusinessException(LoginConstant.FAILURE_CODE_3021, LoginConstant.FAILURE_MSG_3021);
         }
+        saveCooperationCommon(param,Arrays.asList(user));
+    }
+
+    @Override
+    public void saveBatchCooperation(SceneCooperationParam param, String username) {
+        if(param.getUserNameList() == null || param.getUserNameList().isEmpty() || StringUtils.isEmpty(param.getSceneNum())){
+            throw new BusinessException(LoginConstant.FAILURE_CODE_3001, LoginConstant.FAILURE_MSG_3001);
+        }
+        if(param.getUserName().contains( username)){
+            throw new BusinessException(LoginConstant.FAILURE_CODE_3024, LoginConstant.FAILURE_MSG_3024);
+        }
+        List<User> users = new ArrayList<>();
+        for (String userName : param.getUserNameList()) {
+            User user = userService.getByUserName(userName);
+            if(user == null){
+                throw new BusinessException(LoginConstant.FAILURE_CODE_3021, LoginConstant.FAILURE_MSG_3021);
+            }
+            users.add(user);
+        }
         String[] nums = param.getSceneNum().split(",");
         List<String> numList =  Arrays.asList(nums);
         List<ScenePro> proList = sceneProService.getListByNums(numList);
         List<ScenePlus> plusList = scenePlusService.getListByNums(numList);
         this.deleteCooperationList(proList,plusList);
 
-        List<SceneResource> v3List = new ArrayList<>();
-        List<SceneResource> v4List = new ArrayList<>();
-        List<Long> resourceIdList = new ArrayList<>();
-        if (StringUtils.isNotEmpty(param.getResourceIds())) {
-            for (String rId : param.getResourceIds().split(",")) {
-                resourceIdList.add(Long.valueOf(rId));
-            }
-            List<SceneResource> sceneResources = sceneResourceService.listByIds(resourceIdList);
-            v3List = sceneResources.stream().filter(entity -> entity.getVersion().equals("v3")).collect(Collectors.toList());
-            v4List = sceneResources.stream().filter(entity -> entity.getVersion().equals("v4")).collect(Collectors.toList());
-        }
+        saveCooperationCommon(param,users);
+
+    }
+    @Autowired
+    LaserService laserService;
+
+    private void saveCooperationCommon(SceneCooperationParam param,List<User> user){
 
-        if(!v3List.isEmpty() && !proList.isEmpty()){
-            List<Long> v3Ids = v3List.stream().map(SceneResource::getId).collect(Collectors.toList());
-            this.saveBatchByList(proList,new ArrayList<>(),user.getId(),v3Ids);
+
+        if( !proList.isEmpty()){
+            this.saveBatchByList(proList,new ArrayList<>(),user.getId(),null);
         }
-        if(!v4List.isEmpty() && !plusList.isEmpty()){
-            List<Long> v4Ids = v4List.stream().map(SceneResource::getId).collect(Collectors.toList());
-            this.saveBatchByList(new ArrayList<>(),plusList,user.getId(),v4Ids);
+        if(!plusList.isEmpty()){
+            this.saveBatchByList(new ArrayList<>(),plusList,user.getId(),null);
         }
 
         if("aws".equals(NacosProperty.uploadType)){
-            mailTemplateService.sendSceneCooperation(proList,plusList,param.getUserName(),param.getLang());
+            mailTemplateService.sendSceneCooperation(proList,plusList,user.getUserName(),param.getLang());
         }
+        List<ScenePro> collect1 = proList.stream().filter(e -> SceneSourceUtil.getLaserList().contains(e.getSceneSource())).collect(Collectors.toList());
+        List<ScenePlus> collect2 = plusList.stream().filter(e -> SceneSourceUtil.getLaserList().contains(e.getSceneSource())).collect(Collectors.toList());
+        List<String> numList1 = collect1.stream().map(ScenePro::getNum).collect(Collectors.toList());
+        List<String> numList2 = collect2.stream().map(ScenePlus::getNum).collect(Collectors.toList());
+        numList1.addAll(numList2);
+        laserService.saveBatchCooperation(numList2,param.getUserName(),param.getUserNameList());
+
     }
 
     @Override

+ 4 - 0
src/main/java/com/fdkankan/ucenter/vo/request/SceneCooperationParam.java

@@ -2,6 +2,7 @@ package com.fdkankan.ucenter.vo.request;
 
 import lombok.Data;
 
+import java.util.ArrayList;
 import java.util.List;
 
 @Data
@@ -16,4 +17,7 @@ public class SceneCooperationParam {
     private String resourceIds;
 
     private String lang = "en";
+
+    private List<String> userNameList = new ArrayList<>();
+
 }

+ 1 - 0
src/main/java/com/fdkankan/ucenter/vo/response/GroupByCount.java

@@ -7,4 +7,5 @@ public class GroupByCount {
     private Long id;
     private Long count;
     private String lastTime;
+    private Long space;
 }

+ 4 - 4
src/main/resources/mapper/ucenter/SceneProMapper.xml

@@ -3,8 +3,8 @@
 <mapper namespace="com.fdkankan.ucenter.mapper.ISceneProMapper">
 
     <select id="findSceneProNumByCameraIds" resultType="com.fdkankan.ucenter.vo.response.GroupByCount">
-        SELECT camera_id as id,count(id)  as count ,max(create_time) as lastTime FROM t_scene_pro
-        WHERE rec_status = 'A' AND camera_id is not null AND is_upgrade = 0
+        SELECT camera_id as id,count(id)  as count,sum(space)  as space  ,max(create_time) as lastTime FROM t_scene_pro
+        WHERE rec_status = 'A'  AND is_upgrade = 0
         and camera_id in
         <foreach item="cameraId" collection="cameraIds" open="(" separator="," close=")">
             #{cameraId}
@@ -12,8 +12,8 @@
         GROUP BY camera_id
     </select>
     <select id="findScenePlusNumByCameraIds" resultType="com.fdkankan.ucenter.vo.response.GroupByCount">
-        SELECT camera_id as id,count(id)  as count ,max(create_time) as lastTime FROM t_scene_plus
-        WHERE rec_status = 'A' AND camera_id is not null
+        SELECT camera_id as id,count(id)  as count ,sum(space)  as space ,max(create_time) as lastTime FROM t_scene_plus s left join  t_scene_plus_ext e on s.id = e.plus_id
+        WHERE s.rec_status = 'A'
         and camera_id in
         <foreach item="cameraId" collection="cameraIds" open="(" separator="," close=")">
             #{cameraId}