This commit is contained in:
wangjinlei
2026-04-16 13:30:31 +08:00
parent a2338340f6
commit ae221e6be6
8 changed files with 838 additions and 91 deletions

View File

@@ -261,7 +261,6 @@ class ExpertManage extends Base
{
$data = $this->request->post();
$expertId = intval(isset($data['expert_id']) ? $data['expert_id'] : 0);
$majorId = intval(isset($data['major_id']) ? $data['major_id'] : 0);
$field = trim(isset($data['field']) ? $data['field'] : '');
if (!$expertId || $field === '') {
@@ -279,7 +278,6 @@ class ExpertManage extends Base
$id = Db::name('expert_field')->insertGetId([
'expert_id' => $expertId,
'major_id' => $majorId,
'field' => $field,
'state' => 0,
]);
@@ -297,7 +295,16 @@ class ExpertManage extends Base
return jsonError('expert_field_id is required');
}
Db::name('expert_field')->where('expert_field_id', $efId)->update(['state' => 1]);
// 若 t_expert_field 同时存“领域行 + 论文行”,删除领域时应同时软删该领域下所有论文行
$row = Db::name('expert_field')->where('expert_field_id', $efId)->find();
if ($row) {
Db::name('expert_field')
->where('expert_id', intval($row['expert_id']))
->where('field', (string)$row['field'])
->update(['state' => 1]);
} else {
Db::name('expert_field')->where('expert_field_id', $efId)->update(['state' => 1]);
}
return jsonSuccess([]);
}
@@ -459,7 +466,7 @@ class ExpertManage extends Base
/**
* 批量保存专家领域
* @param int $expertId
* @param array $fields [{"major_id":1,"field":"xxx"}, ...]
* @param array $fields [{"field":"xxx"}, ...]
*/
private function saveExpertFields($expertId, $fields)
{
@@ -471,7 +478,6 @@ class ExpertManage extends Base
}
foreach ($fields as $f) {
$majorId = intval(isset($f['major_id']) ? $f['major_id'] : 0);
$fieldName = trim(isset($f['field']) ? $f['field'] : '');
if ($fieldName === '') continue;
@@ -484,7 +490,6 @@ class ExpertManage extends Base
Db::name('expert_field')->insert([
'expert_id' => $expertId,
'major_id' => $majorId,
'field' => $fieldName,
'state' => 0,
]);