|
@@ -26,6 +26,40 @@ public class ActivityRegistrationService {
|
|
|
@Resource
|
|
@Resource
|
|
|
private ActivityMapper activityMapper;
|
|
private ActivityMapper activityMapper;
|
|
|
|
|
|
|
|
|
|
+ @Transactional
|
|
|
|
|
+ public Result<Map<String, Object>> batchRegister(Long activityId, Long userId, List<Map<String, Object>> registrants) {
|
|
|
|
|
+ Activity activity = activityMapper.selectById(activityId);
|
|
|
|
|
+ if (activity == null) return Result.error("活动不存在");
|
|
|
|
|
+ if (!"published".equals(activity.getStatus())) return Result.error("活动未发布");
|
|
|
|
|
+ if (activity.getRequireRegistration() != null && activity.getRequireRegistration() == 0) {
|
|
|
|
|
+ return Result.error("该活动无需报名");
|
|
|
|
|
+ }
|
|
|
|
|
+ List<Long> ids = new ArrayList<>();
|
|
|
|
|
+ for (Map<String, Object> reg : registrants) {
|
|
|
|
|
+ String name = (String) reg.get("name");
|
|
|
|
|
+ if (name == null || name.trim().isEmpty()) return Result.error("报名人姓名不能为空");
|
|
|
|
|
+ String phone = (String) reg.get("phone");
|
|
|
|
|
+ Object childIdObj = reg.get("childId");
|
|
|
|
|
+ Long childId = childIdObj != null ? Long.valueOf(childIdObj.toString()) : null;
|
|
|
|
|
+ if (childId != null) {
|
|
|
|
|
+ if (isRegistered(activityId, childId)) {
|
|
|
|
|
+ return Result.error("已报名: " + name);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ ActivityRegistration ar = new ActivityRegistration();
|
|
|
|
|
+ ar.setActivityId(activityId); ar.setUserId(userId); ar.setChildId(childId);
|
|
|
|
|
+ ar.setRegistrantName(name.trim()); ar.setRegistrantPhone(phone != null ? phone.trim() : null);
|
|
|
|
|
+ ar.setStatus("pending"); ar.setRegisteredAt(LocalDateTime.now());
|
|
|
|
|
+ ar.setCreatedAt(LocalDateTime.now()); ar.setUpdatedAt(LocalDateTime.now());
|
|
|
|
|
+ registrationMapper.insert(ar);
|
|
|
|
|
+ ids.add(ar.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+ Map<String, Object> result = new HashMap<>();
|
|
|
|
|
+ result.put("registrationIds", ids);
|
|
|
|
|
+ result.put("count", ids.size());
|
|
|
|
|
+ return Result.success(result);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@Transactional
|
|
@Transactional
|
|
|
public Result<Map<String, Object>> register(Long activityId, Long userId, Long childId) {
|
|
public Result<Map<String, Object>> register(Long activityId, Long userId, Long childId) {
|
|
|
Activity activity = activityMapper.selectById(activityId);
|
|
Activity activity = activityMapper.selectById(activityId);
|
|
@@ -88,6 +122,8 @@ public class ActivityRegistrationService {
|
|
|
Map<String, Object> item = new HashMap<>();
|
|
Map<String, Object> item = new HashMap<>();
|
|
|
item.put("id", reg.getId()); item.put("activityId", reg.getActivityId());
|
|
item.put("id", reg.getId()); item.put("activityId", reg.getActivityId());
|
|
|
item.put("childId", reg.getChildId()); item.put("status", reg.getStatus());
|
|
item.put("childId", reg.getChildId()); item.put("status", reg.getStatus());
|
|
|
|
|
+ item.put("registrantName", reg.getRegistrantName());
|
|
|
|
|
+ item.put("registrantPhone", reg.getRegistrantPhone());
|
|
|
item.put("registeredAt", reg.getRegisteredAt());
|
|
item.put("registeredAt", reg.getRegisteredAt());
|
|
|
Activity activity = activityMapper.selectById(reg.getActivityId());
|
|
Activity activity = activityMapper.selectById(reg.getActivityId());
|
|
|
if (activity != null) {
|
|
if (activity != null) {
|
|
@@ -111,6 +147,8 @@ public class ActivityRegistrationService {
|
|
|
Map<String, Object> item = new HashMap<>();
|
|
Map<String, Object> item = new HashMap<>();
|
|
|
item.put("id", reg.getId()); item.put("childId", reg.getChildId());
|
|
item.put("id", reg.getId()); item.put("childId", reg.getChildId());
|
|
|
item.put("userId", reg.getUserId()); item.put("status", reg.getStatus());
|
|
item.put("userId", reg.getUserId()); item.put("status", reg.getStatus());
|
|
|
|
|
+ item.put("registrantName", reg.getRegistrantName());
|
|
|
|
|
+ item.put("registrantPhone", reg.getRegistrantPhone());
|
|
|
item.put("registeredAt", reg.getRegisteredAt());
|
|
item.put("registeredAt", reg.getRegisteredAt());
|
|
|
return item;
|
|
return item;
|
|
|
}).collect(Collectors.toList());
|
|
}).collect(Collectors.toList());
|