diff --git a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysUserServiceImpl.java b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysUserServiceImpl.java index 4cbd7a4..621ad34 100644 --- a/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysUserServiceImpl.java +++ b/bonus-modules/bonus-system/src/main/java/com/bonus/system/service/impl/SysUserServiceImpl.java @@ -38,10 +38,7 @@ import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import javax.validation.Validator; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; /** @@ -609,6 +606,9 @@ public class SysUserServiceImpl implements ISysUserService { if (StringUtils.isNull(userList) || userList.size() == 0) { throw new ServiceException("导入用户数据不能为空!"); } + if (hasDuplicatePhonenumbers(userList)) { + throw new ServiceException("导入用户数据存在相同的手机号!"); + } int successNum = 0; int failureNum = 0; StringBuilder successMsg = new StringBuilder(); @@ -663,6 +663,12 @@ public class SysUserServiceImpl implements ISysUserService { return successMsg.toString(); } + public boolean hasDuplicatePhonenumbers(List userList) { + Map phoneCountMap = userList.stream() + .collect(Collectors.groupingBy(SysUser::getPhonenumber, Collectors.counting())); + return phoneCountMap.values().stream().anyMatch(count -> count > 1); + } + /** * @param userId * @return