From ed7ed05b6881797623767c7d49859a34cd267123 Mon Sep 17 00:00:00 2001 From: Lemon Date: Tue, 3 Sep 2024 08:47:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E8=BF=90=E8=90=A5?= =?UTF-8?q?=E7=AB=AF=E5=B0=8F=E7=A8=8B=E5=BA=8F=E6=90=9C=E7=B4=A2=E6=9E=AA?= =?UTF-8?q?=E5=8F=A3=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/运营小程序接口文档.md | 27 ++++++----- .../BusinessConnectorInfoController.java | 22 ++++++++- .../dto/business/QueryConnectorInfoDTO.java | 5 +++ .../pile/mapper/PileConnectorInfoMapper.java | 8 ++++ .../service/PileConnectorInfoService.java | 14 ++++++ .../impl/PileConnectorInfoServiceImpl.java | 45 ++++++++++++++++++- .../mapper/pile/PileConnectorInfoMapper.xml | 16 +++++++ .../service/impl/LianLianServiceImpl.java | 7 +-- 8 files changed, 127 insertions(+), 17 deletions(-) diff --git a/doc/运营小程序接口文档.md b/doc/运营小程序接口文档.md index 013559a40..eaa91b6e5 100644 --- a/doc/运营小程序接口文档.md +++ b/doc/运营小程序接口文档.md @@ -232,23 +232,26 @@ # 站点充电实况搜索 -接口地址: +接口地址:http://localhost:8080/business/pile/connector/searchConnectorInfo -请求方式: +请求方式:POST -入参 +### 入参 -| 字段名 | 类型 | 是否必传 | 备注 | -| ------ | ---- | -------- | ---------- | -| | | Y | 充电枪编号 | +| 字段名 | 类型 | 是否必传 | 备注 | +| ----------------- | ------ | -------- | ---------- | +| stationId | String | Y | 站点id | +| pileConnectorCode | String | Y | 充电枪编号 | -反参 +### 反参 -| 字段名 | 类型 | 是否必传 | 备注 | -| ------ | ---- | -------- | ------------ | -| | | Y | 充电枪编号 | -| | | Y | 当前状态 | -| | | Y | 当前状态时长 | +| 字段名 | 类型 | 是否必传 | 备注 | +| ----------------- | ------ | -------- | ---------- | +| pileConnectorCode | String | Y | 充电枪编号 | +| orderCode | String | N | 订单编号 | +| SOC | String | N | 充电百分比 | +| chargingTime | String | N | 已充时长 | +| timeRemaining | String | N | 剩余时长 | # 充电枪情况 diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessConnectorInfoController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessConnectorInfoController.java index 421c687a6..4a9c627d4 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessConnectorInfoController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/business/BusinessConnectorInfoController.java @@ -8,6 +8,7 @@ import com.jsowell.pile.dto.business.QueryConnectorInfoDTO; import com.jsowell.pile.service.PileConnectorInfoService; import com.jsowell.pile.vo.uniapp.business.BusinessConnectorInfoVO; import com.jsowell.pile.vo.uniapp.business.StationStatisticsInfosVO; +import com.jsowell.pile.vo.web.PileConnectorInfoVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -39,7 +40,7 @@ public class BusinessConnectorInfoController extends BaseController { RestApiResponse response = null; try { BusinessConnectorInfoVO connectorInfoVO = pileConnectorInfoService.getConnectorListByStationAndStatus(dto); - response = new RestApiResponse<>(ImmutableMap.of("ConnectorInfoVO", connectorInfoVO)); + response = new RestApiResponse<>(ImmutableMap.of("BusinessConnectorInfoVO", connectorInfoVO)); } catch (Exception e) { logger.error("获取枪口信息列表 error", e); response = new RestApiResponse<>(e); @@ -47,4 +48,23 @@ public class BusinessConnectorInfoController extends BaseController { logger.info("获取枪口信息列表 params:{}, result:{}", JSONObject.toJSONString(dto), response); return response; } + + /** + * 搜索枪口信息接口 + * @param dto + * @return + */ + @PostMapping("/searchConnectorInfo") + public RestApiResponse BusinessSearchConnectorInfo(@RequestBody QueryConnectorInfoDTO dto) { + RestApiResponse response = null; + try { + PileConnectorInfoVO pileConnectorInfoVO = pileConnectorInfoService.BusinessSearchConnectorInfo(dto); + response = new RestApiResponse<>(ImmutableMap.of("pileConnectorInfoVO", pileConnectorInfoVO)); + } catch (Exception e) { + logger.error("搜索枪口信息接口 error", e); + response = new RestApiResponse<>(e); + } + logger.info("搜索枪口信息接口 params:{}, result:{}", JSONObject.toJSONString(dto), response); + return response; + } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/business/QueryConnectorInfoDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/business/QueryConnectorInfoDTO.java index 755f145fd..0221487c8 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/business/QueryConnectorInfoDTO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/business/QueryConnectorInfoDTO.java @@ -35,4 +35,9 @@ public class QueryConnectorInfoDTO { * 每页条数 */ private int pageSize; + + /** + * 枪口编号 + */ + private String pileConnectorCode; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileConnectorInfoMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileConnectorInfoMapper.java index 361e6a26d..425f3d77d 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileConnectorInfoMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/PileConnectorInfoMapper.java @@ -2,6 +2,7 @@ package com.jsowell.pile.mapper; import com.jsowell.pile.domain.PileConnectorInfo; import com.jsowell.pile.dto.QueryConnectorDTO; +import com.jsowell.pile.dto.business.QueryConnectorInfoDTO; import com.jsowell.pile.vo.base.ConnectorInfoVO; import com.jsowell.pile.vo.web.PileConnectorInfoVO; import org.apache.ibatis.annotations.Param; @@ -120,4 +121,11 @@ public interface PileConnectorInfoMapper { * @return */ List getConnectorStatus(@Param("pileConnectorCodeList") List pileConnectorCodeList); + + /** + * 通过查询参数查询枪口信息 + * @param dto + * @return + */ + PileConnectorInfoVO getConnectorInfoByParams(@Param("dto") QueryConnectorInfoDTO dto); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileConnectorInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileConnectorInfoService.java index d89f6d1ca..8d8d5d7c0 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileConnectorInfoService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileConnectorInfoService.java @@ -143,4 +143,18 @@ public interface PileConnectorInfoService { * 通过站点id和枪口状态查询枪口列表 */ BusinessConnectorInfoVO getConnectorListByStationAndStatus(QueryConnectorInfoDTO dto); + + /** + * 通过查询参数查询枪口信息 + * @param dto + * @return + */ + PileConnectorInfoVO getConnectorInfoByParams(QueryConnectorInfoDTO dto); + + /** + * 运营端小程序搜索枪口信息接口 + * @param dto + * @return + */ + public PileConnectorInfoVO BusinessSearchConnectorInfo(QueryConnectorInfoDTO dto); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileConnectorInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileConnectorInfoServiceImpl.java index 998cc70de..716dfe765 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileConnectorInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileConnectorInfoServiceImpl.java @@ -865,8 +865,51 @@ public class PileConnectorInfoServiceImpl implements PileConnectorInfoService { .filter(x -> x.getStatus() == Integer.parseInt(connectorStatus)) .collect(Collectors.toList()); } - vo.setPileConnectorInfoVOList(pileConnectorInfoVOList); return vo; } + + /** + * 通过查询参数查询枪口信息 + * @param dto + * @return + */ + @Override + public PileConnectorInfoVO getConnectorInfoByParams(QueryConnectorInfoDTO dto) { + + return pileConnectorInfoMapper.getConnectorInfoByParams(dto); + } + + /** + * 运营端小程序搜索枪口信息接口 + * @param dto + * @return + */ + @Override + public PileConnectorInfoVO BusinessSearchConnectorInfo(QueryConnectorInfoDTO dto) { + PileConnectorInfoVO vo = new PileConnectorInfoVO(); + String stationId = dto.getStationId(); + String pileConnectorCode = dto.getPileConnectorCode(); + vo.setStationId(stationId); + vo.setPileConnectorCode(pileConnectorCode); + // 通过站点id和枪口号查询枪口信息 + QueryConnectorInfoDTO queryDTO = QueryConnectorInfoDTO.builder() + .stationId(stationId) + .pileConnectorCode(pileConnectorCode) + .build(); + PileConnectorInfoVO connectorInfoVO = getConnectorInfoByParams(queryDTO); + if (connectorInfoVO == null) { + return vo; + } + // 如果状态为充电中,将SOC、已充时长、剩余时长返回 + if (StringUtils.equals(String.valueOf(connectorInfoVO.getStatus()), PileConnectorDataBaseStatusEnum.OCCUPIED_CHARGING.getValue())) { + // 当枪口状态为充电中时,再去查询实时数据等信息 + OrderBasicInfo order = orderBasicInfoService.queryChargingByPileConnectorCode(pileConnectorCode); + if (order != null) { + vo.setOrderCode(order.getOrderCode()); + } + queryRealTimeData(Lists.newArrayList(vo)); + } + return vo; + } } diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileConnectorInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileConnectorInfoMapper.xml index 2738e1b51..7da0544b0 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/PileConnectorInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/PileConnectorInfoMapper.xml @@ -257,4 +257,20 @@ #{pileConnectorCode,jdbcType=VARCHAR} + + \ No newline at end of file diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java index 1e5b0aa89..9d41b17e4 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/lianlian/service/impl/LianLianServiceImpl.java @@ -252,10 +252,11 @@ public class LianLianServiceImpl implements LianLianService { public static void main(String[] args) throws UnsupportedEncodingException { - String dataSecret = "9JttBXhmrmmGWwi4"; // SPBNJ1Z5EQNmpK08 VTAEKDPVN9CUS7WO huawei: zd4NrLWJ38XCTaqP E6gnWuz0QzBW75CR 正式:NHsBDtTanA60vTIu pJahbxk8wG79CMDB - String dataSecretIV = "9NCXVbujUCveCkGu"; // peRoTcb2C7zqKeII 83UZFFRRZDYNF5CR huawei: RJJecvNTJ48SGMG7 SXejaSUx5yud8UHm 正式:2uyE2Cgu4nVf6egc y259VRq7h8RyFXmT + String dataSecret = "vj3RWNsWIxT5MC2K"; // SPBNJ1Z5EQNmpK08 VTAEKDPVN9CUS7WO huawei: zd4NrLWJ38XCTaqP E6gnWuz0QzBW75CR 正式:NHsBDtTanA60vTIu pJahbxk8wG79CMDB + String dataSecretIV = "jjkySnGlM3pbOUki"; // peRoTcb2C7zqKeII 83UZFFRRZDYNF5CR huawei: RJJecvNTJ48SGMG7 SXejaSUx5yud8UHm 正式:2uyE2Cgu4nVf6egc y259VRq7h8RyFXmT String signSecret = "sRjCDeokckFGpYpA"; // sRjCDeokckFGpYpA - String dataString = "Pi/OEE08aBpwYAMkbF46Kkj5MOvkm2tE7YjPFKPVOlDy+C5sfYwuUiXjASPMR2qEgPTa/W6w5qGf+a5UASebzc1sA+g5fJdepbGhj5T6Ni6uG6djrAdAnUCsMv2lDV4j8K+HhZapLoc1tr7Uo+8zuqP5p7HLFn8fg5AVJbKl0ZTd1EklLA53auoLMM8rDsbF1KpJzhlrZY/eG/NqcV4JWQV7F1drlIoE2ZTLbrvZbMum8LtkWu4Pk52Kn8v5NAy9GcmPLY3AH0LIajjAJRGXG5WltCGM9Hkfb8hAo83qrxRnSrJThEbfs85aI/0rbZzF7EMTRdOanIKHXpms9+hYwQ1hyIlkibdCmd4GQW6wnymko7rpVzOUjNU94iWa/RTEkhvWKGccOy5g435d90GfeOjBrmQ6hHWl2pnAESKqcVKArPXziQTafPtYsdVkm4IHihuARzCOiyKYgKXwNz5ebCO9Kfu37Sx9iCPIG2MwFkubVASElBceIwJqsQHWB8iO0sJ/etXuwaxngTCcNgR+vCGyVD13tcWgwn6EBXmAIpU="; + String dataString = "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"; // 解密data byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(dataString), dataSecret.getBytes(), dataSecretIV.getBytes());