<?php
function getNextId($qgdata,$newItem){
    //qg  从 10000 开始
    $qg_start = 10000;
    $result = $qg_start;
    $maxId = $qg_start-1;
    $aPoisId = [];
    foreach($qgdata as $area_id=>$pois){
        foreach($pois as $id=>$poi){
            $aPoisId[$id] = true;
            if($id >= $maxId) $maxId = $id;
            //判断是否有相同的x,y 如果有则退出
            if($poi['x']==$newItem['x'] && $poi['y']==$newItem['y']){
                echo '{"id":0,"error":"有相同的坐标了"}';
                exit();
            }
        }
    }
    //如果qgData有删除掉的ID，就继用
    $hasDelete = false;
    for($i=$qg_start;$i<$maxId;$i++){
        if(!isset($aPoisId[$i])){
            $result = $i;
            $hasDelete = true;
            break;
        }
    }
    if(!$hasDelete) $result = $maxId + 1;
    return $result;
}
$filename = '../maps/SurvivalL0/overlays_qg.json';
$action = $_REQUEST['action'];
$newItem = $_REQUEST;
if($action=='add' || $action=='edit'){
    if(empty($newItem['id'])) $newItem['id'] = 0;
    $newItem = [
        "id"=>trim($newItem['id']) * 1,
        "area_id"=>trim($newItem['area_id']) * 1,
        "name"=>trim($newItem['name']),
        "created_at"=>trim($newItem['created_at']),
        "updated_at"=>trim($newItem['updated_at']),
        "x"=>trim($newItem['x']) * 1,
        "y"=>trim($newItem['y']) * 1,
        "score"=>trim($newItem['score']) * 1,
        "user_id"=>trim($newItem['user_id']) * 1,
        "comment"=>trim(str_replace("\n","<br>",$newItem['comment'])),
        "approver_id"=>trim($newItem['approver_id']) * 1,
        "approved_at"=>trim($newItem['approved_at']),
        "qg"=> 1
    ];
}
$jsonStr = '';
if(file_exists($filename)){
    $jsonStr = file_get_contents($filename);
}
if($jsonStr=='') $jsonStr = '[]';
$data = json_decode($jsonStr,true);
if($action=='add'){
    $area_id = $newItem['area_id'];
    $nextId = getNextId($data,$newItem);
    $newItem['id'] = $nextId;
    $data[$area_id][$nextId] = $newItem;
    ksort($data[$area_id]);
    if($data[$newItem['area_id']]);
}elseif($action=='edit'){
    $area_id = $newItem['area_id'];
    $getId = $newItem['id'];
    if($getId){
        if($data[$area_id][$getId]){ //qg
            $data[$area_id][$getId] = $newItem;
        }else{ //更改翻译
            $filename = '../maps/SurvivalL0/fanyi_change.json';
            $jsonStr = file_get_contents($filename);
            if($jsonStr=='') $jsonStr = '{}';
            $aFyChange = json_decode($jsonStr,true);
            $item =[
                'id' => $getId,
                'name' => $newItem['name'],
                'comment' => $newItem['comment'],
                'qg' => 1
            ];            
            $aFyChange[$getId] = $item;
            $jsonStr = json_encode($aFyChange,JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
            file_put_contents($filename,$jsonStr);
            echo '{"id":'.$newItem['id'].',"error":""}';
            exit();
        }
    }
}elseif($action=='delete'){
    $getId = $newItem['id'];
    if($getId){
        $findAreaId = -1;
        foreach($data as $area_id=>$pois){
            foreach($pois as $id=>$poi){
                if($getId == $id){
                    $findAreaId = $area_id;
                    break;
                }
            }
            if($findAreaId!=-1) break;
        }
        if($findAreaId!=-1) {
            unset($data[$findAreaId][$getId]);
            if(empty($data[$findAreaId])){
                unset($data[$findAreaId]);
            }
        }else{
            //删除更改的翻译
            $filename = '../maps/SurvivalL0/fanyi_change.json';
            $jsonStr = file_get_contents($filename);
            if($jsonStr=='') $jsonStr = '{}';
            $aFyChange = json_decode($jsonStr,true);
            if($aFyChange[$getId]) unset($aFyChange[$getId]);
            $jsonStr = json_encode($aFyChange,JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
            file_put_contents($filename,$jsonStr);
            echo '{"id":'.$newItem['id'].',"error":""}';
            exit();
        }
    }
}
$jsonStr = json_encode($data,JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
file_put_contents($filename,$jsonStr);
echo '{"id":'.$newItem['id'].',"error":""}';