<?php
require_once(PLUGIN_DIR . 'Dao/SearchDao.php');
require_once(PLUGIN_DIR . 'Dao/InsertDao.php');
require_once(PLUGIN_DIR . 'Tools/Image.php');
class SecHandHouse extends Tospur_House{
    //二手房信息
    public static function secHandHouse_html(){
        global $wpdb;
        $type = $_POST["type"];
        $context = array();
        $context['siteUrl'] = get_site_url();
        $insert_tospur_house_array = array(
            'name' => $_POST['housename'],
            'total_price' =>$_POST['total_price'],
            'average_price' => $_POST['average_price'],
            'buildproperty_id'=>$_POST['roomNum'],
            'covered_area' =>$_POST['covered_area'],
            'floor' =>$_POST['floor'],
            'faceto'=>$_POST['faceto'],
            'decoration' => $_POST['decoration'],
            'age'=>$_POST['age'],
            'suite'=>$_POST["suite"],
            'overview' => $_POST['overview'],
            'city_id' => $_POST['baseCity'],
            'district_id' => $_POST['baseAreaId'],
            'plate_id' => $_POST["basePlateId"],
            'room_id' => $_POST['baseRoom'],
            'address' => $_POST['address'],
            'community_name'=>$_POST['community_name'],
            'traffic' => $_POST['traffic'],
            'periphery' => $_POST['periphery'],
            'owner_name'=>$_POST['owner_name'],
            'owner_phone'=>$_POST['owner_phone'],
            "location" => $_POST["location"],
            "totalFloor"=>$_POST["totalFloor"],
            "useArea"=>$_POST["useArea"],
            "street"=>$_POST["street"],
            "propertyProof"=>$_POST["propertyProof"],
            "roomNum"=>$_POST["roomNum"],
            "livingRoom"=>$_POST["livingRoom"],
            "bathRoom"=>$_POST["bathRoom"],
            "kitchen"=>$_POST["kitchen"],
            "balcony"=>$_POST["balcony"],
            "propertyRight"=>$_POST["propertyRight"],
            "structure"=>$_POST["structure"],
            "key"=>$_POST["key"],
            "matching_facilities"=>$_POST["matching_facilities"],
            "garage"=>$_POST["garage"],
            "entrustDay"=>$_POST["entrustDay"],
            "deadLine"=>$_POST["deadLine"],
            "property_money"=>$_POST["property_money"],
            "mortgage" =>$_POST["mortgage"],
            "parking_spaces"=>$_POST["parking_spaces"]
        );

        if($type==2){
            $wpdb->query("START TRANSACTION");
            if(isset($_POST['houseId'])){
                $insert_tospur_house_array = House::list_status_upate($_POST["userType"],$_POST["status"],$insert_tospur_house_array);
                $result = SecHandHouse::data_update($_POST['houseId'],$insert_tospur_house_array);
                if(!is_numeric($result)){
                    $wpdb->query("ROLLBACK");
                    print_r( $result);;
                    echo "二手房房源修改失败";
                }else{
                    $wpdb->query("COMMIT");
                    echo "二手房房源修改成功";
                }

            }else {
                $insert_tospur_house_array["status"] = 0;
                $insert_tospur_house_array["approval"] = 1;
                $result = SecHandHouse::secHouseData_insert($insert_tospur_house_array);
                if (!is_numeric($result)) {
                    $wpdb->query("ROLLBACK");
                    print_r( $result);;
                    echo "二手房房源新增失败";
                } else {
                    $wpdb->query("COMMIT");
                    echo "二手房房源新增成功";
                }
            }
            exit;
        }else if(isset($_GET['edit'])){
            $context['houseId'] = $_GET['id'];
            $context = array_merge($context,SearchDao::getDetailInfo($_GET['id']));
            $context["district"] = SearchDao::searchCity($context['result']->city_id);
            $context["plate"] = SearchDao::searchCity($context['result']->city_id,$context['result']->district_id);

        }
        $context['canApproval'] = House::canApproval();
        $context['canEdit'] =  House::canEdit();
        $context["city"] = SearchDao::searchCity();
        $context["buildProperty"] = SearchDao::searchBuildProperty();
        $context["room"] = SearchDao::searchRoom();
        $context["photoType"] = SearchDao::searchPhotoType();
        $context["status"] = searchDao::searchStatusType(2);
        $context["house_type"] = 1;
        Timber::render("secHandHouse.html",$context);

    }

