$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($other_contacts)){ foreach($other_contacts as $v){ CustomContacts::create([ 'custom_id' => $customRes->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 { Db::startTrans(); try { $custom_contacts_ids = CustomContacts::where('custom_id',$params['id'])->column('id'); $custom_follow_ids = CustomFollow::where('custom_id',$params['id'])->column('id'); Custom::destroy($params['id']); CustomContacts::destroy($custom_contacts_ids); CustomFollow::destroy($custom_follow_ids); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 获取详情 * @param $params * @return array * @author likeadmin * @date 2023/11/11 22:10 */ public static function detail($params): array { $custom = Custom::findOrEmpty($params['id']); $custom['org_name'] = $custom->org->name; $custom['dept_name'] = $custom->dept->name; $custom['custom_type_text'] = $custom->custom_type_text; $custom['credit_rating_text'] = $custom->credit_rating_text; $province = GeoProvince::field('province_name')->where('province_code',$custom['province'])->findOrEmpty(); $city = GeoCity::field('city_name')->where('city_code',$custom['city'])->findOrEmpty(); $area = GeoArea::field('area_name')->where('area_code',$custom['area'])->findOrEmpty(); $custom['province_name'] = $province['province_name']; $custom['city_name'] = $city['city_name']; $custom['area_name'] = $area['area_name']; unset($custom['org'],$custom['dept']); return $custom->toArray(); } }