Newer
Older
gas-app / src / main / java / com / casic / controller / DeviceController.java
casic_zt on 6 Sep 2023 4 KB first commit
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());
    }

}