    public static function secHouseData_insert($params)
    {
        global $wpdb;
        //房源与类型以及面积信息
        $data = $_POST["data"];
        $params['creattime'] = date("Y-m-d H:i:s");
        $params['house_type'] = 1;
        //获取新房信息，存入tospur_house表
        $res = DBManager::get_results('SELECT * FROM tospur_house WHERE address="' .$params['address'] . '" and owner_name="' .$params['owner_name'] . '" and owner_phone="'.$params['owner_phone'].'" and house_type=1', OBJECT);
        if(!$res){
            $houseId = InsertDao::insert_tospur_house($params);
            if(is_numeric($houseId)){
                $mainImageRes = InsertDao::addMainImage($houseId,$data);
                if(!is_numeric($mainImageRes)){
                    return $mainImageRes;
                }

                $recommendRes = InsertDao::addRecommend($houseId,$data);
                if(!is_numeric($recommendRes)){
                    return $recommendRes;
                }

                $recConsultantRes = InsertDao::addRecConsultant($houseId,$data['recConsultant']);
                if(!is_numeric($recConsultantRes)){
                    return $recConsultantRes;
                }

                $tagRes = InsertDao::addHouseTag($houseId, $data['houseTag']);
                if(!is_numeric($tagRes)){
                    return $tagRes;
                }

                $houseFeatureRes = InsertDao::addHouseFeature($houseId, $data['houseFeature']);
                if(!is_numeric($houseFeatureRes)){
                    return $houseFeatureRes;
                }

                $customerTrackRes = CustomerTrackingDao::insert($houseId, $_REQUEST);
                if(!is_numeric($customerTrackRes)){
                    return $customerTrackRes;
                }
            }
            return $houseId;
        }else{
            return "房源已存在";
        }
    }

    public static function data_update($houseId,$params){
        global $wpdb;
        $data = $_POST["data"];
        $res = DBManager::update(Config::TOSPUR_HOUSE_TABLE,$params,array("id" => $houseId));
        $result = 201;

        InsertDao::addMainImage($houseId,$data);

        $exists_photo_ids = array();
        if(isset($_POST['exists_photo'])){
            foreach($_POST['exists_photo'] as $id => $item){
                DBManager::update(Config::TOSPUR_IMAGE_TABLE,array(
                    "image_type" => $item['type'],
                ),array("id" => $id));
                $exists_photo_ids[] = $id;
            }
        }
        $old_exists_photo_ids = explode(",",$_POST['exists_photo_ids']);
        $delete_photo_ids = array();
        foreach(array_diff($old_exists_photo_ids,$exists_photo_ids) as $key => $id){
            $delete_photo_ids[] = $id;
        }
        $delete_photo_ids = implode(",",$delete_photo_ids);
        DBManager::query("delete from ".Config::A_HOUSE_IMAGE_TABLE." where house_id = {$houseId} and image_id in ({$delete_photo_ids});");

        DBManager::delete(Config::A_HOUSE_RECOMMEND_TABLE,array("house_id" => $houseId));
        $result = InsertDao::addRecommend($houseId,$data);
        if(!is_numeric($result)){
            return $result;
        }

        $result = InsertDao::addRecConsultant($houseId, $data['recConsultant']);
		if(!is_numeric($result)){
            return $result;
        }

        DBManager::query(
            $wpdb->prepare(
                "DELETE FROM a_house_tag
                WHERE tag_id in(select tag_id from (select tag_id,tt.type from a_house_tag as aht
                left JOIN tospur_tag tt on aht.tag_id = tt.id) as a
                where house_id = %d and a.type = 1);", $houseId)
        );
		InsertDao::addHouseTag($houseId, $data['houseTag']);

        $result = InsertDao::addHouseFeature($houseId, $data['houseFeature']);
		if(!is_numeric($result)){
            return $result;
        }
		CustomerTrackingDao::insert($_POST['houseId'], $_REQUEST);
        return $result;
    }

}

