package com.casic.controller; import com.alibaba.fastjson.JSONObject; import com.casic.dto.ReturnDTO; import com.casic.model.ResponseData; import com.casic.service.DeviceService; import com.casic.util.OAuthUtil; import com.casic.util.ReturnUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.Map; import java.util.concurrent.TimeUnit; @Slf4j @RestController @RequestMapping("/casic") public class DeviceController { @Resource private OAuthUtil oAuthUtil; @Resource private RedisTemplate<String, String> redisTemplate; private final DeviceService deviceService; public DeviceController(DeviceService deviceService) { this.deviceService = deviceService; } @RequestMapping("/helloWord") public ResponseData helloWord() { return deviceService.testMysql(); } @PostMapping("/household/gas") public ResponseData saveDataGas(@RequestBody Map<String, Object> receiveData) { log.info("----------------------第三方燃气数据上报为{}", JSONObject.toJSONString(receiveData)); return deviceService.saveDataGas(receiveData); } @RequestMapping("/getToken") public ReturnDTO<Object> getToken(@RequestParam String code) { String phone = ""; //获取token String accessToken = redisTemplate.opsForValue().get(code); if (StringUtils.isEmpty(accessToken)) { accessToken = oAuthUtil.getAccessToken(); redisTemplate.opsForValue().set(code, accessToken, 2, TimeUnit.DAYS); } //验证token boolean flag = oAuthUtil.checkAccessToken(accessToken); //获取手机号 if (flag) { try { phone = oAuthUtil.getPhone(accessToken, code); System.out.println(phone); } catch (Exception e) { e.printStackTrace(); } } return ReturnUtil.success(phone); } //根据权限获取设备列表信息 @RequestMapping("/getDevices") public ReturnDTO<Object> getDevices(@RequestParam(required = false) String phone, @RequestParam(required = false) String devCode, @RequestParam(required = false) String shop, @RequestParam(value = "pageNo", defaultValue = "1") int pageNo, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) { return ReturnUtil.success(deviceService.getDevices(phone, devCode, shop, pageNo, pageSize)); } //根据权限获取设备日志信息 @RequestMapping("/getDatas") public ReturnDTO<Object> getDatas(@RequestParam(required = false) String devCode, @RequestParam(value = "pageNo", defaultValue = "1") int pageNo, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) { return ReturnUtil.success(deviceService.getDatas(devCode, pageNo, pageSize)); } //根据权限获取报警日志信息 @RequestMapping("/getAlarmRecords") public ReturnDTO<Object> getAlarmRecords(@RequestParam(required = false) String devCode, @RequestParam(required = false) String begTime, @RequestParam(required = false) String endTime, @RequestParam(value = "pageNo", defaultValue = "1") int pageNo, @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) { return ReturnUtil.success(deviceService.getAlarmRecords(devCode, begTime, endTime, pageNo, pageSize)); } //根据设备监控数量 @RequestMapping("/getIndex") public ReturnDTO<Object> getIndex() { return ReturnUtil.success(deviceService.getIndex()); } }