<?php


namespace App\Console\Commands\WashData;


use App\Facades\Servers\Logs\Log;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\DB;

class WashDataSetQuestionPointStatusCommand extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'washdata:setPointStatus';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '题库解析';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        //连接数据库

        $dataBaseInfos = [
            //saas-company
            'company' => [
                'host' => '39.108.116.125',
                'port' => 3306,
                'db_name' => 'company_61',
                'db_username' => 'company_61',
                'db_password' => 'N35fYCPHziAAGd4L'
            ]
        ];

        $companyConnectionConfig = [
            'driver' => 'mysql',
            'host' => $dataBaseInfos['company']['host'],
            'port' => $dataBaseInfos['company']['port'],
            'database' => $dataBaseInfos['company']['db_name'],
            'username' => $dataBaseInfos['company']['db_username'],
            'password' => $dataBaseInfos['company']['db_password'],
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'unix_socket' => env('DB_SOCKET', ''),
            'prefix' => env('DB_PREFIX', ''),
            'strict' => false,
            'sticky' => true,
            'engine' => null,
            'options' => [],
        ];

        Config::set("database.connections.company", $companyConnectionConfig);

        $tableName = 'kailin_question_point';

        $names = ['含木脂素的常用中药','秦皮（中药一）','补骨脂（中药一）','前胡（中药一）','肿节风（中药一）','五味子（中药一）','连翘（中药一）','细辛（中药一）','含有机酸的常用中药','葛根（中药一）','陈皮（中药一）','萜的分类及其性质','青蒿（中药一）','生物碱的分类','含胆汁酸类化学成分的常用动物药','胆汁酸的理化性质','肉桂（中药一）','牛膝（中药一）','香加皮（中药一）','商陆（中药一）','蟾酥（中药一）','麦冬（中药一）','罗布麻叶（中药一）','合欢皮（中药一）','苦参（中药一）','洋金花（中药一）','山豆根（中药一）','防己（中药一）','草乌（中药一）','麝香（中药一）','金银花（中药一）','板蓝根（中药一）','北沙参（中药一）','续断（中药一）','南沙参（中药一）','北豆根（中药一）','浙贝母（中药一）','玉竹（中药一）','茜草（中药一）','常用中药的显微鉴别','百部（中药一）','天冬（中药一）','姜黄（中药一）','白薇（中药一）','郁金（中药一）','大青叶（中药一）','赤芍（中药一）','威灵仙（中药一）','瓜蒌（中药一）','石斛（中药一）','肉苁蓉（中药一）','枸杞子（中药一）','石菖蒲（中药一）','桔梗（中药一）','白前（中药一）','番泻叶（中药一）','菊花（中药一）','青黛（中药一）','海金沙（中药一）','广金钱草（中药一）','血竭（中药一）','片剂辅料（稀释剂与吸收剂）','片剂辅料（崩解剂）','环糊精包合技术','胶囊剂的质量要求（中药）','丸剂的临床应用注意事项','蜡丸','固体分散技术','片剂的分类（包括中药）','流浸膏剂与浸膏剂的特点与分类','栓剂的质量要求','涂膜剂','糖浆剂的质量要求','酒剂的质量要求','酊剂的的质量要求','茶剂的质量要求','溶液剂','眼用制剂的质量要求','乳膏剂与软膏剂基质','牛蒡子','桑叶','细辛','生姜','紫苏叶','防风','谷精草','黄芩','决明子','玄参','夏枯草','贯众','苎麻根','瓜蒌','竹茹','牡丹皮','生地黄','赤芍','知母','银翘解毒丸','鸦胆子','大黄','郁李仁','虎杖','香加皮','桑寄生','路路通','萆薢','陈皮','木香 ','茯苓','瞿麦','白茅根','蒲黄','穿山甲','王不留行','白术 ','香附','莱菔子','五灵脂','阿胶','海螵蛸','瓦楞子','黄药子','海浮石','赭石','龙骨','麝香','常山','八珍颗粒','莲子','济生肾气丸','天王补心丸','柏子养心丸','麝香保心丸','人参再造丸','抗栓再造丸','苏合香丸','逍遥颗粒','加味逍遥丸','左金丸','越鞠丸','保和丸','速效救心丸','槐角丸','桑菊感冒片','午时茶颗粒','九味羌活丸','藿香正气水','保济丸','双黄连合剂','小青龙胶囊','安宫牛黄丸','清暑益气丸','琥珀抱龙丸','牛黄抱龙丸','二陈丸','橘贝半夏颗粒','礞石滚痰丸','急支糖浆','二母宁嗽丸','橘红丸','八宝眼药散','冰硼散','正治与反治','调整阴阳','阴阳学说在疾病治疗中的应用','阴阳盛衰','阴阳格拒','邪正盛衰','辨证与论治的关系','阴阳学说在疾病诊断中的应用','六腑——大肠','气与血的关系','中医诊断学概述','切诊','脏腑辨证-肺病','脏腑辨证-肾病','血清总蛋白、清蛋白、球蛋白','血尿酸（UA）','感冒','饮片处方的服用','藏医-五元学说','引起中药质量变异的环境因素','中药饮片质量变异现象—虫蛀','中成药贮存中常见的质量变异现象','中药饮片质量变异现象—泛油','中药饮片质量变异现象—变色','中药饮片质量变异现象—霉变','中药饮片质量变异现象—风化','中药饮片质量变异现象—软化融化','中药汤剂煎煮—煎煮程序','中药饮片质量变异现象—气味散失','处方常用术语（产地，炮制，调剂，煎煮）','饮片处方药品规范用名—正名别名','中成药外用方法及特殊剂型的使用','中药汤剂煎煮—中药特殊煎服法','含毒性饮片、按麻醉药管理饮片以及含朱砂的中成药调配','中成药与药引配伍','中药中毒反应与救治（蟾酥）','中药饮片不良反应及救治（香加皮）','中药饮片不良反应及救治（黄药子）','中药饮片不良反应及救治（雷公藤）','中药饮片不良反应及救治（吴茱萸）'];


        $dataCount = count($names);

        $this->info('开始转换');
        $this->info("总共有：{$dataCount} 条数据");
        $bar = $this->output->createProgressBar($dataCount);

        foreach ($names as $name) {
            $pointIds = DB::connection('company')->table($tableName)->where('name', $name)->orderBy('id','ASC')->pluck('id')->toArray();

            foreach ($pointIds as $key=> $pointId) {
                if ($key>0) {
                    DB::connection('company')->table($tableName)->where('id', $pointId)->update(['status' => 1, 'update_time' => time()]);
                    Log::info('washdata_setPointStatus',"set kailin_question_point id = {$pointId}, status to 1" );
                }
            }

            $bar->advance();

        }

        $bar->finish();
        $this->info('');
        $this->info('处理完成');

    }


    }