package com.fdkankan.ucenter.controller.api; import com.fdkankan.common.constant.ErrorCode; import com.fdkankan.common.exception.BusinessException; import com.fdkankan.common.util.JwtUtil; import com.fdkankan.ucenter.common.BaseController; import com.fdkankan.ucenter.common.Result; import com.fdkankan.ucenter.entity.ScenePlus; import com.fdkankan.ucenter.entity.ScenePlusExt; import com.fdkankan.ucenter.entity.ScenePro; import com.fdkankan.ucenter.entity.User; import com.fdkankan.ucenter.service.*; import com.fdkankan.ucenter.vo.LaserSceneVo; import com.fdkankan.ucenter.vo.response.CameraAppVo; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.*; import java.util.stream.Collectors; /** * 激光使用接口 */ @RestController @RequestMapping("/ucenter/laser") public class LaserController extends BaseController { @Autowired ISceneProService sceneProService; @Autowired IScenePlusService scenePlusService; @Autowired IScenePlusExtService scenePlusExtService; @Autowired ICameraService cameraService; @Autowired IUserService userService; @Autowired ICameraDetailService cameraDetailService; /** * 根据手机号码获取 相机 sncode */ @RequestMapping(value = "/getSnCodeByPhone",method = RequestMethod.GET) public Result getSnCodeByUserName(@RequestParam(required = false)String phone, @RequestParam(required = false,defaultValue = "4")String sceneSource) throws Exception { if(StringUtils.isBlank(phone)){ String token = getToken(); phone = JwtUtil.getUsername(token); } if(StringUtils.isBlank(phone)){ throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS); } List userIds = userService.getLikeUserName(phone); HashMap map = new HashMap<>(); Set snCodeSet = new HashSet<>(); map.put("phone",phone); map.put("snCodes",snCodeSet); if(userIds.size() <=0){ return Result.success(map); } List camera = new ArrayList<>(); if(sceneSource.contains(",")){ String[] split = sceneSource.split(","); for (String resource : split) { if("4".equals(resource)){ camera.addAll( cameraDetailService.getListByUserIdsAndType(userIds, 10)); } if("5".equals(resource)){ camera.addAll(cameraDetailService.getListByUserIdsAndType(userIds, 11)); } } } if("4".equals(sceneSource)){ camera = cameraDetailService.getListByUserIdsAndType(userIds, 10); } if("5".equals(sceneSource)){ camera = cameraDetailService.getListByUserIdsAndType(userIds, 11); } if(camera.size() >0){ snCodeSet = camera.stream().map(CameraAppVo::getSnCode).collect(Collectors.toSet()); map.put("snCodes",snCodeSet); } return Result.success(map); } /** * 获取场景数据 */ @RequestMapping(value = "/getSceneByNum",method = RequestMethod.GET) public Result getSceneByNum(@RequestParam(required = false)String num) throws Exception { ScenePro sceneProEntity = sceneProService.getByNum(num); LaserSceneVo vo = new LaserSceneVo(); Long userId = null; if(sceneProEntity!= null){ vo.setNum(sceneProEntity.getNum()); userId = sceneProEntity.getUserId(); vo.setShootCount(sceneProEntity.getShootCount()); } ScenePlus scenePlus = scenePlusService.getByNum(num); if(scenePlus != null){ vo.setNum(scenePlus.getNum()); userId = scenePlus.getUserId(); ScenePlusExt byPlusId = scenePlusExtService.getByPlusId(scenePlus.getId()); if(byPlusId !=null){ vo.setShootCount(byPlusId.getShootCount()); } } if(userId != null){ User user = userService.getById(userId); if(user!=null){ vo.setUserPhone(user.getUserName()); vo.setUserId(user.getId()); } } return Result.success(vo); } }