find(); // if (!empty($exist)) { // throw new ValidateException('该账号已经注册过企业'); // } $level_one = $params['contract']['party_a'] ?? 0; $arr=[ 'company_name' => $params['company_name'], 'organization_code' => $params['organization_code'], 'province' => $params['province'], 'city' => $params['city'], 'area' => $params['area'], 'street' => $params['street'], 'address' => $params['address'], 'company_type' => $params['company_type'], 'master_name' => $params['master_name'], 'master_position' => $params['master_position'], 'master_phone' => $params['master_phone'], 'master_email' => $params['master_email'], 'other_contacts' => $params['other_contacts'], 'area_manager' => $params['area_manager'] ?? 0, 'qualification' => $params['qualification'], 'admin_id' => 0, 'level_one' => $level_one, ]; $data = Company::create($arr); $passwordSalt = Config::get('project.unique_identification'); $defaultAvatar = config('project.default_image.admin_avatar'); $admin=$arr; $admin['id_card']=$params['id_card']; $admin['area_manager']=$params['area_manager']; $admin['sex']=$params['sex']; $admin['name']=$params['master_name']; $admin['account']=$params['master_phone']; $admin['avatar'] = !empty($params['avatar']) ? FileService::setFileUrl($params['avatar']) : $defaultAvatar; $admin['phone']=$params['master_phone']; $admin['password'] = create_password(123456, $passwordSalt); $admin_id=Admin::strict(false)->insertGetId($admin); $userSn = User::createUserSn(); $admin['admin_id']=$admin_id; $admin['sn']=$userSn; $admin['sechannel']=4; $admin['company_id']=$data['id']; $admin['real_name']=$params['master_name']; $admin['nickname']=$params['master_name']; $admin['mobile']=$params['master_phone']; $admin['phone']=$params['master_phone']; $user_id=User::strict(false)->insertGetId($admin); Company::where('id',$data['id'])->update(['admin_id'=>$admin_id,'user_id'=>$user_id]); // if ($level_one > 0) { // $contractId = self::contract($data['id'], $params); // } 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/07/15 14:43 */ public static function edit(array $params): bool { Db::startTrans(); try { $arr=[ 'company_name' => $params['company_name'], 'organization_code' => $params['organization_code'], 'province' => $params['province'], 'city' => $params['city'], 'area' => $params['area'], 'street' => $params['street'], 'village' => $params['village'], 'brigade' => $params['brigade'], 'address' => $params['address'], 'company_type' => $params['company_type'], 'master_name' => $params['master_name'], 'master_position' => $params['master_position'], 'master_phone' => $params['master_phone'], 'master_email' => $params['master_email'], 'other_contacts' => $params['other_contacts'], 'area_manager' => $params['area_manager'] ?? 0, 'qualification' => $params['qualification'], 'level_one' => $params['contract']['party_a'] ?? 0, ]; $defaultAvatar = config('project.default_image.admin_avatar'); $admin=$arr; $account=$params['master_phone']; $admin['id_card']=$params['id_card']; $admin['area_manager']=$params['area_manager']; $admin['sex']=$params['sex']; $admin['name']=$params['master_name']; $admin['account']=$params['master_phone']; $admin['avatar'] = !empty($params['avatar']) ? FileService::setFileUrl($params['avatar']) : $defaultAvatar; $admin['phone']=$params['master_phone']; Admin::strict(false)->where('account',$account)->update($admin); $admin_id=Admin::where('account',$account)->value('id'); $user_id=User::where('account',$account)->value('id'); $arr['admin_id']=$admin_id; $arr['user_id']=$user_id; Company::where('id', $params['id'])->update($arr); $admin['admin_id']=$admin_id; $admin['sechannel']=4; // $admin['company_id']=$data['id']; $admin['real_name']=$params['master_name']; $admin['nickname']=$params['master_name']; $admin['mobile']=$params['master_phone']; $admin['phone']=$params['master_phone']; User::strict(false)->where('account',$account)->update($admin); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage(), $e->getFile()); return false; } } /** * @notes 删除 * @param array $params * @return bool * @author likeadmin * @date 2023/07/15 14:43 */ public static function delete(array $params): bool { return Company::destroy($params['id']); } /** * @notes 获取详情 * @param $params * @return array * @author likeadmin * @date 2023/07/15 14:43 */ public static function detail($params): array { $data = Company::findOrEmpty($params['id'])->toArray(); if ($data) { $data['other_contacts'] = json_decode($data['other_contacts'], true); $data['qualification'] = json_decode($data['qualification'], true); if($data['qualification'] && isset($data['qualification']['other_qualifications'])){ $data['qualification']['other_qualifications']=json_decode($data['qualification']['other_qualifications'],true); } $find= Admin::where('id', $data['admin_id'])->field('avatar,id_card')->find(); if($find){ $data['avatar']=$find['avatar']; $data['id_card']=$find['id_card']; }else{ $data['avatar']=''; $data['id_card']=''; } $data['area_manager_name'] = Db::name('admin')->where('id', $data['area_manager'])->value('name'); $data['contract'] = Contract::where(['party_b' => $data['id']])->with(['party_a_info', 'contractType'])->find(); } return $data; } public static function contract($companyId, $params) { $model = Contract::where(['party_b' => $companyId])->find(); if (empty($model)) { $model = new Contract(); $model->contract_no = time(); $model->create_time = time(); $model->type = 1; } $model->update_time = time(); $model->party_a = $params['contract']['party_a'] ?? 0; $model->contract_type = $params['contract']['contract_type'] ?? 0; $model->file = $params['contract']['file'] ?? ''; $model->party_b = $companyId; $model->save(); return $model->id; } public static function getAllCompanyIds() { $companyId = request()->adminInfo['company_id'] ?? 0; $companyIds[] = $companyId; $companies = loopGetChild(Company::class, $companyId, 'level_one', 'id,level_one'); if (!empty($companies)) { $companyIds = array_merge(array_column($companies, 'id'), $companyIds); } return array_filter($companyIds); } }