package com.fdkankan.manage.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.fdkankan.manage.common.RedisKeyUtil; import com.fdkankan.manage.entity.CameraDetail; import com.fdkankan.manage.entity.SceneCooperation; import com.fdkankan.manage.entity.SceneResourceCamera; import com.fdkankan.manage.entity.SceneResourceCooperation; import com.fdkankan.manage.httpClient.service.LaserService; import com.fdkankan.manage.mapper.ISceneResourceCameraMapper; import com.fdkankan.manage.service.ISceneCooperationService; import com.fdkankan.manage.service.ISceneResourceCameraService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.manage.service.ISceneResourceCooperationService; import com.fdkankan.manage.util.Dateutils; import com.fdkankan.redis.util.RedisUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.WeakHashMap; import java.util.stream.Collectors; /** *

* 场景资源和相机关联表 服务实现类 *

* * @author * @since 2022-06-17 */ @Service public class SceneResourceCameraServiceImpl extends ServiceImpl implements ISceneResourceCameraService { @Autowired ISceneCooperationService sceneCooperationService; @Autowired ISceneResourceCooperationService sceneResourceCooperationService; @Autowired RedisUtil redisUtil; @Autowired LaserService laserService; @Override public void unbindCamera(Long cameraId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(SceneResourceCamera::getCameraId,cameraId); this.remove(wrapper); } @Override public void setCooperationUser(CameraDetail cameraDetail, String num) { sceneCooperationService.delByNum(num); if(cameraDetail.getCooperationUser() == null){ return; } List list = this.getByCameraId(cameraDetail.getCameraId()); if(list.size() >0){ List resourceIdList = list.stream().map(SceneResourceCamera::getSceneResourceId).collect(Collectors.toList()); if(resourceIdList.size() >0){ SceneCooperation sceneCooperationEntity = new SceneCooperation(); sceneCooperationEntity.setUserId(cameraDetail.getCooperationUser()); sceneCooperationEntity.setSceneNum(num); sceneCooperationEntity.setRecStatus("A"); sceneCooperationEntity.setCreateTime(Dateutils.getDate(new Date())); sceneCooperationEntity.setUpdateTime(Dateutils.getDate(new Date())); sceneCooperationService.save(sceneCooperationEntity); redisUtil.hset(RedisKeyUtil.SCENE_COOPERATION_NUM_USERID, sceneCooperationEntity.getSceneNum(), sceneCooperationEntity.getUserId() + ""); List resourceCooperationList = new ArrayList<>(); for (Long resourceId : resourceIdList) { SceneResourceCooperation sceneResourceCooperation = new SceneResourceCooperation(); sceneResourceCooperation.setSceneResourceId(resourceId); sceneResourceCooperation.setSceneCooperationId(sceneCooperationEntity.getId()); sceneResourceCooperation.setRecStatus("A"); sceneResourceCooperation.setCreateTime(Dateutils.getDate(new Date())); sceneResourceCooperation.setUpdateTime(Dateutils.getDate(new Date())); resourceCooperationList.add(sceneResourceCooperation); } if(resourceCooperationList.size() >0){ sceneResourceCooperationService.saveBatch(resourceCooperationList,10000); } } } } private List getByCameraId(Long cameraId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(SceneResourceCamera::getCameraId,cameraId); return this.list(wrapper); } }