package com.sandu.ximon.admin.controller; import com.sandu.common.domain.CommonPage; import com.sandu.common.domain.ResponseVO; import com.sandu.common.object.BaseConditionVO; import com.sandu.common.util.ResponseUtil; import com.sandu.ximon.admin.param.LightControlParam; import com.sandu.ximon.admin.param.LightPowerSettingParam; import com.sandu.ximon.admin.param.LightRemarkParam; import com.sandu.ximon.admin.security.PermissionConfig; import com.sandu.ximon.admin.service.LightReportDataService; import com.sandu.ximon.admin.service.LightReportErrorService; import com.sandu.ximon.admin.service.LightService; import com.sandu.ximon.dao.bo.LightBo; import com.sandu.ximon.dao.bo.LightReportDataBo; import com.sandu.ximon.dao.bo.LightReportErrorBo; import com.sandu.ximon.dao.enums.MenuEnum; import lombok.AllArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * 路灯相关控制类 * * @author chenjiantian */ @RestController @AllArgsConstructor @RequestMapping("/v1/light") public class LightController { private final LightService lightService; private final LightReportDataService lightReportDataService; private final LightReportErrorService lightReportErrorService; private PermissionConfig permissionConfig; @GetMapping("/list") public ResponseVO listLight(BaseConditionVO conditionVO, @RequestParam(required = false) String keyword) { if (!permissionConfig.check(MenuEnum.LIGHT_LIST.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } List list = lightService.listLight(conditionVO.getPageNo(), conditionVO.getPageSize(), keyword); return ResponseUtil.successPage(list); } @PostMapping("/remark") public ResponseVO addRemark(@RequestBody @Validated LightRemarkParam param) { boolean result = lightService.addRemark(param); if (result) { return ResponseUtil.success("添加成功"); } else { return ResponseUtil.fail("添加失败"); } } /** * 获取上报数据 * * @param conditionVO * @return */ @GetMapping("/report/list") public ResponseVO listReportData(BaseConditionVO conditionVO , @RequestParam(required = false) String keyword, @RequestParam(required = false) String deviceCode) { if (!permissionConfig.check(MenuEnum.LIGHT_DATA.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } CommonPage commonPage = lightReportDataService.listReportData(conditionVO.getPageNo(), conditionVO.getPageSize(), keyword, deviceCode); List lightReportDataBos = ( List)commonPage.getList(); if(lightReportDataBos == null){ return ResponseUtil.success(CommonPage.restPage(new ArrayList<>())); } CommonPage commonPage1 = CommonPage.restPage(lightReportDataBos); commonPage1.setTotal(commonPage.getTotal()); commonPage1.setTotalPage(commonPage.getTotalPage()); return ResponseUtil.success(commonPage1); } /** * 导出Excel * * @param conditionVO * @param keyword * @param deviceCode * @return */ @GetMapping("/report/exportList") public ResponseVO exportList(BaseConditionVO conditionVO, @RequestParam(required = false) String keyword, @RequestParam(required = false) String deviceCode) { String url = lightReportDataService.exportList(conditionVO.getPageNo(), conditionVO.getPageSize(), keyword, deviceCode); return ResponseUtil.success(url); } @GetMapping("/error/list") public ResponseVO listReportError(BaseConditionVO conditionVO, @RequestParam(required = false) String keyword , @RequestParam(required = false) Integer errorCode) { if (!permissionConfig.check(MenuEnum.LIGHT_ERROR_LIST.getCode())) { return ResponseUtil.fail("缺少对应用户权限"); } List list = lightReportErrorService.listReportError(conditionVO.getPageNo(), conditionVO.getPageSize(), keyword, errorCode); return ResponseUtil.success(list); } // 亮度控制 @PostMapping("/control") public ResponseVO controlBrightness(@RequestBody @Validated List paramList) { List> list = lightService.controlBrightness(paramList); return ResponseUtil.success(list); } @PostMapping("/EnergySaving") public ResponseVO controlEnergySaving() { return ResponseUtil.success(lightService.controlEnergySaving()); } // /** // * 获取设备码 // */ // @GetMapping("/deviceCode") // public ResponseVO getDeviceCode(BaseConditionVO baseConditionVO) { // return ResponseUtil.success(lightService.listDeviceCode(baseConditionVO.getPageNo() , baseConditionVO.getPageSize())); // } /** * 设置功率 */ @PostMapping("/setPower/{power1}/{power2}") public ResponseVO setPower(@RequestBody LightPowerSettingParam lightPowerSettingParam) { boolean resule= lightService.setPower(lightPowerSettingParam); return ResponseUtil.success(resule); } }