Auto Start
This commit is contained in:
@ -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(
|
||||
|
||||
Reference in New Issue
Block a user