个人桩停止充电

This commit is contained in:
Guoqs
2024-07-26 10:52:40 +08:00
parent 44d276fbf4
commit ab5c4e9dc2
4 changed files with 78 additions and 37 deletions

View File

@@ -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")

View File

@@ -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";

View File

@@ -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<PileMemberRelation> selectPileMemberRelationByPileSn(String pileSn) {
if (StringUtils.isBlank(pileSn)) {
return Lists.newArrayList();
}
PileMemberRelation pileMemberRelation = new PileMemberRelation();
pileMemberRelation.setPileSn(pileSn);
return selectPileMemberRelationList(pileMemberRelation);
}
}

View File

@@ -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<PileMemberRelation> pileMemberRelations = pileMemberRelationService.selectPileMemberRelationByPileSn(pileSn);
Map<String, List<String>> listMap = pileMemberRelations.stream()
.collect(Collectors.groupingBy(PileMemberRelation::getType, Collectors.mapping(PileMemberRelation::getMemberId, Collectors.toList())));
log.info("个人桩:{}, 使用者信息:{}", pileConnectorCode, JSON.toJSONString(listMap));
// 发送请求的用户有没有权限停止充电
boolean stopFlag = false;
List<String> pileManager = listMap.get("1");
List<String> 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