<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/4/29 0029
 * Time: 17:16
 */

namespace App\Http\Logics\Admin;

use App\Http\Models\LinkTask;
use App\Http\Models\LinkTaskDetail;
use App\Http\Models\LinkTaskUrl;
use App\Http\Models\User;
use \Illuminate\Database\Eloquent\Builder;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;

class ReportLogic
{
    public function syncSummary($ym, $siteId, $validated)
    {

        $filter = ['ym' => $ym, 'project_id' => $siteId];

        $summaryRecords = DB::connection('rank')->table('report_summary')->where($filter)->get()->toArray();

        $summaryRecordsIdList = array_column($summaryRecords, 'id');

        $summaryIdList = array_column($validated['dataList'], 'summaryId'); //传递过来的数据

        // 数据同步
        foreach ($summaryRecordsIdList as $item) { //如果已存在的记录中不在提交的数据中
            if (!in_array($item, $summaryIdList)) {
                DB::connection('rank')->table('report_summary')->delete($item);
            }
        };

        foreach ($validated['dataList'] as $item) {
            if (!in_array($item['summaryId'], $summaryRecordsIdList)) { //判断提价的数据在不在已存在的记录中

                DB::connection('rank')->table('report_summary')->insert([
                    'ym' => $ym,
                    'val1' => $item['val1'],
                    'val2' => $item['val2'],
                    'val3' => $item['val3'],
                    'project_id' => $siteId,
                    'create_time' => time()
                ]);
            } else {
                DB::connection('rank')->table('report_summary')->where(['id' => $item['summaryId']])->update([
                    'val1' => $item['val1'],
                    'val2' => $item['val2'],
                    'val3' => $item['val3'],
                ]);
            }
        }

    }

    public function syncFileExtend($ym, $siteId, $validated)
    {
//        $filter = ['ym' => $ym, 'project_id' => $siteId];

        $selectItem=[
            'manage'=>$validated['selectManageList']??[],
            'customer'=>$validated['selectCustomerList']??[],
        ];

        DB::connection('rank')->table('report_extend')->updateOrInsert([
            'ym' => $ym, 'project_id' => $siteId
        ], [
            'remark' => $validated['remark'],
            'file_list' => json_encode($validated['fileList']),
            'create_time' => time(),
            'select_item'=>json_encode($selectItem)
        ]);


//        if (DB::connection('rank')->table('report_extend')->where($filter)->exists()) {
//            DB::connection('rank')->table('report_extend')->insert([
//                'remark' => $validated['remark'],
//                'file_list' => json_encode($validated['fileList']),
//                'ym' => $ym,
//                'create_time' => time(),
//                'project_id' => $siteId
//            ]);
//        } else {
//
//            DB::connection('rank')->table('report_extend')->where($filter)->update([
//                'remark' => $validated['remark'],
//                'file_list' => json_encode($validated['fileList'])
//            ]);
//        }
    }
}