package com.fdkankan.agent.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.fdkankan.agent.common.ResultCode; import com.fdkankan.agent.entity.AgentNewCamera; import com.fdkankan.agent.entity.Camera; import com.fdkankan.agent.entity.CameraDetail; import com.fdkankan.agent.exception.BusinessException; import com.fdkankan.agent.mapper.IAgentNewCameraMapper; import com.fdkankan.agent.request.CameraParam; import com.fdkankan.agent.service.IAgentNewCameraService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.agent.service.ICameraDetailService; import com.fdkankan.agent.service.ICameraService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; import java.util.stream.Collectors; /** *

* 服务实现类 *

* * @author * @since 2024-06-18 */ @Service @Slf4j public class AgentNewCameraServiceImpl extends ServiceImpl implements IAgentNewCameraService { @Autowired ICameraService cameraService; @Autowired ICameraDetailService cameraDetailService; @Override public void giveCamera(CameraParam param) { Camera camera = cameraService.getById(param.getId()); if(camera == null){ throw new BusinessException(ResultCode.CAMERA_EMPTY); } CameraDetail cameraDetail = cameraDetailService.getByCameraId(camera.getId()); if(cameraDetail == null){ throw new BusinessException(ResultCode.CAMERA_EMPTY); } if(!cameraDetail.getAgentId().equals(param.getAgentId())){ throw new BusinessException(ResultCode.CAMERA_EMPTY); } giveCamera(param.getId(),param.getAgentId(),param.getSubAgentId()); } public void giveCamera(Long cameraId,Integer agentId,Integer subAgentId) { AgentNewCamera agentNewCamera = this.getByCameraId(cameraId); if(agentNewCamera == null){ agentNewCamera = new AgentNewCamera(); } agentNewCamera.setCameraId(cameraId); agentNewCamera.setAgentId(agentId); agentNewCamera.setSubAgentId(subAgentId); this.saveOrUpdate(agentNewCamera); } @Override public Integer giveCameraBatch(List cameraIds, Integer agentId, Integer subAgentId) { Integer successNum = 0; for (Long cameraId : cameraIds) { try { giveCamera(cameraId,agentId,subAgentId); successNum ++; }catch (Exception e){ log.info("分发失败:cameraId:{},agentId:{},subAgentId:{}",cameraId,agentId,subAgentId); } } return successNum; } private AgentNewCamera getByCameraId(Long cameraId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(AgentNewCamera::getCameraId,cameraId); return this.getOne(wrapper); } @Override public List getBySubAgent(Integer subAgentId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(AgentNewCamera::getSubAgentId,subAgentId); List list = this.list(wrapper); return list.stream().map(AgentNewCamera::getCameraId).collect(Collectors.toList()); } @Override public HashMap getMapByCameraIds(List voCameraIds) { HashMap map = new HashMap<>(); if(voCameraIds.isEmpty()){ return map; } LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.in(AgentNewCamera::getCameraId,voCameraIds); List list = this.list(wrapper); list.forEach(e -> map.put(e.getCameraId(),e)); return map; } }