Auto Start

This commit is contained in:
2025-09-06 07:01:07 +09:00
parent d7d296c33b
commit 316cff3f5f
2 changed files with 201 additions and 7 deletions

View File

@ -582,13 +582,33 @@ def checkin_from_rogapp(request):
).first()
if not start_record:
logger.warning(f"[CHECKIN] ❌ Team has not started yet - ID: {request_id}, team_name: '{team_name}', zekken: {entry.zekken_number}, cp_number: {cp_number}, Client IP: {client_ip}")
return Response({
"status": "ERROR",
"message": "このチームはまだスタートしていません。先にスタート処理を行ってください。"
}, status=status.HTTP_400_BAD_REQUEST)
logger.info(f"[CHECKIN] ✅ Team has started - ID: {request_id}, start_time: {start_record.checkin_time}")
# 🚀 AUTO-START機能: スタートしていない場合、自動的にスタート処理を実行
logger.info(f"[CHECKIN] 🚀 Team has not started yet, auto-starting - ID: {request_id}, team_name: '{team_name}', zekken: {entry.zekken_number}")
with transaction.atomic():
# スタートレコードを作成
start_record = GpsLog.objects.create(
zekken_number=entry.zekken_number,
event_code=entry.event.event_name,
cp_number="START",
serial_number=0,
checkin_time=timezone.now(),
create_at=timezone.now(),
create_user="AUTO_START",
image_address="AUTO_START",
buy_flag=False,
score=0
)
# エントリー状況を更新
entry.is_in_rog = True
entry.rogaining_counted = True
entry.start_time = timezone.now()
entry.save()
logger.info(f"[CHECKIN] ✅ Auto-start completed - ID: {request_id}, start_record_id: {start_record.id}, start_time: {start_record.checkin_time}")
else:
logger.info(f"[CHECKIN] ✅ Team has already started - ID: {request_id}, start_time: {start_record.checkin_time}")
# 既に同じCPを登録済みかチェック
existing_checkpoint = GpsLog.objects.filter(