蓝牙桩分享

This commit is contained in:
Guoqs
2024-12-12 14:31:35 +08:00
parent d90ece633f
commit 4a608eb3ca
3 changed files with 34 additions and 16 deletions

View File

@@ -488,40 +488,49 @@ public class PileService {
// 为空说明此用户未注册平台账号
throw new BusinessException(ReturnCodeEnum.CODE_USER_IS_NOT_REGISTER);
}
// 被分享的用户memberId
String memberId = memberBasicInfo.getMemberId();
List<PileMemberRelation> relationList = pileMemberRelationService.selectPileMemberRelationByPileSn(dto.getPileSn());
if (CollectionUtils.isEmpty(relationList)) {
// 充电桩没有绑定任何人
throw new BusinessException(ReturnCodeEnum.CODE_NO_ADMIN_FOR_PILE);
}
List<String> adminList = relationList.stream()
.filter(x -> x.getType().equals(Constants.ONE)) // 1-管理员用户
// 使用stream把relationList转为map, key为type, value为List<PileMemberRelation>
Map<String, List<PileMemberRelation>> map = relationList.stream().collect(Collectors.groupingBy(PileMemberRelation::getType));
List<PileMemberRelation> adminMemberRelationList = map.get(Constants.ONE); // 管理员列表
List<PileMemberRelation> userMemberRelations = map.get(Constants.TWO); // 普通用户列表
if (CollectionUtils.isEmpty(adminMemberRelationList)) {
// 充电桩没有管理员
throw new BusinessException(ReturnCodeEnum.CODE_NO_ADMIN_FOR_PILE);
}
List<String> adminList = adminMemberRelationList.stream()
.map(PileMemberRelation::getMemberId)
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(adminList)) {
// 没有管理员
}
// 校验身份
if (adminList.contains(dto.getMemberId())) {
// 校验身份 入参是否是管理员
if (adminList.contains(memberId)) {
// 如果不为空,说明被分享的用户是管理员,抛出异常
throw new BusinessException(ReturnCodeEnum.CODE_AUTHENTICATION_ERROR);
throw new BusinessException(ReturnCodeEnum.CODE_ALREADY_AN_ADMIN);
}
List<String> userList = relationList.stream()
.filter(x -> !x.getType().equals(Constants.TWO)) // 2-普通用户
List<String> userList = userMemberRelations.stream()
.map(PileMemberRelation::getMemberId)
.collect(Collectors.toList());
if (userList.contains(memberBasicInfo.getMemberId())) {
// 校验身份 入参是否是普通用户
if (userList.contains(memberId)) {
// 不为空说明已绑定
throw new BusinessException(ReturnCodeEnum.CODE_USER_HAS_BEEN_THIS_PILE);
throw new BusinessException(ReturnCodeEnum.CODE_ALREADY_AN_USER);
} else {
PileMemberRelation pileMemberRelation = adminMemberRelationList.get(0); // 获取管理员列表的第一个元素
// 进行绑定,此用户为普通用户
PileMemberRelation info = new PileMemberRelation();
info.setPileSn(dto.getPileSn());
info.setMemberId(memberBasicInfo.getMemberId());
info.setMemberId(memberId);
info.setType(Constants.TWO);
if (pileMemberRelation != null && StringUtils.isNotBlank(pileMemberRelation.getDeviceId())) {
info.setDeviceId(pileMemberRelation.getDeviceId());
info.setDeviceName(pileMemberRelation.getDeviceName());
}
pileMemberRelationService.insertPileMemberRelation(info);
}
}