|  |  |  | 
|---|
|  |  |  | 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.*; | 
|---|
|  |  |  | import com.doumee.service.system.SystemUserService; | 
|---|
|  |  |  | import io.swagger.annotations.Api; | 
|---|
|  |  |  | import io.swagger.annotations.ApiOperation; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.PostMapping; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.RequestBody; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.RequestMapping; | 
|---|
|  |  |  | import org.springframework.web.bind.annotation.RestController; | 
|---|
|  |  |  | 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.util.ArrayList; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.net.URLDecoder; | 
|---|
|  |  |  | import java.util.*; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * @author 江蹄蹄 | 
|---|
|  |  |  | 
|---|
|  |  |  | @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 PlatformWarnEventService platformWarnEventService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @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") | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | public ApiResponse<WaterByMonthResponse> waterDataByMonth(@RequestBody WaterByMonthRequest param) { | 
|---|
|  |  |  | return ApiResponse.success(new WaterByMonthResponse()); | 
|---|
|  |  |  | return ApiResponse.success(platformWaterGasService.waterDataByMonth(param)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | @PreventRepeat | 
|---|
|  |  |  | @ApiOperation("【用水量】近12个月用水量信息列表") | 
|---|
|  |  |  | @PostMapping("/water/lastMonthsDataList") | 
|---|
|  |  |  | public ApiResponse<List<PlatformLastMonthListResponse>> lastMonthsWaterList() { | 
|---|
|  |  |  | return ApiResponse.success(platformWaterGasService.getPlatformLastMonthListResponse(Constants.ZERO)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | @PreventRepeat | 
|---|
|  |  |  | @ApiOperation("【用气量】本月、上月和去年同月") | 
|---|
|  |  |  | @PostMapping("/gas/dataByMonth") | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | public ApiResponse<GasByMonthResponse> gasDataByMonth(@RequestBody GasByMonthRequest param) { | 
|---|
|  |  |  | return ApiResponse.success(new GasByMonthResponse()); | 
|---|
|  |  |  | return ApiResponse.success(platformWaterGasService.gasDataByMonth(param)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | @PreventRepeat | 
|---|
|  |  |  | @ApiOperation("【用气量】近12个月用气量信息列表") | 
|---|
|  |  |  | @PostMapping("/gas/lastMonthsDataList") | 
|---|
|  |  |  | public ApiResponse<List<PlatformLastMonthListResponse>> lastMonthsGasList () { | 
|---|
|  |  |  | return ApiResponse.success(platformWaterGasService.getPlatformLastMonthListResponse(Constants.ONE)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | @PreventRepeat | 
|---|
|  |  |  | @ApiOperation("【月台】按天统计运单请求参数") | 
|---|
|  |  |  | @PostMapping("/platform/orderNumByDate") | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | public ApiResponse<PlatformOrderNumByDateResponse> orderNumByDate(@RequestBody PlatformOrderNumByDateRequest param) { | 
|---|
|  |  |  | return ApiResponse.success(new PlatformOrderNumByDateResponse()); | 
|---|
|  |  |  | return ApiResponse.success(platformJobService.orderNumByDate(param)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | @PreventRepeat | 
|---|
|  |  |  | @ApiOperation("【月台】月台个状态数量统计") | 
|---|
|  |  |  | @PostMapping("/platform/totalNumByStatus") | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | @PreventRepeat | 
|---|
|  |  |  | @ApiOperation("【月台】月台状态数量统计") | 
|---|
|  |  |  | @PostMapping("/platform/totalNumByStatus") | 
|---|
|  |  |  | public ApiResponse<PlatformNumByStatusResponse> totalNumByStatus(@RequestBody PlatformNumByStatusRequest param) { | 
|---|
|  |  |  | return ApiResponse.success(new PlatformNumByStatusResponse()); | 
|---|
|  |  |  | return ApiResponse.success(platformService.getPlatformNumByStatusResponse()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | @PreventRepeat | 
|---|
|  |  |  | @ApiOperation("【月台】月台当前作业信息列表") | 
|---|
|  |  |  | @PostMapping("/platform/workingDataList") | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | public ApiResponse<List<PlatformDataListResponse>> platformWorkingDataList(@RequestBody PlatformDataListRequest param) { | 
|---|
|  |  |  | return ApiResponse.success(new ArrayList<>()); | 
|---|
|  |  |  | public ApiResponse<List<PlatformDataListResponse>> workingDataList(@RequestBody PlatformDataListRequest param) { | 
|---|
|  |  |  | return ApiResponse.success(platformJobService.platformWorkingDataList(param)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | @PreventRepeat | 
|---|
|  |  |  | @ApiOperation("【月台】月台作业详情信息") | 
|---|
|  |  |  | @PostMapping("/platform/workDataInfo") | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | public ApiResponse<PlatformDataInfoResponse> platformWorkingDataList(@RequestBody PlatformDataInfoRequest param) { | 
|---|
|  |  |  | return ApiResponse.success(new PlatformDataInfoResponse()); | 
|---|
|  |  |  | public ApiResponse<PlatformDataInfoResponse> workDataInfo(@RequestBody PlatformDataInfoRequest param) { | 
|---|
|  |  |  | return ApiResponse.success(platformJobService.platformWorkingDataList(param)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | @PreventRepeat | 
|---|
|  |  |  | @ApiOperation("【月台】当前车辆状态数量统计") | 
|---|
|  |  |  | @PostMapping("/platform/carStatusNum") | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | public ApiResponse<CarNumByStatusResponse> carStatusNum(@RequestBody CarNumByStatusRequest param) { | 
|---|
|  |  |  | return ApiResponse.success(new CarNumByStatusResponse()); | 
|---|
|  |  |  | return ApiResponse.success(platformJobService.carStatusNum(param)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | @PreventRepeat | 
|---|
|  |  |  | @ApiOperation("【月台】车辆事件列表数据集合(最新N条)") | 
|---|
|  |  |  | @PostMapping("/platform/carLogsList") | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | public ApiResponse<List<CarLogsListResponse>> carLogsList(@RequestBody CarLogsListRequest param) { | 
|---|
|  |  |  | return ApiResponse.success(new ArrayList<>()); | 
|---|
|  |  |  | return ApiResponse.success(platformLogService.getCarLogsListResponse(param)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | @PreventRepeat | 
|---|
|  |  |  | @ApiOperation("【月台】排队队列列表集合") | 
|---|
|  |  |  | @PostMapping("/platform/queueList") | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | public ApiResponse< PlatformQueuingListResponse> carLogsList(@RequestBody PlatformQueuingListRequest param) { | 
|---|
|  |  |  | return ApiResponse.success(new PlatformQueuingListResponse()); | 
|---|
|  |  |  | 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(platformWarnEventService.findListToHk()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @LoginNoRequired | 
|---|
|  |  |  | public ApiResponse<List<CarLogsListResponse>> carLogsList(@RequestBody PlatformWarnEventListRequest param) { | 
|---|
|  |  |  | return ApiResponse.success(new ArrayList<>()); | 
|---|
|  |  |  | @PreventRepeat | 
|---|
|  |  |  | @ApiOperation("【月台】月台状态") | 
|---|
|  |  |  | @PostMapping("/platform/getStatusList") | 
|---|
|  |  |  | public ApiResponse<List<PlatformStatusListResponse>> getStatusList() { | 
|---|
|  |  |  | return ApiResponse.success(platformService.getPlatformStatusList()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|