From ab5c4e9dc2deec7b4b2d43c32919b84ddfb96b9a Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Fri, 26 Jul 2024 10:52:40 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E6=A1=A9=E5=81=9C=E6=AD=A2?= =?UTF-8?q?=E5=85=85=E7=94=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../uniapp/customer/PersonPileController.java | 65 ++++++++++--------- .../test/java/SpringBootTestController.java | 11 ++++ .../impl/PileMemberRelationServiceImpl.java | 6 +- .../impl/PileReservationInfoServiceImpl.java | 33 ++++++++-- 4 files changed, 78 insertions(+), 37 deletions(-) diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/PersonPileController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/PersonPileController.java index eaa25ec0b..af483b600 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/PersonPileController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/customer/PersonPileController.java @@ -140,36 +140,7 @@ public class PersonPileController extends BaseController { return response; } - /** - * 个人桩停止充电 - * http://localhost:8080/uniapp/personalPile/personPileStopCharging - * 管理员可以停自己启动的和别人启动的 - * 其他人员只能停止自己启动的 - */ - @PostMapping("/personPileStopCharging") - public RestApiResponse personPileStopCharging(HttpServletRequest request, PersonPileStopChargingDTO dto) { - RestApiResponse response = null; - try { - String appId = request.getHeader("appId"); - if (StringUtils.isNotBlank(appId)) { - String firstLevelMerchantId = pileMerchantInfoService.getFirstLevelMerchantIdByWxAppId(appId); - if (StringUtils.isNotBlank(firstLevelMerchantId)) { - dto.setFirstLevelMerchantId(firstLevelMerchantId); - } - } - String memberId = getMemberIdByAuthorization(request); - dto.setMemberId(memberId); - pileReservationInfoService.personPileStopCharging(dto); - response = new RestApiResponse<>(); - } catch (BusinessException e) { - logger.error("个人桩停止充电error", e); - response = new RestApiResponse<>(e.getCode(), e.getMessage()); - } catch (Exception e) { - logger.error("个人桩停止充电error", e); - response = new RestApiResponse<>(ReturnCodeEnum.CODE_PERSON_PILE_STOP_CHARGING_ERROR); - } - return response; - } + /** @@ -310,6 +281,38 @@ public class PersonPileController extends BaseController { } + /** + * 个人桩停止充电 + * http://localhost:8080/uniapp/personalPile/personPileStopCharging + * 管理员可以停自己启动的和别人启动的 + * 其他人员只能停止自己启动的 + */ + @PostMapping("/personPileStopCharging") + public RestApiResponse personPileStopCharging(HttpServletRequest request, PersonPileStopChargingDTO dto) { + RestApiResponse response = null; + try { + String appId = request.getHeader("appId"); + if (StringUtils.isNotBlank(appId)) { + String firstLevelMerchantId = pileMerchantInfoService.getFirstLevelMerchantIdByWxAppId(appId); + if (StringUtils.isNotBlank(firstLevelMerchantId)) { + dto.setFirstLevelMerchantId(firstLevelMerchantId); + } + } + String memberId = getMemberIdByAuthorization(request); + dto.setMemberId(memberId); + pileReservationInfoService.personPileStopCharging(dto); + response = new RestApiResponse<>(); + } catch (BusinessException e) { + logger.error("个人桩停止充电error", e); + response = new RestApiResponse<>(e.getCode(), e.getMessage()); + } catch (Exception e) { + logger.error("个人桩停止充电error", e); + response = new RestApiResponse<>(ReturnCodeEnum.CODE_PERSON_PILE_STOP_CHARGING_ERROR); + } + return response; + } + + /** * 添加预约充电 * http://localhost:8080/uniapp/personalPile/createReserved @@ -431,7 +434,7 @@ public class PersonPileController extends BaseController { } /** - * 根据充电桩查询预约状态 + * 根据充电桩查询预约信息 * http://localhost:8080/uniapp/personalPile/queryReservationInfo */ @PostMapping("/queryReservationInfo") diff --git a/jsowell-admin/src/test/java/SpringBootTestController.java b/jsowell-admin/src/test/java/SpringBootTestController.java index 7885257f1..71a3f4076 100644 --- a/jsowell-admin/src/test/java/SpringBootTestController.java +++ b/jsowell-admin/src/test/java/SpringBootTestController.java @@ -260,6 +260,17 @@ public class SpringBootTestController { @Autowired private PileReservationInfoService pileReservationInfoService; + @Test + public void personPileStopChargingTest() { + String memberId = "84085683"; + String pileConnectorCode = "8823000000141001"; + PersonPileStopChargingDTO dto = PersonPileStopChargingDTO.builder() + .memberId(memberId) + .pileConnectorCode(pileConnectorCode) + .build(); + pileReservationInfoService.personPileStopCharging(dto); + } + @Test public void selectMemberPlateNumberRelationTest() { String memberId = "25950857"; diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMemberRelationServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMemberRelationServiceImpl.java index acee2f8a0..33f709e77 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMemberRelationServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMemberRelationServiceImpl.java @@ -1,6 +1,8 @@ package com.jsowell.pile.service.impl; +import com.google.common.collect.Lists; import com.jsowell.common.util.DateUtils; +import com.jsowell.common.util.StringUtils; import com.jsowell.pile.domain.PileMemberRelation; import com.jsowell.pile.mapper.PileMemberRelationMapper; import com.jsowell.pile.service.PileConnectorInfoService; @@ -108,10 +110,12 @@ public class PileMemberRelationServiceImpl implements PileMemberRelationService @Override public List selectPileMemberRelationByPileSn(String pileSn) { + if (StringUtils.isBlank(pileSn)) { + return Lists.newArrayList(); + } PileMemberRelation pileMemberRelation = new PileMemberRelation(); pileMemberRelation.setPileSn(pileSn); return selectPileMemberRelationList(pileMemberRelation); } - } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java index 1a8445688..03b598a56 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileReservationInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.jsowell.pile.service.impl; +import com.alibaba.fastjson2.JSON; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.google.common.collect.Lists; @@ -10,14 +11,13 @@ import com.jsowell.common.enums.ykc.ReturnCodeEnum; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.StringUtils; +import com.jsowell.pile.domain.PileMemberRelation; import com.jsowell.pile.domain.ykcCommond.ReservationChargingCommand; import com.jsowell.pile.dto.CreateReservedDTO; import com.jsowell.pile.dto.PersonPileStopChargingDTO; import com.jsowell.pile.dto.PileReservationDTO; import com.jsowell.pile.dto.StartPersonPileDTO; -import com.jsowell.pile.service.MemberPlateNumberRelationService; -import com.jsowell.pile.service.PileBasicInfoService; -import com.jsowell.pile.service.PileRemoteService; +import com.jsowell.pile.service.*; import com.jsowell.pile.vo.PileReservationInfoVO; import com.jsowell.pile.vo.uniapp.customer.MemberPlateNumberVO; import lombok.extern.slf4j.Slf4j; @@ -31,11 +31,12 @@ import java.sql.Time; import java.time.LocalDateTime; import java.time.LocalTime; import java.util.List; +import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; import com.jsowell.pile.mapper.PileReservationInfoMapper; import com.jsowell.pile.domain.PileReservationInfo; -import com.jsowell.pile.service.PileReservationInfoService; @Slf4j @Service @@ -53,6 +54,9 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic @Autowired private MemberPlateNumberRelationService memberPlateNumberRelationService; + @Autowired + private PileMemberRelationService pileMemberRelationService; + @Override public int deleteByPrimaryKey(Integer id) { return pileReservationInfoMapper.deleteByPrimaryKey(id); @@ -425,11 +429,30 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic */ @Override public void personPileStopCharging(PersonPileStopChargingDTO dto) { + String pileConnectorCode = dto.getPileConnectorCode(); + String pileSn = StringUtils.substring(pileConnectorCode, 0, pileConnectorCode.length() - 2); // 查询个人桩信息 - + List pileMemberRelations = pileMemberRelationService.selectPileMemberRelationByPileSn(pileSn); + Map> listMap = pileMemberRelations.stream() + .collect(Collectors.groupingBy(PileMemberRelation::getType, Collectors.mapping(PileMemberRelation::getMemberId, Collectors.toList()))); + log.info("个人桩:{}, 使用者信息:{}", pileConnectorCode, JSON.toJSONString(listMap)); // 发送请求的用户有没有权限停止充电 + boolean stopFlag = false; + List pileManager = listMap.get("1"); + List pileUsers = listMap.get("2"); + if (CollectionUtils.isNotEmpty(pileManager) && CollectionUtils.containsAny(pileManager, dto.getMemberId())) { + log.info("memberId:() 为管理员"); + stopFlag = true; + } + if (CollectionUtils.isNotEmpty(pileUsers) && CollectionUtils.containsAny(pileUsers, dto.getMemberId())) { + log.info("memberId:() 为用户"); + stopFlag = true; + } + if (stopFlag) { + log.info("发送停止指令"); + } } @Override