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 9a19fb2c1..7ceba6b3d 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/PileService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/PileService.java @@ -488,40 +488,49 @@ public class PileService { // 为空说明此用户未注册平台账号 throw new BusinessException(ReturnCodeEnum.CODE_USER_IS_NOT_REGISTER); } + // 被分享的用户memberId + String memberId = memberBasicInfo.getMemberId(); List relationList = pileMemberRelationService.selectPileMemberRelationByPileSn(dto.getPileSn()); if (CollectionUtils.isEmpty(relationList)) { // 充电桩没有绑定任何人 + throw new BusinessException(ReturnCodeEnum.CODE_NO_ADMIN_FOR_PILE); } - List adminList = relationList.stream() - .filter(x -> x.getType().equals(Constants.ONE)) // 1-管理员用户 + // 使用stream把relationList转为map, key为type, value为List + Map> map = relationList.stream().collect(Collectors.groupingBy(PileMemberRelation::getType)); + List adminMemberRelationList = map.get(Constants.ONE); // 管理员列表 + List userMemberRelations = map.get(Constants.TWO); // 普通用户列表 + if (CollectionUtils.isEmpty(adminMemberRelationList)) { + // 充电桩没有管理员 + throw new BusinessException(ReturnCodeEnum.CODE_NO_ADMIN_FOR_PILE); + } + List 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 userList = relationList.stream() - .filter(x -> !x.getType().equals(Constants.TWO)) // 2-普通用户 + List 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); } } diff --git a/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/ReturnCodeEnum.java b/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/ReturnCodeEnum.java index b87c20e78..e09c83d96 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/ReturnCodeEnum.java +++ b/jsowell-common/src/main/java/com/jsowell/common/enums/ykc/ReturnCodeEnum.java @@ -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", "当前车牌号已经绑定,请检查!"), diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMemberRelationServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMemberRelationServiceImpl.java index fd19f794e..7e30ed359 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMemberRelationServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMemberRelationServiceImpl.java @@ -116,6 +116,7 @@ public class PileMemberRelationServiceImpl implements PileMemberRelationService return selectPileMemberRelationList(pileMemberRelation); } + @Override public List selectMemberList(String pileSn) { return pileMemberRelationMapper.selectMemberList(pileSn); }