ImportManager.php 5.2 KB
<?php
/**
 * @remark :
 * @name   :ImportManager.php
 * @author :lyh
 * @method :post
 * @time   :2023/8/7 17:47
 */

namespace App\Console\Commands\Import;

use App\Models\Manage\EntryPosition;
use App\Models\Manage\JobLevel;
use App\Models\Manage\ManageHr;
use App\Models\Service\Service;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;

class ImportManager extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'import_manager';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '导入数据';
    /**
     * @remark :导入5.0管理员数据
     * @name   :handle
     * @author :lyh
     * @method :post
     * @time   :2023/8/7 17:49
     */
    public function handle(){
        $model = new Service();
        $info = $model->read(['type'=>5]);
        $values = json_decode($info['values']);
        $values = array_reverse($values);
        $hrModel = new ManageHr();
        foreach ($values as $k => $v){
            $v = (array)$v;
            $info = $hrModel->read(['mobile'=>$v['mobile']]);
            if($info !== false){
                continue;
            }
            $data = [
                'name'=>$v['name'],
                'mobile'=>$v['mobile'],
                'password'=>'$2y$10$ZNHxlIddWiQzQbIIzFgYJOsPlQ4n0cwWl8Sea53qvQvDXtu3WeYMC',
                'created_at'=>date('Y-m-d H:i:s'),
                'updated_at'=>date('Y-m-d H:i:s'),
            ];
            $manager_id = DB::table('gl_manage')->insertGetId($data);
            if($v['sex'] == '女'){
                $v['sex'] = 2;
            }else{
                $v['sex'] = 1;
            }
            $education = [
                '专科' => 1,
                '大专' => 1,
                '中专' => 0,
                '本科' => 2,
                '自考本科'=>0,
                '全日制本科'=>2,
                '本科在读'=>2,
                '大学本科'=>2,
                '硕士研究生' => 3,
                '硕士'=>3,
                '其他' => 0,
            ];
            $belong_group = [
                '-' => 0,
                'KA组' => 1,
                'A组' => 2,
                'B组' => 3,
                'C组'=>4,
                'D组'=>5,
                'E组'=>6,
                'F组'=>7,
                'G组' => 8,
                'H组'=>9,
                'GA组' => 10,
                'GB组' => 11,
                'GC组' => 12,
                '前端组' => 13,
                '后端组' => 14,
                '黑格组' => 15,
                '售后组' => 16,
                '其他' => 0,
            ];
            //获取入职岗位
            $entryPositionModel = new EntryPosition();
            $entry_position = $entryPositionModel->read(['name'=>$v['entry_position']]);
            if($entry_position !== false){
                $entry_position = $entry_position['id'];
            }else{
                $entry_position = 0;
            }
            //获取级别
            $jobLevelModel = new JobLevel();
            if(!empty($v['p_level'])){
                $p_level = $jobLevelModel->read(['name'=>$v['p_level']]);
                if($p_level !== false){
                    $p_level = $p_level['id'];
                }else{
                    $p_level = 0;
                }
            }else{
                $p_level = 0;
            }
            $manager_data = [
                'manage_id'=>$manager_id,
                'name'=>$v['name'],
                'id_card'=>$v['id_card'],
                'mobile'=>$v['mobile'],
                'birthday'=>!empty($v['birthday']) ? $v['birthday'] : date('Y-m-d'),
                'address'=>$v['address'],
                'sex'=>$v['sex'],
                'nationality'=>$v['nationality'],
                'belong_group'=>$belong_group[$v['belong_group']],
                'education'=>isset($education[$v['education']]) ? $education[$v['education']] : 0,
                'major'=>$v['major'],
                'graduate_school'=>$v['graduate_school'],
                'english_level'=>$v['english_level'],
                'entry_position'=>$entry_position ?? 0,
                'p_level'=>$p_level,
                'residential_address'=>$v['residential_address'],
                'emergency_contact'=>$v['emergency_contact'],
                'career_history'=>json_encode((array)$v['career_history']),
                'learning_history'=>json_encode((array)$v['learning_history']),
                'bank_card'=>$v['bank_card'],
                'photo_gallery'=>json_encode((array)$v['photo_gallery']),
                'id_card_gallery'=>json_encode((array)$v['id_card_gallery']),
                'certificate_gallery'=>json_encode((array)$v['certificate_gallery']),
                'dangyuan'=>$v['dangyuan'],
                'dangzhibu'=>$v['dangzhibu'],
                'dang_address'=>$v['dang_address'],
                'join_date'=>!empty($v['join_date']) ?  $v['join_date'] : date('Y-m-d'),
                'status'=> 1,
                'computer_account'=>$v['computer_account'],
                'qq_account'=>$v['qq_account']
            ];
            $hrModel->add($manager_data);
        }
        return 1;
    }
}