generated from liutk/owl-admin-base
582 lines
25 KiB
PHP
582 lines
25 KiB
PHP
<?php
|
|
|
|
namespace App\Services\Admin;
|
|
|
|
use App\Models\Keyword;
|
|
use App\Models\Person;
|
|
use App\Models\Filters\PersonFilter;
|
|
use App\Traits\UploadTrait;
|
|
use Illuminate\Support\Arr;
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
use App\Models\PersonChange;
|
|
use DB;
|
|
|
|
/**
|
|
* @method Person getModel()
|
|
* @method Person|\Illuminate\Database\Query\Builder query()
|
|
*/
|
|
class PersonService extends BaseService
|
|
{
|
|
use UploadTrait;
|
|
|
|
protected string $modelName = Person::class;
|
|
|
|
protected string $modelFilterName = PersonFilter::class;
|
|
|
|
protected array $withRelationships = ['master'];
|
|
|
|
protected bool $modelSortAble = true;
|
|
|
|
public function query(): Builder
|
|
{
|
|
return $this->modelName::query()->valid()->whereIn('type', [11, 12]);
|
|
}
|
|
|
|
public function store($data): bool
|
|
{
|
|
$columns = $this->getTableColumns();
|
|
$model = $this->getModel();
|
|
|
|
$data['avatar'] = $this->saveImage('avatar', 'persons/avatar')[0] ?? '';
|
|
|
|
if(isset($data['master'])){
|
|
$data['master_id'] = $data['master'];
|
|
unset($data['master']);
|
|
}
|
|
|
|
//处理house_building字段
|
|
if(isset($data['house_building']))
|
|
{
|
|
$data['housing_estate_id'] = Keyword::where('id', $data['house_building'])->value('parent_id') ?:0;
|
|
$data['building_id'] = $data['house_building'];
|
|
}
|
|
|
|
foreach ($data as $k => $v) {
|
|
if (!in_array($k, $columns)) {
|
|
continue;
|
|
}
|
|
|
|
$model->setAttribute($k, $v);
|
|
}
|
|
|
|
return $model->save();
|
|
}
|
|
|
|
public function update($primaryKey, $data): bool
|
|
{
|
|
$columns = $this->getTableColumns();
|
|
$model = $this->query()->whereKey($primaryKey)->first();
|
|
|
|
if(isset($data['avatar'])){
|
|
$data['avatar'] = $this->saveImage('avatar', 'persons/avatar')[0] ?? '';
|
|
}
|
|
|
|
if(isset($data['house_building']))
|
|
{
|
|
$data['housing_estate_id'] = Keyword::where('id', $data['house_building'])->value('parent_id') ?:0;
|
|
$data['building_id'] = $data['house_building'];
|
|
}
|
|
|
|
foreach ($data as $k => $v) {
|
|
if (!in_array($k, $columns)) {
|
|
continue;
|
|
}
|
|
|
|
$model->setAttribute($k, $v);
|
|
}
|
|
|
|
return $model->save();
|
|
}
|
|
|
|
/**
|
|
* 软删除
|
|
*
|
|
* @param string $ids
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public function delete(string $ids): mixed
|
|
{
|
|
return $this->query()->whereIn($this->primaryKey(), explode(',', $ids))->update(['valid'=> 0]);
|
|
}
|
|
|
|
/**
|
|
* 分户
|
|
*
|
|
* @param int $masterId
|
|
* @param array $personArr
|
|
* @param array $extends
|
|
*
|
|
*/
|
|
public function splitMaster($masterId, $personArr = [], $extends)
|
|
{
|
|
$personList = collect($personArr);
|
|
$newMaster = $personList->first(function ($item) {
|
|
return isset($item['is_split']) && $item['is_split'] && isset($item['is_new_master']) && $item['is_new_master'];
|
|
});
|
|
if(empty($newMaster)){
|
|
return $this->setError('分户失败,未选择新户主');
|
|
}
|
|
try{
|
|
DB::beginTransaction();
|
|
$personChangeLogs = [];
|
|
//遍历分户成员情况, 并更新户主与户主关系
|
|
|
|
foreach($personList as $person){
|
|
if(!$person['is_split']){//是否参与分户
|
|
continue;
|
|
}
|
|
|
|
$changeMark = (isset($extends['splited_at']) ? $extends['splited_at'] : '某日'). '日,' .(isset($extends['split_reason']) ? ('因' .$extends['split_reason']) : '').'分户,';
|
|
if($newMaster['id'] == $person['id']){
|
|
$changeMark .= '成为新户主';
|
|
}else{
|
|
$changeMark .= '户主由【'.$person["master"]["name"].']变更为['.$newMaster["name"].'】,与户主关系更新为【'.$person['new_master_connect'].'】';
|
|
}
|
|
$personChangeLogs[] = [
|
|
'person_id' => $person['id'],
|
|
'type' => PersonChange::TYPE_SPLIT,
|
|
'changed_at' => isset($extends['splited_at']) ? $extends['splited_at'] : null,
|
|
'reason' => isset($extends['split_reason']) ? $extends['split_reason'] : null,
|
|
'old_master' => $person['master_id'],
|
|
'new_master' => $newMaster['id'],
|
|
'phone' => isset($extends['phone']) ? $extends['phone'] : null,
|
|
'extends_mark' => $changeMark,
|
|
'remark' => isset($extends['remark']) ? $extends['remark'] : null,
|
|
'created_at' => now(),
|
|
'updated_at' => now()
|
|
];
|
|
|
|
Person::where('id', $person['id'])->update([
|
|
'master_id' => $newMaster['id'],
|
|
'is_master' => $newMaster['id'] == $person['id'] ? true : false,
|
|
'master_connect' => (isset($person['new_master_connect']) && !empty($person['new_master_connect'])) ? $person['new_master_connect'] : ($newMaster['id'] == $person['id'] ? '户主':'')
|
|
]);
|
|
}
|
|
//批量插入人口变动记录
|
|
count($personChangeLogs) > 0 && PersonChange::insert($personChangeLogs);
|
|
|
|
DB::commit();
|
|
}catch(Throwable $th){
|
|
DB::rollBack();
|
|
report($th);
|
|
return $this->setError('系统错误,请刷新后重试');
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
/**
|
|
* 合户
|
|
* @param int $masterId
|
|
* @param int $toMasterId
|
|
* @param array $personArr
|
|
* @param array $extends
|
|
*/
|
|
public function mergeMaster($masterId, $toMasterId, $personArr = [], $extends)
|
|
{
|
|
if($masterId == $toMasterId){
|
|
return $this->setError('合并失败, 不能选择两个相同户主');
|
|
}
|
|
$newMaster = Person::where('id', $masterId)->first()->toArray();
|
|
try{
|
|
DB::beginTransaction();
|
|
$personChangeLogs = [];
|
|
//遍历分户成员情况, 并更合并户与新户主关系
|
|
foreach($personList as $person){
|
|
$changeMark = (isset($extends['merged_at']) ? $extends['merged_at'] : '某日'). '日,' .(isset($extends['merge_reason']) ? ('因' .$extends['merge_reason']) : '').'合户,';
|
|
if($person['is_master']){
|
|
$changeMark .= '与新户主关系更新为【'.$person['new_master_connect'].'】';
|
|
}else{
|
|
$changeMark .= '户主由【'.$person["master"]["name"].'】变更为【'.$newMaster["name"].'】,与新户主关系更新为【'.$person['new_master_connect'].'】';
|
|
}
|
|
$personChangeLogs[] = [
|
|
'person_id' => $person['id'],
|
|
'type' => PersonChange::TYPE_MERGE,
|
|
'changed_at' => isset($extends['merged_at']) ? $extends['merged_at'] : null,
|
|
'reason' => isset($extends['merge_reason']) ? $extends['merge_reason'] : null,
|
|
'old_master' => $person['master_id'],
|
|
'new_master' => $newMaster['id'],
|
|
'phone' => isset($extends['phone']) ? $extends['phone'] : null,
|
|
'extends_mark' => $changeMark,
|
|
'remark' => isset($extends['remark']) ? $extends['remark'] : null,
|
|
'created_at' => now(),
|
|
'updated_at' => now()
|
|
];
|
|
|
|
Person::where('id', $person['id'])->update([
|
|
'master_id' => $newMaster['id'],
|
|
'is_master' => $newMaster['id'] == $person['id'] ? true : false,
|
|
'master_connect' => isset($person['new_master_connect']) ? $person['new_master_connect'] : ''
|
|
]);
|
|
}
|
|
//批量插入人口变动记录
|
|
count($personChangeLogs) > 0 && PersonChange::insert($personChangeLogs);
|
|
|
|
DB::commit();
|
|
}catch(Throwable $th){
|
|
DB::rollBack();
|
|
report($th);
|
|
return $this->setError('系统错误,请刷新后重试');
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* 变更户主
|
|
*
|
|
* @param array $personArr
|
|
* @param array $extends
|
|
*
|
|
*/
|
|
public function editMaster($personArr = [], $extends)
|
|
{
|
|
$personList = collect($personArr);
|
|
$newMaster = $personList->first(function ($item) {
|
|
return isset($item['is_new_master']) && $item['is_new_master'];
|
|
});
|
|
if(empty($newMaster)){
|
|
return $this->setError('变更失败,未选择新户主');
|
|
}
|
|
try{
|
|
DB::beginTransaction();
|
|
$personChangeLogs = [];
|
|
//遍历分户成员情况, 并更新与新户主关系
|
|
foreach($personList as $person){
|
|
|
|
$changeMark = (isset($extends['editd_at']) ? $extends['editd_at'] : '某日'). '日,' .(isset($extends['edit_reason']) ? ('因' .$extends['edit_reason']) : '').'户主变更,';
|
|
if($person['is_master']){
|
|
$changeMark .= '与新户主关系更新为【'.(isset($person['new_master_connect']) ? $person['new_master_connect']:'').'】';
|
|
}elseif($person['is_new_master']){
|
|
$changeMark .= '成为户主';
|
|
}else{
|
|
$changeMark .= '户主由【'.$person["master"]["name"].'】变更为【'.$newMaster["name"].'】,与新户主关系更新为-'.$person['new_master_connect'];
|
|
}
|
|
$personChangeLogs[] = [
|
|
'person_id' => $person['id'],
|
|
'type' => PersonChange::TYPE_CHANGE,
|
|
'changed_at' => isset($extends['editd_at']) ? $extends['editd_at'] : null,
|
|
'reason' => isset($extends['edit_reason']) ? $extends['edit_reason'] : null,
|
|
'old_master' => $person['master_id'],
|
|
'new_master' => $newMaster['id'],
|
|
'phone' => isset($extends['edit_phone']) ? $extends['edit_phone'] : null,
|
|
'extends_mark' => $changeMark,
|
|
'remark' => isset($extends['edit_remark']) ? $extends['edit_remark'] : null,
|
|
'created_at' => now(),
|
|
'updated_at' => now()
|
|
];
|
|
|
|
Person::where('id', $person['id'])->update([
|
|
'master_id' => $newMaster['id'],
|
|
'is_master' => $newMaster['id'] == $person['id'] ? true : false,
|
|
'master_connect' => (isset($person['new_master_connect']) && !empty($person['new_master_connect'])) ? $person['new_master_connect'] : ($newMaster['id'] == $person['id'] ? '户主':'')
|
|
]);
|
|
}
|
|
//批量插入人口变动记录
|
|
count($personChangeLogs) > 0 && PersonChange::insert($personChangeLogs);
|
|
|
|
DB::commit();
|
|
}catch(Throwable $th){
|
|
DB::rollBack();
|
|
report($th);
|
|
return $this->setError('系统错误,请刷新后重试');
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* 迁移
|
|
*/
|
|
public function personMigrate($personId, $newMasterId, $newMasterConnect, $oldMasterArr = [], $extends)
|
|
{
|
|
$person = Person::find($personId);
|
|
|
|
if($person->master_id == $newMasterId){
|
|
return $this->setError('迁移失败, 迁移目前户主不能为当前户主');
|
|
}
|
|
|
|
$newMaster = Person::find($newMasterId);
|
|
if(! $newMaster?->is_master){
|
|
return $this->setError('迁移失败, 未选择新户主');
|
|
}
|
|
if(!empty($oldMasterArr)){
|
|
$oldPersonList = collect($oldMasterArr);
|
|
$oldNewMaster = $oldPersonList->first(function ($item) {
|
|
return isset($item['is_new_master']) && $item['is_new_master'];
|
|
});
|
|
if($oldPersonList->count() > 1 && empty($oldNewMaster)){
|
|
return $this->setError('迁移失败, 未选择原户新户主');
|
|
}
|
|
}
|
|
|
|
try{
|
|
DB::beginTransaction();
|
|
$personChangeLogs = [];
|
|
|
|
$changeMark = (isset($extends['migrated_at']) ? $extends['migrated_at'] : '某日'). '日,' .(isset($extends['migrate_reason']) ? ('因' .$extends['migrate_reason']) : '');
|
|
if($person->is_master){
|
|
$changeMark .= '迁移至户主【'.$person->master->name.'】下,与新户主关系更新为【'.$newMasterConnect.'】';
|
|
}else{
|
|
$changeMark .= '由户主【'.$person->master->name.'】迁移至新户主【'.$newMaster->name.'】下,与新户主关系更新为【'.$newMasterConnect.'】';
|
|
}
|
|
$personChangeLogs[] = [
|
|
'person_id' => $person->id,
|
|
'type' => PersonChange::TYPE_MIGRATE,
|
|
'changed_at' => isset($extends['migrated_at']) ? $extends['migrated_at'] : null,
|
|
'reason' => isset($extends['migrate_reason']) ? $extends['migrate_reason'] : null,
|
|
'old_master' => $person->master_id,
|
|
'new_master' => $newMaster->id,
|
|
'phone' => isset($extends['migrate_phone']) ? $extends['migrate_phone'] : null,
|
|
'extends_mark' => $changeMark,
|
|
'remark' => isset($extends['migrate_remark']) ? $extends['migrate_remark'] : null,
|
|
'created_at' => now(),
|
|
'updated_at' => now()
|
|
];
|
|
|
|
//如果迁移的是户主, 则更新原户内人口信息
|
|
if($person->is_master){
|
|
foreach($oldMasterArr as $oldPerson){
|
|
if($oldPerson['id'] == $person->id){
|
|
continue;
|
|
}
|
|
$changeMark = (isset($extends['migrated_at']) ? $extends['migrated_at'] : '某日'). '日,' .(isset($extends['migrate_reason']) ? ('因' .$extends['migrate_reason'].'导致') : '').'原户主【'.$person->name.'】迁移,';
|
|
if($oldPerson['is_new_master']){
|
|
$changeMark .= '成为户主';
|
|
}else{
|
|
$changeMark .= '户主由【'.$person->master->name.'】变更为【'.$oldNewMaster['name'].'】,与新户主关系更新为【'.$oldPerson['new_master_connect'].'】';
|
|
}
|
|
$personChangeLogs[] = [
|
|
'person_id' => $person['id'],
|
|
'type' => PersonChange::TYPE_CHANGE,
|
|
'changed_at' => isset($extends['migrated_at']) ? $extends['migrated_at'] : null,
|
|
'reason' => (isset($extends['migrate_reason']) ? $extends['migrate_reason'].'导致' : '').'户主迁移',
|
|
'old_master' => $person->master_id,
|
|
'new_master' => $oldNewMaster['id'],
|
|
'phone' => isset($extends['migrate_phone']) ? $extends['migrate_phone'] : null,
|
|
'extends_mark' => $changeMark,
|
|
'remark' => null,
|
|
'created_at' => now(),
|
|
'updated_at' => now()
|
|
];
|
|
|
|
Person::where('id', $oldPerson['id'])->update([
|
|
'master_id' => $oldNewMaster['id'],
|
|
'is_master' => $oldNewMaster['id'] == $oldPerson['id'] ? true : false,
|
|
'master_connect' => (isset($oldPerson['new_master_connect']) && !empty($oldPerson['new_master_connect'])) ? $oldPerson['new_master_connect'] : ($oldNewMaster['id'] == $oldPerson['id'] ? '户主':'')
|
|
]);
|
|
}
|
|
}
|
|
|
|
Person::where('id', $person->id)->update([
|
|
'is_master' => 0,
|
|
'master_id' => $newMaster->id,
|
|
'master_connect' => $newMasterConnect
|
|
]);
|
|
|
|
count($personChangeLogs) > 0 && PersonChange::insert($personChangeLogs);
|
|
|
|
DB::commit();
|
|
}catch(Throwable $th){
|
|
DB::rollBack();
|
|
report($th);
|
|
return $this->setError('系统错误,请刷新后重试');
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* 迁出
|
|
*/
|
|
public function personOut($personId, $oldMasterArr = [], $extends)
|
|
{
|
|
$person = Person::find($personId);
|
|
|
|
if(!empty($oldMasterArr)){
|
|
$oldPersonList = collect($oldMasterArr);
|
|
$oldNewMaster = $oldPersonList->first(function ($item) {
|
|
return isset($item['is_new_master']) && $item['is_new_master'];
|
|
});
|
|
if($oldPersonList->count() > 1 && empty($oldNewMaster)){
|
|
return $this->setError('迁出失败, 未选择原户新户主');
|
|
}
|
|
}
|
|
|
|
try{
|
|
DB::beginTransaction();
|
|
$personChangeLogs = [];
|
|
|
|
$changeMark = (isset($extends['out_at']) ? $extends['out_at'] : '某日'). '日,' .(isset($extends['out_reason']) ? ('因' .$extends['out_reason']) : '');
|
|
$changeMark .= '迁出至'.$extends['out_to_address'];
|
|
|
|
$personChangeLogs[] = [
|
|
'person_id' => $person->id,
|
|
'type' => PersonChange::TYPE_OUT,
|
|
'changed_at' => isset($extends['out_at']) ? $extends['out_at'] : null,
|
|
'reason' => isset($extends['out_reason']) ? $extends['out_reason'] : null,
|
|
'old_master' => $person->master_id,
|
|
'new_master' => isset($oldNewMaster) ? $oldNewMaster['id']:null,
|
|
'phone' => isset($extends['out_phone']) ? $extends['out_phone'] : null,
|
|
'extends' => json_encode([
|
|
'to_address' => isset($extends['out_to_address']) ? $extends['out_to_address'] : null
|
|
]),
|
|
'extends_mark' => $changeMark,
|
|
'remark' => isset($extends['out_remark']) ? $extends['out_remark'] : null,
|
|
'created_at' => now(),
|
|
'updated_at' => now()
|
|
];
|
|
//如果迁移的是户主, 则更新原户内人口信息
|
|
if($person->is_master){
|
|
foreach($oldMasterArr as $oldPerson){
|
|
if($oldPerson['id'] == $person->id){
|
|
continue;
|
|
}
|
|
$changeMark = (isset($extends['migrated_at']) ? $extends['migrated_at'] : '某日'). '日,' .(isset($extends['migrate_reason']) ? ('因' .$extends['migrate_reason'].'导致') : '').'原户主【'.$person->name.'】迁出本村,';
|
|
if($oldPerson['is_new_master']){
|
|
$changeMark .= '成为户主';
|
|
}else{
|
|
$changeMark .= '户主由【'.$person->master->name.'】变更为【'.$oldNewMaster['name'].'】,与新户主关系更新为【'.$oldPerson['new_master_connect'].'】';
|
|
}
|
|
$personChangeLogs[] = [
|
|
'person_id' => $person['id'],
|
|
'type' => PersonChange::TYPE_CHANGE,
|
|
'changed_at' => isset($extends['out_at']) ? $extends['out_at'] : null,
|
|
'reason' => (isset($extends['out_reason']) ? $extends['out_reason'].'导致' : '').'户主迁出本村',
|
|
'old_master' => $person->master_id,
|
|
'new_master' => $oldNewMaster['id'],
|
|
'extends' => null,
|
|
'phone' => isset($extends['out_phone']) ? $extends['out_phone'] : null,
|
|
'extends_mark' => $changeMark,
|
|
'remark' => null,
|
|
'created_at' => now(),
|
|
'updated_at' => now()
|
|
];
|
|
|
|
Person::where('id', $oldPerson['id'])->update([
|
|
'master_id' => $oldNewMaster['id'],
|
|
'is_master' => $oldNewMaster['id'] == $oldPerson['id'] ? true : false,
|
|
'master_connect' => (isset($oldPerson['new_master_connect']) && !empty($oldPerson['new_master_connect'])) ? $oldPerson['new_master_connect'] : ($oldNewMaster['id'] == $oldPerson['id'] ? '户主':'')
|
|
]);
|
|
}
|
|
}
|
|
|
|
Person::where('id', $person->id)->update([
|
|
'is_master' => 0,
|
|
'master_id' => null,
|
|
'master_connect' => null,
|
|
'housing_estate_id' => null,
|
|
'building_id' => null,
|
|
'house_number' => null,
|
|
'house_complete_address' => null,
|
|
'state' => 2,
|
|
]);
|
|
|
|
count($personChangeLogs) > 0 && PersonChange::insert($personChangeLogs);
|
|
|
|
DB::commit();
|
|
}catch(Throwable $th){
|
|
DB::rollBack();
|
|
report($th);
|
|
return $this->setError('系统错误,请刷新后重试');
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* 迁出
|
|
*/
|
|
public function personDie($personId, $oldMasterArr = [], $extends)
|
|
{
|
|
$person = Person::find($personId);
|
|
|
|
if(!empty($oldMasterArr)){
|
|
$oldPersonList = collect($oldMasterArr);
|
|
$oldNewMaster = $oldPersonList->first(function ($item) {
|
|
return isset($item['is_new_master']) && $item['is_new_master'];
|
|
});
|
|
if($oldPersonList->count() > 1 && empty($oldNewMaster)){
|
|
return $this->setError('记录失败, 未选择原户新户主');
|
|
}
|
|
}
|
|
|
|
try{
|
|
DB::beginTransaction();
|
|
$personChangeLogs = [];
|
|
|
|
$changeMark = (isset($extends['die_at']) ? $extends['die_at'] : '某日'). '日,' .(isset($extends['die_reason']) ? ($extends['die_reason']) : '去世');
|
|
|
|
$personChangeLogs[] = [
|
|
'person_id' => $person->id,
|
|
'type' => PersonChange::TYPE_DIE,
|
|
'changed_at' => isset($extends['die_at']) ? $extends['die_at'] : null,
|
|
'reason' => isset($extends['die_reason']) ? $extends['die_reason'] : null,
|
|
'old_master' => $person->master_id,
|
|
'new_master' => null,
|
|
'phone' => isset($extends['die_phone']) ? $extends['die_phone'] : null,
|
|
'extends_mark' => $changeMark,
|
|
'remark' => isset($extends['die_remark']) ? $extends['die_remark'] : null,
|
|
'created_at' => now(),
|
|
'updated_at' => now()
|
|
];
|
|
//如果死亡的是户主, 则更新原户内人口信息
|
|
if($person->is_master){
|
|
foreach($oldMasterArr as $oldPerson){
|
|
if($oldPerson['id'] == $person->id){
|
|
continue;
|
|
}
|
|
$changeMark = (isset($extends['die_at']) ? $extends['die_at'] : '某日'). '日,原户主' .(isset($extends['die_reason']) ? ($extends['die_reason']) : '去世');
|
|
if($oldPerson['is_new_master']){
|
|
$changeMark .= ',成为户主';
|
|
}else{
|
|
$changeMark .= ',户主由【'.$person->master->name.'】变更为【'.$oldNewMaster['name'].'】,与新户主关系更新为【'.$oldPerson['new_master_connect'].'】';
|
|
}
|
|
$personChangeLogs[] = [
|
|
'person_id' => $person['id'],
|
|
'type' => PersonChange::TYPE_CHANGE,
|
|
'changed_at' => isset($extends['out_at']) ? $extends['out_at'] : null,
|
|
'reason' => '原户主去世',
|
|
'old_master' => $person->master_id,
|
|
'new_master' => $oldNewMaster['id'],
|
|
'extends' => null,
|
|
'phone' => isset($extends['out_phone']) ? $extends['out_phone'] : null,
|
|
'extends_mark' => $changeMark,
|
|
'remark' => null,
|
|
'created_at' => now(),
|
|
'updated_at' => now()
|
|
];
|
|
|
|
Person::where('id', $oldPerson['id'])->update([
|
|
'master_id' => $oldNewMaster['id'],
|
|
'is_master' => $oldNewMaster['id'] == $oldPerson['id'] ? true : false,
|
|
'master_connect' => (isset($oldPerson['new_master_connect']) && !empty($oldPerson['new_master_connect'])) ? $oldPerson['new_master_connect'] : ($oldNewMaster['id'] == $oldPerson['id'] ? '户主':'')
|
|
]);
|
|
}
|
|
}
|
|
$personUpdate = [[
|
|
'domicile_code' => '99999999',
|
|
'is_master' => 0,
|
|
'state' => 2,
|
|
]];
|
|
if(isset($oldNewMaster)){
|
|
$personUpdate['master_id'] = $oldNewMaster['id'];
|
|
$personUpdate['master_connect'] = $oldNewMaster['new_master_connect'];
|
|
}
|
|
|
|
Person::where('id', $person->id)->update($personUpdate);
|
|
|
|
count($personChangeLogs) > 0 && PersonChange::insert($personChangeLogs);
|
|
|
|
DB::commit();
|
|
}catch(Throwable $th){
|
|
DB::rollBack();
|
|
report($th);
|
|
return $this->setError('系统错误,请刷新后重试');
|
|
}
|
|
|
|
return true;
|
|
}
|
|
} |