diff --git a/backend/src/main/java/com/budwk/app/client/module/activity/service/impl/ClientActivityServiceImpl.java b/backend/src/main/java/com/budwk/app/client/module/activity/service/impl/ClientActivityServiceImpl.java index 2443605..8e8dbc5 100644 --- a/backend/src/main/java/com/budwk/app/client/module/activity/service/impl/ClientActivityServiceImpl.java +++ b/backend/src/main/java/com/budwk/app/client/module/activity/service/impl/ClientActivityServiceImpl.java @@ -21,6 +21,7 @@ import org.nutz.lang.util.NutMap; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; +import java.util.stream.Collectors; @IocBean(args = {"refer:dao"}) public class ClientActivityServiceImpl extends BaseServiceImpl implements ClientActivityService { @@ -46,12 +47,33 @@ public class ClientActivityServiceImpl extends BaseServiceImpl impleme @Override public void signUp(ClientActivitySignVO signVO) { + List userList = signVO.getUserList(); + + // 检查是否有重复的身份证号 + boolean hasDuplicateIdCard = userList.stream() + .collect(Collectors.groupingBy(ActUser::getIdCard, Collectors.counting())) + .values().stream() + .anyMatch(count -> count > 1); + + // 检查是否有重复的手机号 + boolean hasDuplicatePhone = userList.stream() + .collect(Collectors.groupingBy(ActUser::getPhone, Collectors.counting())) + .values().stream() + .anyMatch(count -> count > 1); + + if(hasDuplicateIdCard){ + throw new BaseException("身份证号重复"); + } + + if(hasDuplicatePhone){ + throw new BaseException("手机号重复"); + } + LocalDateTime now = LocalDateTime.now(); Client_user selfUser = dao().fetch(Client_user.class, StpClientUtil.STP.getLoginIdAsLong()); dao().fetchLinks(selfUser, "unit"); - List userList = signVO.getUserList(); // 首先检查报名人员是否已经在用户表中 for (ActUser user : userList) { Client_user clientUser = dao().fetch(Client_user.class, Cnd.where(Client_user::getIdCard, "=", user.getIdCard()).or(Client_user::getPhone, "=", user.getPhone()));