From f4feca4207d9a00d3b93fd8897282e3c212eca4c Mon Sep 17 00:00:00 2001
From: Guoqs <123@jsowell.com>
Date: Tue, 5 Nov 2024 14:29:30 +0800
Subject: [PATCH] =?UTF-8?q?=E7=BB=91=E5=AE=9A=E8=93=9D=E7=89=99=E6=A1=A9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../uniapp/customer/PersonPileController.java | 31 +++++++++++++++--
.../java/com/jsowell/service/PileService.java | 33 ++++++++++++++++++-
.../pile/domain/PileMemberRelation.java | 10 ++++++
.../pile/dto/PileMemberBindingDTO.java | 10 ++++++
.../impl/PileBasicInfoServiceImpl.java | 25 +++++++-------
.../uniapp/customer/PersonalPileInfoVO.java | 10 ++++++
.../mapper/pile/PileBasicInfoMapper.xml | 2 ++
.../mapper/pile/PileMemberRelationMapper.xml | 12 +++++--
8 files changed, 115 insertions(+), 18 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 8cde783a0..5b7439391 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
@@ -77,6 +77,34 @@ public class PersonPileController extends BaseController {
return response;
}
+ /**
+ * 绑定个人桩信息(蓝牙)
+ *
+ * http://localhost:8080/uniapp/personalPile/pileMemberBindingForBT
+ *
+ * @param dto
+ * @return
+ */
+ @RequestMapping("/pileMemberBindingForBT")
+ public RestApiResponse> pileMemberBindingForBT(HttpServletRequest request, @RequestBody PileMemberBindingDTO dto) {
+ logger.info("绑定个人桩信息(蓝牙) params:{}", JSON.toJSONString(dto));
+ RestApiResponse> response = null;
+ try {
+ String memberId = getMemberIdByAuthorization(request);
+ dto.setMemberId(memberId);
+ int i = pileService.pileMemberBindingForBT(dto);
+ response = new RestApiResponse<>(i);
+ } catch (BusinessException e) {
+ logger.error("绑定个人桩信息(蓝牙) error,", e);
+ response = new RestApiResponse<>(e.getCode(), e.getMessage());
+ } catch (Exception exception) {
+ logger.error("绑定个人桩信息(蓝牙) error,", exception);
+ response = new RestApiResponse<>(ReturnCodeEnum.CODE_BINDING_PERSONAL_PILE_ERROR);
+ }
+ logger.info("绑定个人桩信息(蓝牙) result:{}", response);
+ return response;
+ }
+
/**
* 用户解绑个人桩
* http://localhost:8080/uniapp/personalPile/userUnbindPile
@@ -140,9 +168,6 @@ public class PersonPileController extends BaseController {
return response;
}
-
-
-
/**
* 通过memberId查个人桩列表
*
diff --git a/jsowell-admin/src/main/java/com/jsowell/service/PileService.java b/jsowell-admin/src/main/java/com/jsowell/service/PileService.java
index bcc7a3081..83d788460 100644
--- a/jsowell-admin/src/main/java/com/jsowell/service/PileService.java
+++ b/jsowell-admin/src/main/java/com/jsowell/service/PileService.java
@@ -412,7 +412,38 @@ public class PileService {
return pileMemberRelationService.insertPileMemberRelation(pileMemberRelation);
}
-
+ /**
+ * 用户绑定个人桩(蓝牙)
+ */
+ public int pileMemberBindingForBT(PileMemberBindingDTO dto) {
+ // 判断桩是否为个人桩
+ PileBasicInfo pileBasicInfo = pileBasicInfoService.selectPileBasicInfoBySN(dto.getPileSn());
+ if (pileBasicInfo == null) {
+ // 未查到则说明没有此桩
+ throw new BusinessException(ReturnCodeEnum.CODE_PILE_NOT_INFO);
+ }
+ String businessType = pileBasicInfo.getBusinessType();
+ if (!StringUtils.equals(BusinessTypeEnum.INDIVIDUAL_PILE.getValue(), businessType)){
+ // 不一致则此桩不是个人桩
+ throw new BusinessException(ReturnCodeEnum.CODE_THIS_PILE_NOT_PERSONAL_PILE);
+ }
+ // 初始化个人桩预约信息
+ pileReservationInfoService.initPersonalPileReservation(dto.getPileSn(), null);
+ // 检查桩是否已经被绑定
+ PileMemberRelation pileMemberRelation = new PileMemberRelation();
+ pileMemberRelation.setPileSn(dto.getPileSn());
+ List list = pileMemberRelationService.selectPileMemberRelationList(pileMemberRelation);
+ if (CollectionUtils.isNotEmpty(list)){
+ // 说明已经被绑定过,抛出异常
+ throw new BusinessException(ReturnCodeEnum.CODE_PILE_HAS_BEEN_BINDING_ERROR);
+ }
+ // 保存绑定关系
+ pileMemberRelation.setMemberId(dto.getMemberId());
+ pileMemberRelation.setType(Constants.ONE); // 1-管理员
+ pileMemberRelation.setDeviceName(dto.getDeviceName());
+ pileMemberRelation.setDeviceId(dto.getDeviceId());
+ return pileMemberRelationService.insertPileMemberRelation(pileMemberRelation);
+ }
/**
* 用户解绑个人桩
* @param dto
diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileMemberRelation.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileMemberRelation.java
index 2bdad4d86..8ca880a12 100644
--- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileMemberRelation.java
+++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileMemberRelation.java
@@ -34,6 +34,16 @@ public class PileMemberRelation extends BaseEntity
@Excel(name = "会员id")
private String memberId;
+ /**
+ * 设备id 蓝牙桩
+ */
+ private String deviceId;
+
+ /**
+ * 设备名称 蓝牙桩
+ */
+ private String deviceName;
+
/** 身份类型(1-管理员,2-用户) */
@Excel(name = "身份类型", readConverterExp = "1=-管理员,2-用户")
private String type;
diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/PileMemberBindingDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/PileMemberBindingDTO.java
index d3a5d1e5a..65adb79ea 100644
--- a/jsowell-pile/src/main/java/com/jsowell/pile/dto/PileMemberBindingDTO.java
+++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/PileMemberBindingDTO.java
@@ -39,4 +39,14 @@ public class PileMemberBindingDTO {
* 一级运营商id
*/
private String firstLevelMerchantId;
+
+ /**
+ * 设备名称
+ */
+ private String deviceName;
+
+ /**
+ * 设备id
+ */
+ private String deviceId;
}
diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java
index 0903a1aad..d6e2d2b19 100644
--- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java
+++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java
@@ -891,24 +891,25 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService {
if(CollectionUtils.isEmpty(list)){
return null;
}
-
for (PersonalPileInfoVO personalPileInfoVO : list) {
String pileSn = personalPileInfoVO.getPileSn();
-
// 获取桩状态
Map pileStatus = pileConnectorInfoService.getPileStatus(Lists.newArrayList(pileSn));
personalPileInfoVO.setPileStatus(pileStatus.get(pileSn));
personalPileInfoVO.setPileStatusDesc(PileStatusEnum.getStatusDesc(pileStatus.get(pileSn)));
- if (StringUtils.equals("1", personalPileInfoVO.getType())) {
- personalPileInfoVO.setType("管理员用户");
- }else {
- personalPileInfoVO.setType("普通用户");
- }
- if (StringUtils.equals("1", personalPileInfoVO.getSpeedType())) {
- personalPileInfoVO.setSpeedType("快充");
- }else {
- personalPileInfoVO.setSpeedType("慢充");
- }
+ // if (StringUtils.equals(Constants.ONE, personalPileInfoVO.getType())) {
+ // personalPileInfoVO.setType("管理员用户");
+ // }else {
+ // personalPileInfoVO.setType("普通用户");
+ // }
+ personalPileInfoVO.setType(StringUtils.equals(Constants.ONE, personalPileInfoVO.getType()) ? "管理员用户" : "普通用户");
+ // if (StringUtils.equals(Constants.ONE, personalPileInfoVO.getSpeedType())) {
+ // personalPileInfoVO.setSpeedType("快充");
+ // }else {
+ // personalPileInfoVO.setSpeedType("慢充");
+ // }
+ personalPileInfoVO.setSpeedType(StringUtils.equals(Constants.ONE, personalPileInfoVO.getSpeedType()) ? "快充" : "慢充");
+ personalPileInfoVO.setConnectionType(StringUtils.isNotBlank(personalPileInfoVO.getDeviceId()) ? "BT" : "4G");
}
return list;
}
diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/PersonalPileInfoVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/PersonalPileInfoVO.java
index 1415ca3cf..04c3d0b46 100644
--- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/PersonalPileInfoVO.java
+++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/PersonalPileInfoVO.java
@@ -64,4 +64,14 @@ public class PersonalPileInfoVO {
* 枪口数量
*/
private String connectorNum;
+
+ private String deviceName;
+
+ private String deviceId;
+
+ /**
+ * 充电桩连接类型
+ * 4G/BT
+ */
+ private String connectionType;
}
\ No newline at end of file
diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileBasicInfoMapper.xml
index ef9b5527c..5d9522364 100644
--- a/jsowell-pile/src/main/resources/mapper/pile/PileBasicInfoMapper.xml
+++ b/jsowell-pile/src/main/resources/mapper/pile/PileBasicInfoMapper.xml
@@ -330,6 +330,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
t1.pile_sn as pileSn,
t1.member_id as memberId,
t1.type,
+ t1.device_name as deviceName,
+ t1.device_id as deviceId,
t3.model_name as modelName,
t3.rated_power as ratedPower,
t3.rated_current as ratedCurrent,
diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileMemberRelationMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileMemberRelationMapper.xml
index 504b4b9b2..bba6d25b5 100644
--- a/jsowell-pile/src/main/resources/mapper/pile/PileMemberRelationMapper.xml
+++ b/jsowell-pile/src/main/resources/mapper/pile/PileMemberRelationMapper.xml
@@ -8,16 +8,20 @@
+
+
- select id, pile_sn, member_id, type, create_time from pile_member_relation
+ select
+
+ from pile_member_relation
- id, pile_sn, member_id, type, create_time
+ id, pile_sn, member_id, device_name, device_id, type, create_time