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..bd39fc4dc 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 @@ -90,6 +118,9 @@ public class PersonPileController extends BaseController { try { String memberId = getMemberIdByAuthorization(request); dto.setMemberId(memberId); + if (StringUtils.isBlank(dto.getPileSn())) { + throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR); + } int i = pileService.userUnbindPile(dto); response = new RestApiResponse<>(i); } catch (BusinessException e) { @@ -140,9 +171,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 2287b319a..a28d6ebc6 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/service/impl/PileConnectorInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileConnectorInfoServiceImpl.java index 0ffbbf90f..22243f7a3 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 @@ -181,7 +181,7 @@ public class PileConnectorInfoServiceImpl implements PileConnectorInfoService { List noCachePileSnList = pileSnList.stream() .filter(pileSn -> !collect.containsKey(pileSn)) .collect(Collectors.toList()); - + // TODO 未从缓存获取到的去数据库查询并放缓存 return resultMap; } 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