<?php
include 'common.php';

//wp 저장시 max이상 저장안되게 하기 위해 총 score 구하기
function GetCharacterScoreSum($dbhandle,$char_uid, $server_group_id)
{
	$total = 0;
	
	
	 $strQuery = "select sum(score) from server_battle_field_log where reset=0 and server_group_id=".$server_group_id." and character_uid=".$char_uid;
	if($query_result = mysqli_query($dbhandle, $strQuery))
	{
		$data = mysqli_fetch_row($query_result);
		if(count($data) > 0)
		{			
			$total = $data[0];
			
			mysqli_free_result($query_result); 
		}
	}
	else{
		$total = 0;
	}	
	
	return $total;
}

function UpdateCharacterWP($dbhandle, $char_uid, $score, $server_group_id)
{
		
	
	$query = "update character_list set wp=wp+".$score." where server_group_id=".$server_group_id." and character_uid=".$char_uid;
	
	
	
	//Query Result
	$result = @mysqli_query($dbhandle,$query);
	if($result)
	{
		// don't use for upate/insert query, because these query result is true/false, not mysqli_result object
		//mysqli_free_result($result); 
		return true;
	}
	else
	{
		// don't use for upate/insert query, because these query result is true/false, not mysqli_result object
		//mysqli_free_result($result); 
		return false;
	}
	
}


function GetServerTotalScore($dbhandle,$server_group_id)
{
	$total = 0;
	
	
	 $strQuery = "select sum(score) from server_battle_field_log where reset=0 and server_group_id=".$server_group_id;
	if($query_result = mysqli_query($dbhandle, $strQuery))
	{
		$data = mysqli_fetch_row($query_result);
		if(count($data) > 0)
		{			
			$total = $data[0];
			
			mysqli_free_result($query_result); 
		}
	}
	else{
		$total = 0;
	}	
	
	return $total;
}

function ServerBattleFieldLog($char_uid, $server_group_id, $zone_id, $score)
{
	$dbhandle = DB_Connect();
	//Select DB
	$db_selected = mysqli_select_db($dbhandle, DB_NAME)
	or die("Could not select db");
	
	
	
	$response = "BATTLE_LOG_FAILED";
	$error = "";
	
	
	$now = new DateTime();
	$now->setTimezone(new DateTimeZone('UTC'));
	$logTime =  date_format($now, "Y-m-d H:i:s");


	
	$query = "insert into server_battle_field_log (character_uid,server_group_id, zone_id, score, log_time) values(".$char_uid .", ".$server_group_id.", ".$zone_id.",".$score.",'".$logTime."')";
	
	

	//Query Result
	$result = @mysqli_query($dbhandle,$query);
	
	if($result)
	{
		$response = "BATTLE_LOG_OK";
		// don't use for upate/insert query, because these query result is true/false, not mysqli_result object
		//mysqli_free_result($result); 
	}
	else
	{
		$error = mysqli_error($dbhandle);
	}
	
	
	
	$server_total_score = GetServerTotalScore($dbhandle,$server_group_id);
	
	$score_sum = GetCharacterScoreSum($dbhandle,$char_uid, $server_group_id);
	$error = $score_sum;//test
	if($score_sum <= 100)
	{
		UpdateCharacterWP($dbhandle,$char_uid,$score, $server_group_id);
	}
	
 
    $isXmlHttpRequest = (isset($_SERVER['HTTP_X_REQUESTED_WITH'])) ?
    (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') ? true : false: false;
    ($isXmlHttpRequest) ? header('Content-type: application/json') : header('Content-type: text/plain');
 
    echo json_encode(array('result'=>$response,  'error'=>$error, 'server_group_id'=>$server_group_id, 'server_total_score'=>$server_total_score));
	
	
	 mysqli_close($dbhandle);
}

ServerBattleFieldLog($_GET['char_uid'], $_GET['server_group_id'], $_GET['zone_id'], $_GET['score']);

?>