$params['org_id'], 'dept_id' => $params['dept_id'], 'name' => $params['name'], 'custom_type' => $params['custom_type'], 'phone' => $params['phone'], 'credit_rating' => $params['credit_rating'], 'province' => $params['province'] ?? 0, 'city' => $params['city'] ?? 0, 'area' => $params['area'] ?? 0, 'address' => $params['address'] ?? '', 'notes' => $params['notes'] ?? '', 'master_name' => $params['master_name'], 'master_position' => $params['master_position'] ?? '', 'master_phone' => $params['master_phone'] ?? '', 'master_email' => $params['master_email'] ?? '', 'master_telephone' => $params['master_telephone'] ?? '', 'master_notes' => $params['master_notes'] ?? '', 'company_name' => $params['company_name'] ?? '', 'company_tin' => $params['company_tin'] ?? '', 'bank_open_address' => $params['bank_open_address'] ?? '', 'company_telephone' => $params['company_telephone'] ?? '', 'bank_name' => $params['bank_name'] ?? '', 'bank_account' => $params['bank_account'] ?? '', 'add_user' => $admin_id, ]); if(!empty($params['other_contacts'])){ foreach($params['other_contacts'] as $v){ CustomContacts::create([ 'custom_id' => $res->id, 'name' => $v['name'], 'position' => $v['position'] ?? '', 'phone' => $v['phone'] ?? '', 'telephone' => $v['telephone'] ?? '', 'email' => $v['email'] ?? '', 'notes' => $v['notes'] ?? '', 'annex' => !empty($v['annex']) ? json_encode($v['annex']) : null, ]); } } 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/11 22:10 */ public static function edit(array $params): bool { Db::startTrans(); try { Custom::where('id', $params['id'])->update([ 'org_id' => $params['org_id'], 'dept_id' => $params['dept_id'], 'name' => $params['name'], 'custom_type' => $params['custom_type'], 'phone' => $params['phone'], 'credit_rating' => $params['credit_rating'], 'province' => $params['province'] ?? 0, 'city' => $params['city'] ?? 0, 'area' => $params['area'] ?? 0, 'address' => $params['address'] ?? '', 'notes' => $params['notes'] ?? '', 'master_name' => $params['master_name'] ?? '', 'master_position' => $params['master_position'] ?? '', 'master_phone' => $params['master_phone'] ?? '', 'master_email' => $params['master_email'] ?? '', 'master_telephone' => $params['master_telephone'] ?? '', 'master_notes' => $params['master_notes'] ?? '', 'company_name' => $params['company_name'] ?? '', 'company_tin' => $params['company_tin'] ?? '', 'bank_open_address' => $params['bank_open_address'] ?? '', 'company_telephone' => $params['company_telephone'] ?? '', 'bank_name' => $params['bank_name'] ?? '', 'bank_account' => $params['bank_account'] ?? '', '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/11 22:10 */ public static function delete(array $params): bool { $contact = CustomContacts::where('custom_id','in',$params['id'])->findOrEmpty(); if(!$contact->isEmpty()){ self::setError('此数据关联了联系人信息,需删除联系人信息'); return false; } $project = Project::where('custom_id','in',$params['id'])->findOrEmpty(); if(!$project->isEmpty()){ self::setError('此数据关联了项目信息,需删除项目信息'); return false; } return Custom::destroy($params['id']); } /** * @notes 获取详情 * @param $params * @return array * @author likeadmin * @date 2023/11/11 22:10 */ public static function detail($params): array { $data = Custom::findOrEmpty($params['id']); $org = Orgs::field('name')->where('id',$data['org_id'])->findOrEmpty(); $dept = Dept::field('name')->where('id',$data['dept_id'])->findOrEmpty(); $province = GeoProvince::field('province_name')->where('province_code',$data['province'])->findOrEmpty(); $city = GeoCity::field('city_name')->where('city_code',$data['city'])->findOrEmpty(); $area = GeoArea::field('area_name')->where('area_code',$data['area'])->findOrEmpty(); $data['org_name'] = $org['name']; $data['dept_name'] = $dept['name']; $data['province_name'] = $province['province_name']; $data['city_name'] = $city['city_name']; $data['area_name'] = $area['area_name']; $data['custom_type_text'] = $data->custom_type_text; $data['credit_rating_text'] = $data->credit_rating_text; unset($data['org'],$data['dept']); return $data->toArray(); } public static function datas() { return Custom::field(['id','name'])->order(['id' => 'desc'])->select()->each(function($data){ $data['projectinfo'] = 'ID:' . $data['id'] . ' / 名称:' . $data['name']; })->toArray(); } }