generated from liutk/owl-admin-base
85 lines
3.9 KiB
PHP
85 lines
3.9 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders\Migrations;
|
|
|
|
use Illuminate\Database\Seeder;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Str;
|
|
use Throwable;
|
|
use App\Models\Person;
|
|
use App\Models\PersonChange;
|
|
|
|
class PersonMoveSeeder extends Seeder
|
|
{
|
|
/**
|
|
* Run the database seeds.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function run()
|
|
{
|
|
DB::table('person_changes')->truncate();
|
|
|
|
DB::connection('djc_mysql')->table('t_person_move')->orderBy('id', 'ASC')->chunk(1000, function($personMoves){
|
|
$newlogs = [];
|
|
if($personMoves->count() > 0){
|
|
foreach($personMoves as $log){
|
|
if($log->valid){//有效的记录
|
|
//处理原有时间字符串
|
|
$occurDate = substr($log->occurDate, 0, 10);
|
|
$_log = [
|
|
'type' => $log->type,
|
|
'person_id' => $log->personId,
|
|
'changed_at' => $occurDate,
|
|
'reason' => $log->reason,
|
|
'old_master'=> Person::where('name', $log->oldMaster)->first()?->id ?: null,
|
|
'new_master'=> Person::where('name', $log->currMaster)->first()?->id ?: null,
|
|
'phone' => $log->phone,
|
|
];
|
|
//处理变更文案
|
|
switch($_log['type']){
|
|
case PersonChange::TYPE_IN:
|
|
case PersonChange::TYPE_BIRTH:
|
|
$_log['extends'] = null;
|
|
$_log['extends_mark'] = null;
|
|
break;
|
|
case PersonChange::TYPE_SPLIT:
|
|
$_log['extends'] = null;
|
|
$_log['extends_mark'] = $occurDate.'日'.(empty($_log['reason']) ? '':'因'.$_log['reason']).'分户';
|
|
break;
|
|
case PersonChange::TYPE_MERGE:
|
|
$_log['extends'] = null;
|
|
$_log['extends_mark'] = $occurDate.'日'.(empty($_log['reason']) ? '':'因'.$_log['reason']).'合户';
|
|
break;
|
|
case PersonChange::TYPE_OUT:
|
|
$_log['extends'] = json_encode([
|
|
'to_address' =>$log->newAddr,
|
|
]);
|
|
$_log['extends_mark'] = $occurDate.'日'.(empty($_log['reason']) ? '':'因'.$_log['reason']).$log->newAddr;
|
|
break;
|
|
case PersonChange::TYPE_CHANGE:
|
|
$_log['extends'] = null;
|
|
$_log['extends_mark'] = $occurDate.'日'.(empty($_log['reason']) ? '':'因'.$_log['reason']).'户主变更';
|
|
break;
|
|
case PersonChange::TYPE_MIGRATE:
|
|
$_log['extends'] = null;
|
|
$_log['extends_mark'] = $occurDate.'日'.(empty($_log['reason']) ? '':'因'.$_log['reason']).'迁移';
|
|
break;
|
|
case PersonChange::TYPE_DIE:
|
|
$_log['extends'] = null;
|
|
$_log['extends_mark'] = $occurDate.'日'.(empty($_log['reason']) ? '': $_log['reason']);
|
|
break;
|
|
default:
|
|
$_log['extends'] = null;
|
|
$_log['extends_mark'] = null;
|
|
break;
|
|
}
|
|
|
|
$newlogs[] = $_log;
|
|
}
|
|
}
|
|
}
|
|
!empty($newlogs) && DB::table('person_changes')->insert($newlogs);
|
|
});
|
|
}
|
|
} |