AgentNewCameraServiceImpl.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. package com.fdkankan.agent.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.fdkankan.agent.common.ResultCode;
  4. import com.fdkankan.agent.entity.AgentNewCamera;
  5. import com.fdkankan.agent.entity.Camera;
  6. import com.fdkankan.agent.entity.CameraDetail;
  7. import com.fdkankan.agent.exception.BusinessException;
  8. import com.fdkankan.agent.mapper.IAgentNewCameraMapper;
  9. import com.fdkankan.agent.request.CameraParam;
  10. import com.fdkankan.agent.service.IAgentNewCameraService;
  11. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  12. import com.fdkankan.agent.service.ICameraDetailService;
  13. import com.fdkankan.agent.service.ICameraService;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Service;
  17. import java.util.HashMap;
  18. import java.util.List;
  19. import java.util.stream.Collectors;
  20. /**
  21. * <p>
  22. * 服务实现类
  23. * </p>
  24. *
  25. * @author
  26. * @since 2024-06-18
  27. */
  28. @Service
  29. @Slf4j
  30. public class AgentNewCameraServiceImpl extends ServiceImpl<IAgentNewCameraMapper, AgentNewCamera> implements IAgentNewCameraService {
  31. @Autowired
  32. ICameraService cameraService;
  33. @Autowired
  34. ICameraDetailService cameraDetailService;
  35. @Override
  36. public void giveCamera(CameraParam param) {
  37. Camera camera = cameraService.getById(param.getId());
  38. if(camera == null){
  39. throw new BusinessException(ResultCode.CAMERA_EMPTY);
  40. }
  41. CameraDetail cameraDetail = cameraDetailService.getByCameraId(camera.getId());
  42. if(cameraDetail == null){
  43. throw new BusinessException(ResultCode.CAMERA_EMPTY);
  44. }
  45. if(!cameraDetail.getAgentId().equals(param.getAgentId())){
  46. throw new BusinessException(ResultCode.CAMERA_EMPTY);
  47. }
  48. giveCamera(param.getId(),param.getAgentId(),param.getSubAgentId());
  49. }
  50. public void giveCamera(Long cameraId,Integer agentId,Integer subAgentId) {
  51. AgentNewCamera agentNewCamera = this.getByCameraId(cameraId);
  52. if(agentNewCamera == null){
  53. agentNewCamera = new AgentNewCamera();
  54. }
  55. agentNewCamera.setCameraId(cameraId);
  56. agentNewCamera.setAgentId(agentId);
  57. agentNewCamera.setSubAgentId(subAgentId);
  58. this.saveOrUpdate(agentNewCamera);
  59. }
  60. @Override
  61. public Integer giveCameraBatch(List<Long> cameraIds, Integer agentId, Integer subAgentId) {
  62. Integer successNum = 0;
  63. for (Long cameraId : cameraIds) {
  64. try {
  65. giveCamera(cameraId,agentId,subAgentId);
  66. successNum ++;
  67. }catch (Exception e){
  68. log.info("分发失败:cameraId:{},agentId:{},subAgentId:{}",cameraId,agentId,subAgentId);
  69. }
  70. }
  71. return successNum;
  72. }
  73. private AgentNewCamera getByCameraId(Long cameraId) {
  74. LambdaQueryWrapper<AgentNewCamera> wrapper = new LambdaQueryWrapper<>();
  75. wrapper.eq(AgentNewCamera::getCameraId,cameraId);
  76. return this.getOne(wrapper);
  77. }
  78. @Override
  79. public List<Long> getBySubAgent(Integer subAgentId) {
  80. LambdaQueryWrapper<AgentNewCamera> wrapper = new LambdaQueryWrapper<>();
  81. wrapper.eq(AgentNewCamera::getSubAgentId,subAgentId);
  82. List<AgentNewCamera> list = this.list(wrapper);
  83. return list.stream().map(AgentNewCamera::getCameraId).collect(Collectors.toList());
  84. }
  85. @Override
  86. public HashMap<Long, AgentNewCamera> getMapByCameraIds(List<Long> voCameraIds) {
  87. HashMap<Long, AgentNewCamera> map = new HashMap<>();
  88. if(voCameraIds.isEmpty()){
  89. return map;
  90. }
  91. LambdaQueryWrapper<AgentNewCamera> wrapper = new LambdaQueryWrapper<>();
  92. wrapper.in(AgentNewCamera::getCameraId,voCameraIds);
  93. List<AgentNewCamera> list = this.list(wrapper);
  94. list.forEach(e -> map.put(e.getCameraId(),e));
  95. return map;
  96. }
  97. }