package com.doumee.cloud.openapi;
|
|
import com.doumee.api.BaseController;
|
import com.doumee.biz.system.SystemDictDataBiz;
|
import com.doumee.config.annotation.LoginNoRequired;
|
import com.doumee.core.annotation.pr.PreventRepeat;
|
import com.doumee.core.model.ApiResponse;
|
import com.doumee.core.utils.Constants;
|
import com.doumee.core.utils.DESUtil;
|
import com.doumee.dao.openapi.request.*;
|
import com.doumee.dao.openapi.response.*;
|
import com.doumee.dao.system.model.SystemUser;
|
import com.doumee.service.business.PlatformJobService;
|
import com.doumee.service.business.PlatformLogService;
|
import com.doumee.service.business.PlatformService;
|
import com.doumee.service.business.PlatformWaterGasService;
|
import com.doumee.service.system.SystemUserService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.net.URLDecoder;
|
import java.util.*;
|
|
/**
|
* @author 江蹄蹄
|
* @date 2023/11/30 15:33
|
*/
|
@Api(tags = "提供安防平台对接接口(数据大屏基础数据等)")
|
@RestController
|
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/hk/api")
|
public class HkOpenApiController extends BaseController {
|
|
@Autowired
|
private PlatformService platformService;
|
|
@Autowired
|
private PlatformLogService platformLogService;
|
|
@Autowired
|
private PlatformJobService platformJobService;
|
|
@Autowired
|
private PlatformWaterGasService platformWaterGasService;
|
|
@Autowired
|
private SystemUserService systemUserService;
|
|
@Autowired
|
private SystemDictDataBiz systemDictDataBiz;
|
|
@Autowired
|
private RedisTemplate<String,Object> redisTemplate;
|
|
@LoginNoRequired
|
@ApiOperation("token解析")
|
@GetMapping("/water/decodeToken")
|
public Map<String,Object> decodeToken(@RequestParam String token) {
|
try {
|
token = URLDecoder.decode(token,"UTF-8");
|
}catch (Exception e){
|
|
}
|
HkBaseTokenRequest hkBaseTokenRequest = new HkBaseTokenRequest();
|
hkBaseTokenRequest.setToken(token);
|
return this.decodeTokenForHk(hkBaseTokenRequest);
|
}
|
|
public Map<String,Object> decodeTokenForHk(HkBaseTokenRequest hkBaseTokenRequest){
|
Map<String,Object> result = new HashMap<>();
|
result.put("code","0");
|
result.put("msg","success");
|
if(Objects.isNull(hkBaseTokenRequest)||StringUtils.isBlank(hkBaseTokenRequest.getToken())){
|
result.put("code","-1");
|
result.put("msg","token参数为空");
|
return result;
|
}
|
String redisToken = (String) redisTemplate.opsForValue().get(Constants.REDIS_HK_TOKEN_KEY+hkBaseTokenRequest.getToken());
|
if(StringUtils.isBlank(redisToken)){
|
result.put("code","-1");
|
result.put("msg","token无效!");
|
return result;
|
}
|
String userName = DESUtil.verifyHkToken(hkBaseTokenRequest.getToken());
|
if(StringUtils.isBlank(userName)){
|
result.put("code","-1");
|
result.put("msg","token参数为空");
|
return result;
|
}
|
//查询用户信息是否存在
|
SystemUser systemUser = new SystemUser();
|
systemUser.setUsername(userName);
|
systemUser.setDeleted(Boolean.FALSE);
|
SystemUser queryBean = systemUserService.findOne(systemUser);
|
if(Objects.isNull(queryBean)){
|
result.put("code","-1");
|
result.put("msg","token参数为空");
|
return result;
|
}
|
if(Constants.equalsInteger(queryBean.getStatus(),Constants.ONE)){
|
result.put("code","-2");
|
result.put("msg","用户已禁用");
|
return result;
|
}
|
redisTemplate.delete(Constants.REDIS_HK_TOKEN_KEY+hkBaseTokenRequest.getToken());
|
Map<String,Object> data = new HashMap<>();
|
data.put("userId",userName);
|
result.put("data",data);
|
return result;
|
}
|
|
|
@LoginNoRequired
|
@PreventRepeat
|
@ApiOperation("【用水量】本月、上月和去年同月")
|
@PostMapping("/water/dataByMonth")
|
public ApiResponse<WaterByMonthResponse> waterDataByMonth(@RequestBody WaterByMonthRequest param) {
|
return ApiResponse.success(platformWaterGasService.waterDataByMonth(param));
|
}
|
|
@LoginNoRequired
|
@PreventRepeat
|
@ApiOperation("【用气量】本月、上月和去年同月")
|
@PostMapping("/gas/dataByMonth")
|
public ApiResponse<GasByMonthResponse> gasDataByMonth(@RequestBody GasByMonthRequest param) {
|
return ApiResponse.success(platformWaterGasService.gasDataByMonth(param));
|
}
|
|
@LoginNoRequired
|
@PreventRepeat
|
@ApiOperation("【月台】按天统计运单请求参数")
|
@PostMapping("/platform/orderNumByDate")
|
public ApiResponse<PlatformOrderNumByDateResponse> orderNumByDate(@RequestBody PlatformOrderNumByDateRequest param) {
|
return ApiResponse.success(platformJobService.orderNumByDate(param));
|
}
|
|
|
@LoginNoRequired
|
@PreventRepeat
|
@ApiOperation("【月台】月台状态数量统计")
|
@PostMapping("/platform/totalNumByStatus")
|
public ApiResponse<PlatformNumByStatusResponse> totalNumByStatus(@RequestBody PlatformNumByStatusRequest param) {
|
return ApiResponse.success(platformService.getPlatformNumByStatusResponse());
|
}
|
|
|
@LoginNoRequired
|
@PreventRepeat
|
@ApiOperation("【月台】月台当前作业信息列表")
|
@PostMapping("/platform/workingDataList")
|
public ApiResponse<List<PlatformDataListResponse>> platformWorkingDataList(@RequestBody PlatformDataListRequest param) {
|
return ApiResponse.success(platformJobService.platformWorkingDataList(param));
|
}
|
|
@LoginNoRequired
|
@PreventRepeat
|
@ApiOperation("【月台】月台作业详情信息")
|
@PostMapping("/platform/workDataInfo")
|
public ApiResponse<PlatformDataInfoResponse> platformWorkingDataList(@RequestBody PlatformDataInfoRequest param) {
|
return ApiResponse.success(platformJobService.platformWorkingDataList(param));
|
}
|
|
|
@LoginNoRequired
|
@PreventRepeat
|
@ApiOperation("【月台】当前车辆状态数量统计")
|
@PostMapping("/platform/carStatusNum")
|
public ApiResponse<CarNumByStatusResponse> carStatusNum(@RequestBody CarNumByStatusRequest param) {
|
return ApiResponse.success(platformJobService.carStatusNum(param));
|
}
|
|
@LoginNoRequired
|
@PreventRepeat
|
@ApiOperation("【月台】车辆事件列表数据集合(最新N条)")
|
@PostMapping("/platform/carLogsList")
|
public ApiResponse<List<CarLogsListResponse>> carLogsList(@RequestBody CarLogsListRequest param) {
|
return ApiResponse.success(platformLogService.getCarLogsListResponse(param));
|
}
|
|
@LoginNoRequired
|
@PreventRepeat
|
@ApiOperation("【月台】排队队列列表集合")
|
@PostMapping("/platform/queueList")
|
public ApiResponse<PlatformQueuingListResponse> queueList(@RequestBody PlatformQueuingListRequest param) {
|
return ApiResponse.success(platformJobService.queueList(param));
|
}
|
|
@LoginNoRequired
|
@PreventRepeat
|
@ApiOperation("【月台】预警事件集合列表")
|
@PostMapping("/platform/warningEventList")
|
public ApiResponse<List<PlatformWarnEventListResponse>> warningEventList(@RequestBody PlatformWarnEventListRequest param) {
|
return ApiResponse.success(new ArrayList<>());
|
}
|
|
@LoginNoRequired
|
@PreventRepeat
|
@ApiOperation("【月台】月台状态")
|
@PostMapping("/platform/getStatusList")
|
public ApiResponse<List<PlatformStatusListResponse>> getStatusList() {
|
return ApiResponse.success(platformService.getPlatformStatusList());
|
}
|
}
|