$params['org_id'], 'dept_id' => $params['dept_id'], 'custom_id' => $params['custom_id'], 'name' => $params['name'], 'project_type' => $params['project_type'], 'project_code' => data_unique_code('P'), 'project_content' => $params['project_content'] ?? 0, 'project_estimation' => $params['project_estimation'] ?? 0, 'project_address' => $params['project_address'] ?? '', 'estimated_construction' => $params['estimated_construction'] ?? '', 'bidding_time' => !empty($params['bidding_time']) ? strtotime($params['bidding_time']) : 0, 'bidding_method' => $params['bidding_method'] ?? 0, 'contacts' => $params['contacts'] ?? '', 'position' => $params['position'] ?? '', 'telephone' => $params['telephone'] ?? '', 'department' => $params['department'] ?? '', 'person' => $params['person'] ?? '', 'relationship' => $params['relationship'] ?? 0, 'discovery_time' => strtotime($params['discovery_time']), 'information_sources' => $params['information_sources'], 'competitor' => $params['competitor'] ?? '', 'construction_funds_sources' => $params['construction_funds_sources'] ?? 0, 'construction_payment_method' => $params['construction_payment_method'] ?? '', 'construction_financial_status' => $params['construction_financial_status'] ?? 0, 'construction_recognition' => $params['construction_recognition'] ?? 0, 'my_construction_recognition' => $params['my_construction_recognition'] ?? 0, 'strategic_significance' => $params['strategic_significance'] ?? 0, 'industry' => $params['industry'] ?? 0, 'unit_nature' => $params['unit_nature'] ?? 0, 'annex' => $params['annex'] ?? null, 'status' => 0, 'is_budget' => 0, 'add_user' => $adminId ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 编辑 * @param array $params * @return bool * @author likeadmin * @date 2023/11/12 14:30 */ public static function edit(array $params): bool { Db::startTrans(); try { Project::where('id', $params['id'])->update([ 'org_id' => $params['org_id'], 'dept_id' => $params['dept_id'], 'custom_id' => $params['custom_id'], 'name' => $params['name'], 'project_type' => $params['project_type'], 'project_code' => data_unique_code('P'), 'project_content' => $params['project_content'] ?? 0, 'project_estimation' => $params['project_estimation'] ?? 0, 'project_address' => $params['project_address'] ?? '', 'estimated_construction' => $params['estimated_construction'] ?? '', 'bidding_time' => !empty($params['bidding_time']) ? strtotime($params['bidding_time']) : 0, 'bidding_method' => $params['bidding_method'] ?? 0, 'contacts' => $params['contacts'] ?? '', 'position' => $params['position'] ?? '', 'telephone' => $params['telephone'] ?? '', 'department' => $params['department'] ?? '', 'person' => $params['person'] ?? '', 'relationship' => $params['relationship'] ?? 0, 'discovery_time' => strtotime($params['discovery_time']), 'information_sources' => $params['information_sources'], 'competitor' => $params['competitor'] ?? '', 'construction_funds_sources' => $params['construction_funds_sources'] ?? 0, 'construction_payment_method' => $params['construction_payment_method'] ?? '', 'construction_financial_status' => $params['construction_financial_status'] ?? 0, 'construction_recognition' => $params['construction_recognition'] ?? 0, 'my_construction_recognition' => $params['my_construction_recognition'] ?? 0, 'strategic_significance' => $params['strategic_significance'] ?? 0, 'industry' => $params['industry'] ?? 0, 'unit_nature' => $params['unit_nature'] ?? 0, 'annex' => $params['annex'] ?? null, 'update_time' => time(), ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 删除 * @param array $params * @return bool * @author likeadmin * @date 2023/11/12 14:30 */ public static function delete(array $params): bool { return Project::destroy($params['id']); } /** * @notes 获取详情 * @param $params * @return array * @author likeadmin * @date 2023/11/12 14:30 */ public static function detail($params): array { $data = Project::findOrEmpty($params['id']); $org = Orgs::field('name')->where('id',$data['org_id'])->findOrEmpty(); $dept = Dept::field('name')->where('id',$data['dept_id'])->findOrEmpty(); $projectType = ProjectTypeSet::field('name')->where('id',$data['project_type'])->findOrEmpty(); $custom = Custom::field('name')->where('id',$data['custom_id'])->findOrEmpty(); $data['org_name'] = $org['name']; $data['dept_name'] = $dept['name']; $data['custom_name'] = $custom['name']; $data['project_type_name'] = $projectType['name']; $data['status_text'] = $data->status_text; $data['project_content_text'] = $data->project_content_text; $data['bidding_method_text'] = $data->bidding_method_text; $data['relationship_text'] = $data->relationship_text; $data['information_sources_text'] = $data->information_sources_text; $data['construction_funds_sources_text'] = $data->construction_funds_sources_text; $data['construction_financial_status_text'] = $data->construction_financial_status_text; $data['construction_recognition_text'] = $data->construction_recognition_text; $data['my_construction_recognition_text'] = $data->my_construction_recognition_text; $data['strategic_significance_text'] = $data->strategic_significance_text; $data['industry_text'] = $data->industry_text; $data['unit_nature_text'] = $data->unit_nature_text; return $data->toArray(); } }