getPage(); $myCompany = Company::findOrEmpty($this->userInfo['company_id'])->toArray(); $companyIds = Contract::where('party_a', $myCompany['id'])->column('party_b'); $query = Company::whereIn('id', $companyIds)->where('status', 1)->append(['province_name', 'city_name', 'area_name', 'street_name', 'village_name', 'brigade_name', 'area_manager_name']); $count = $query->count(); $companies = $query->page($page)->limit($limit)->select()->each(function ($company) { $company['other_contacts'] = json_decode($company['other_contacts'], true); $company['qualification'] = $company['qualification'] != null ? json_decode($company['qualification'], true) : ''; $company['company_type_name'] = Db::name('dict_data')->where('id', $company['company_type'])->value('name'); })->toArray(); return $this->success('', ['count' => $count, 'data' => $companies]); } /** * 未签约 */ public function unsigned() { $myCompany = Company::findOrEmpty($this->userInfo['company_id'])->toArray(); $query = Company::where(['street' => $myCompany['street'], 'company_type' => [17, 18], 'is_contract' => 0])->where('id', '<>', $this->userInfo['company_id']); $count = $query->count(); $companies = $query->field('*,street street_name,area area_name,city city_name,province province_name,village village_name,brigade brigade_name')->select()->toArray(); return $this->success('', ['count' => $count, 'data' => $companies]); } public function view() { $id = $this->request->param('id', 0); if (empty($id)) { $query = Company::find($this->userInfo['company_id']); } else { $query = Company::find($id); } if (!$query) { return $this->fail('公司不存在'); } $company = $query->append(['province_name', 'city_name', 'area_name', 'street_name', 'area_manager_name', 'village_name', 'brigade_name'])->toArray(); $company['other_contacts'] = json_decode($company['other_contacts'], true); $company['qualification'] = $company['qualification'] != null ? json_decode($company['qualification'], true) : ''; if ($company['qualification'] && isset($company['qualification']['other_qualifications'])) { $company['qualification']['other_qualifications'] = json_decode($company['qualification']['other_qualifications'], true); } $contract = Contract::where('party_b', $id)->find(); if (!empty($contract)) { if ($contract['type'] == 2) { $contract['party_b_name'] = User::where('id', $contract['party_b'])->value('nickname'); } else { $contract['party_b_name'] = Db::name('company')->where('id', $contract['party_b'])->value('company_name'); } $contract['party_a_name'] = Db::name('company')->where('id', $contract['party_a'])->value('company_name'); $contract['contract_type_name'] = Db::name('dict_data')->where('id', $contract['contract_type'])->value('name'); } $company['company_type_name'] = Db::name('dict_data')->where('id', $company['company_type'])->value('name'); $company['day_money_count'] = UserAccountLog::where(['company_id' => $company['id'], 'action' => 1])->whereDay('create_time')->sum('change_amount'); // $users = Admin::where('id', $company['admin_id'])->field('id,name,account,phone,qualification')->select()->toArray(); // foreach ($users as &$user) { // $user['is_main'] = $user['id'] == $company['admin_id'] ? 1 : 0; // $user['qualification'] = $user['qualification'] != null ? json_decode($user['qualification'], true) : []; // unset($user['role_id'], $user['dept_id'], $user['jobs_id'], $user['id']); // } return $this->success('success', ['contract' => $contract ?? [], 'company' => $company]); } public function areaManager() { [$page, $limit] = $this->getPage(); $company = Company::find($this->userInfo['company_id']); $query = Admin::where('id', $company['area_manager']); $count = $query->count(); $data = $query->page($page)->limit($limit)->append(['province_name', 'city_name', 'area_name', 'street_name'])->field('id,name,account,avatar,province,city,area,street')->select()->toArray(); return $this->success('success', ['count' => $count, 'data' => $data]); } /** * 公司人员 */ public function users() { [$page, $limit] = $this->getPage(); $params = $this->request->param(); // if($companyId==0){ // $companyId=$this->userInfo['company_id']; // } $wehre[] = ['company_id', '=', $this->userInfo['company_id']]; if (isset($params['is_captain']) && $params['is_captain'] == 1) { $wehre[] = ['is_captain', '=', 1]; } $query = User::where($wehre); $count = $query->count(); $users = $query->order('id', 'desc')->page($page)->limit($limit)->with(['company' => function ($query) { $query->field('id,company_name'); }])->append(['province_name', 'city_name', 'area_name', 'street_name', 'village_name', 'brigade_name']) ->field('id,avatar,real_name,account,mobile as phone,province,city,area,street,village,brigade,company_id,create_time,qualification,nickname,is_contract,is_captain') ->select()->each(function ($item, $key) { if ($item['qualification'] != '') { $item['qualification'] = json_decode($item['qualification'], true); } if ($item['is_captain'] == 1) { $item['informationg_count'] = UserInformationg::where(['create_user_id' => $item['id'], 'status' => 1])->count(); $item['informationg_update_count'] = UserInformationg::where(['create_user_id' => $item['id'], 'status' => 1, 'is_update' => 1])->count(); $time = UserInformationgDemand::order('update_time', 'desc')->value('update_time'); if ($time) { $item['informationg_update_time'] = date('Y-m-d H:i:s', $time); } else { $item['informationg_update_time'] = ''; } } }); return $this->success('success', ['count' => $count, 'data' => $users]); } public function user($id) { $query = User::where('id', $id); $user = $query->with(['company' => function ($query) { $query->field('id,company_name'); }])->field('id,sex,avatar,nickname name,account,mobile phone,id_card,qualification,province,province province_name,city,city city_name,area,area area_name,street,street street_name,village,village village_name,brigade,brigade brigade_name, is_contract,company_id,is_captain')->find()->toArray(); $contract = Contract::where("type", 2)->where('party_b', $id)->append(['contract_type_name'])->find(); $user['contract'] = $contract; // $roleIds = AdminRole::where('admin_id', $user['id'])->column('role_id'); // $user['roles'] = SystemRole::whereIn('id', $roleIds)->column('name'); $user['qualification'] = $user['qualification'] != null ? json_decode($user['qualification'], true) : []; unset($user['role_id'], $user['dept_id'], $user['jobs_id']); return $this->success('success', $user); } //**发起合同 */ public function initiate_contract() { $params = $this->request->param(); $params['party_a'] = $this->userInfo['company_id']; $area_manager = Company::where('id', $params['party_a'])->value('area_manager'); $params['area_manager'] = $area_manager; $params['type'] = 1; $result = ContractLogic::initiate_contract($params); if ($result == true) { return $this->success('发起成功,等待平台风控部上传合同'); } return $this->fail(ContractLogic::getError()); } // /**发送合同 */ public function Draftingcontracts() { $params = $this->request->param(); $result = ContractLogic::Draftingcontracts($params, 1); if ($result == true) { return $this->success('生成合同成功'); } return $this->fail(ContractLogic::getError()); } //**发送短信 */ public function postsms() { $params = $this->request->param(); $id = Contract::where('party_b', $params['id'])->value('id'); $res = ContractLogic::postsms(['id' => $id]); if ($res == true) { return $this->success('发送成功', [], 1, 1); } else { return $this->fail(ContractLogic::getError()); } } /** * 股金管理 */ public function shareholder_info() { // $params = $this->request->param(); $find = Company::where('id', $this->userInfo['company_id'])->field('shareholder_money,village')->find()->toArray(); $find['is_contract'] = 0; $find['check_status'] = 0; if ($find) { $contract = Contract::where('party_b', $this->userInfo['company_id'])->where('contract_type', 40)->field('contract_url,create_time,check_status,status')->find(); if ($contract) { $find['contract_url'] = 'https://worker-task.lihaink.cn' . $contract['contract_url']; $find['contract_time'] = $contract['create_time']; $find['check_status'] = $contract['check_status']; if ($contract['status'] == 1) { $find['is_contract'] = 1; } } $village_info = Company::where('village', $find['village'])->where('company_type', 17)->find(); if ($village_info) { $find['is_amount_turned'] = 1; } else { $find['is_amount_turned'] = 0; } } else { $find['contract_url'] = ''; $find['contract_time'] = ''; $find['is_amount_turned'] = 0; } return $this->success('ok', $find); } //**发起股金合同 */ public function initiate_shareholder_contract() { $params = $this->request->param(); $params['party_b'] = $this->userInfo['company_id']; if(!$params['party_b']){ return $this->fail('请先绑定公司'); } $Company = Company::where('id', $this->userInfo['company_id'])->where('company_type',18)->field('shareholder_money,village')->find(); if($Company){ $params['party_a'] = Company::where('village', $Company['village'])->where('company_type', 17)->value('id'); }else{ return $this->fail('您不是小组公司'); } if(!isset($params['party_a'])||$params['party_a']==0){ return $this->fail('甲方公司不存在'); } $area_manager = Company::where('id', $params['party_b'])->value('area_manager'); $params['area_manager'] = $area_manager; $params['type'] = 1; $result = ContractLogic::initiate_contract($params); if ($result == true) { return $this->success('发起成功,等待平台风控部上传合同'); } return $this->fail(ContractLogic::getError()); } public function pay_share_capital() { // return } }