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