package com.welampiot.controller; import com.welampiot.common.BaseResult; import com.welampiot.common.InterfaceResultEnum; import com.welampiot.dto.LampInfoDTO; import com.welampiot.dto.LampPoleDTO; import com.welampiot.dto.ScreenDTO; import com.welampiot.dto.WifiDTO; import com.welampiot.service.LampPoleService; import com.welampiot.service.LampService; import com.welampiot.service.ScreenService; import com.welampiot.service.WifiService; import com.welampiot.utils.ToolUtils; import com.welampiot.vo.LampPoleVO; import com.welampiot.vo.ListResponseVO; import com.welampiot.vo.ScreenDetailsVO; import com.welampiot.vo.ScreenVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import java.text.ParseException; import java.util.ArrayList; import java.util.List; /** * ClassName: LampPoleController * Package: com.welampiot.controller * Description: * * @Author: zhj_Start * @Create: 2023/4/14 - 14:35 * @Version: v1.0 */ @RestController @CrossOrigin @RequestMapping("/lampPole") public class LampPoleController { @Autowired private ScreenService screenService; @Autowired private ToolUtils toolUtils; @Autowired private LampPoleService lampPoleService; @Autowired private WifiService wifiService; @Autowired private LampService lampService; /** * 获取屏幕详情 * @param request * @return */ @RequestMapping(value = "/screenDetails", method = RequestMethod.POST) public BaseResult screenDetails(HttpServletRequest request){ Integer id = request.getParameter("id") == null ? 0 : Integer.parseInt(request.getParameter("id")); Integer version = request.getParameter("version") == null ? 0 : Integer.parseInt(request.getParameter("version")); if (id == 0) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version); ScreenDTO dto = new ScreenDTO(); dto.setId(id); dto.setSectionList(toolUtils.getSectionList(request)); ScreenDetailsVO vo = screenService.getScreenDetails(dto); if (vo == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version); return BaseResult.success(vo); } @RequestMapping(value = "/nav",method = RequestMethod.POST) public BaseResult nav(HttpServletRequest request){ Integer version = request.getParameter("version") == null ? 0 : Integer.parseInt(request.getParameter("version")); Integer devType = request.getParameter("devType") == null || request.getParameter("devType").length() == 0 ? null : Integer.parseInt(request.getParameter("devType")); Integer devId = request.getParameter("devId") == null || request.getParameter("devId").length() == 0 ? null : Integer.parseInt(request.getParameter("devId")); LampPoleVO lampPoleVO = new LampPoleVO(); List sectionList = toolUtils.getSectionList(request); lampPoleVO.setSectionList(sectionList); if (devType != null) lampPoleVO.setDevType(devType); if (devId != null) lampPoleVO.setDevId(devId); List navByVO = lampPoleService.getNavByVO(lampPoleVO); ListResponseVO listResponseVO = new ListResponseVO(); listResponseVO.setList(navByVO); return BaseResult.success(listResponseVO); } /** * 灯杆列表 * @param request * @return */ @RequestMapping(value = "/getlist",method = RequestMethod.POST) public BaseResult getList(HttpServletRequest request){ Integer version = (Integer) toolUtils.getRequestContent(request,"version",1); Integer groupId = (Integer) toolUtils.getRequestContent(request,"groupId",1); List sectionList = toolUtils.getSectionList(request); ListResponseVO listResponseVO = new ListResponseVO(); listResponseVO.setList(new ArrayList()); listResponseVO.setTotal(1); return BaseResult.success(); } /** * 添加编辑灯杆 * @return */ @Transactional @RequestMapping(value = "/save",method = RequestMethod.POST) public BaseResult save(LampPoleVO form,HttpServletRequest request){ toolUtils.getSectionList(request); form.setCreateId(toolUtils.getUser().getId()); BaseResult baseResult = null; if (form.getId() == null || form.getId() == 0){ baseResult = lampPoleService.add(form); }else { baseResult = lampPoleService.update(form); } if (!baseResult.getCode().equals("0000")){ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } return baseResult; } /** * 查看灯杆详情 * @return */ @RequestMapping(value = "/details",method = RequestMethod.POST) public BaseResult details(HttpServletRequest request){ Integer version = (Integer) toolUtils.getRequestContent(request,"version",1); Integer id = (Integer) toolUtils.getRequestContent(request,"id",1); if (id == null || id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version); LampPoleDTO detailById = lampPoleService.getDetailById(id); // 灯控 List lampPoleDetailListByLampPoleId = lampService.getLampPoleDetailListByLampPoleId(id); detailById.setLightDevList(lampPoleDetailListByLampPoleId); detailById.setBenchDevList(new ArrayList<>()); detailById.setSolarDevList(new ArrayList<>()); detailById.setLightStripList(new ArrayList<>()); detailById.setLoopList(new ArrayList<>()); detailById.setScreenList(new ArrayList<>()); detailById.setSmartLockList(new ArrayList<>()); detailById.setWaterImmersionList(new ArrayList<>()); detailById.setVideoList(new ArrayList<>()); detailById.setBroadcastList(new ArrayList<>()); // 云盒 WifiDTO wifiDTO = new WifiDTO(); wifiDTO.setLampPoleId(id); WifiDTO detailByDTO = wifiService.getDetailByDTO(wifiDTO); detailById.setCloudDev(detailByDTO); return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,detailById); } /** * 删除灯杆 * @return */ @RequestMapping(value = "/del",method = RequestMethod.POST) public BaseResult del(HttpServletRequest request){ Integer version = (Integer) toolUtils.getRequestContent(request,"version",1); String id = (String) toolUtils.getRequestContent(request,"id",2); if (id == null || id.length() == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version); String[] split = id.split(","); for (String i:split) { lampPoleService.deleteById(Integer.parseInt(i)); } return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version); } /** * 获取同一路段下的所有屏幕 * @param request 灯杆id * @return 屏幕列表 */ @RequestMapping(value = "/screenList", method = RequestMethod.POST) public BaseResult screenList(HttpServletRequest request) throws ParseException { Integer version = (Integer) toolUtils.getRequestContent(request,"version",1); Integer id = (Integer) toolUtils.getRequestContent(request,"id",1); if (id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version); Integer sectionId = lampPoleService.getSectionIdByLampPoleId(id); if (sectionId == null || sectionId == 0) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version); List allScreenList = screenService.getAllScreenListBySectionId(sectionId); List list = new ArrayList<>(); allScreenList.forEach(dto -> { if (dto.getPlaying() == null) { dto.setPlaying(""); } list.add(dto); }); ScreenVO screenVO = new ScreenVO(); screenVO.setList(list); return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,screenVO); } }