mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 02:55:04 +08:00
蓝牙桩分享
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -187,6 +187,14 @@ public enum ReturnCodeEnum {
|
||||
|
||||
CODE_START_PERSONAL_PILE_CHARGING_ERROR("00400020", "个人桩启动充电异常"),
|
||||
|
||||
CODE_PILE_MEMBER_RELATION_IS_EMPTY("00400021", "个人桩绑定列表为空"),
|
||||
|
||||
CODE_NO_ADMIN_FOR_PILE("00400022", "充电桩未设置管理员"),
|
||||
|
||||
CODE_ALREADY_AN_ADMIN("00400023", "您已经是此充电桩管理员, 无需再次绑定"),
|
||||
|
||||
CODE_ALREADY_AN_USER("00400024", "您已经是此充电桩用户, 无需再次绑定"),
|
||||
|
||||
/* 个人桩 end */
|
||||
|
||||
CODE_THIS_CARNO_HAS_BEEN_BINDING("00500001", "当前车牌号已经绑定,请检查!"),
|
||||
|
||||
@@ -116,6 +116,7 @@ public class PileMemberRelationServiceImpl implements PileMemberRelationService
|
||||
return selectPileMemberRelationList(pileMemberRelation);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MemberVO> selectMemberList(String pileSn) {
|
||||
return pileMemberRelationMapper.selectMemberList(pileSn);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user