| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 | <?phpnamespace App\Http\Controllers\Jkq;use App\Models\Ad;use App\Models\Article;use App\Models\SubsiteAd;use App\Repositories\MemberInfoRepository;use App\Services\Company\CompanyService;use App\Services\Company\JobsService;use Illuminate\Support\Facades\DB;class HomeController extends JkqBaseController{    private $memberInfoRepository;    private $companyService;    private $jobsService;    public function __construct(MemberInfoRepository $memberInfoRepository, CompanyService $companyService, JobsService $jobsService)    {        $this->memberInfoRepository = $memberInfoRepository;        $this->companyService       = $companyService;        $this->jobsService          = $jobsService;    }    /**     * 首页     */    public function index()    {        $return_data = [];        $subsite_id  = get_subsite_id();        //公司        $return_data['seatmeal_companies'] = $this->_dealCompany();        //个人登录        if (auth('web-member')->check()) {            $return_data['memberInfo'] = $this->memberInfoRepository->getMemberInfo(auth('web-member')->id());        }        //首页轮播图        $return_data['ad_list'] = [];        $ad_ids                 = SubsiteAd::where('subsite_id', $subsite_id)->get(['ad_id'])->pluck('ad_id')->toArray();        if (!empty($ad_ids)) {            $return_data['ad_list'] = Ad::whereIn('id', $ad_ids)->get();        }        //文章列表        $return_data['article_list'] = (new Article())->whereHas('subsites', function ($query) {            $query->where('subsite_id', get_subsite_id());        })->orderByRaw('list_order desc,created_at desc')->limit(10)->get();        //办理人数        $jkq_order = collect(DB::table('configs')->where('type_id','=',73)->get(['alias','value']))->keyBy('alias');        $return_data['jkq_order'] = $jkq_order;        return view('jkq.index', $return_data);    }    /**     * 首页公司信息     */    private function _dealCompany()    {        $seatmeal_companies = $this->companyService->getCompaniesByConditions(['subsite_id' => 14], 20);        $res                = [];        foreach ($seatmeal_companies as $v) {            $jobs = [];            if (!empty($v['jobs'])) {                foreach ($v['jobs'] as $k => $job) {                    if ($k == 4) {                        break;                    }                    $jobs[] = [                        'id'        => $job['id'],                        'jobs_name' => $job['jobs_name'],                        'amount'    => $job['amount'],                    ];                }            }            $res[] = [                'id'          => $v['id'],                'logo'        => $v['logo'],                'companyname' => $v['companyname'],                'jobs'        => $jobs,            ];        }        return json_encode($res, JSON_UNESCAPED_UNICODE + JSON_UNESCAPED_SLASHES);        //公司信息        $seatmeal_companies = [];        $seatmeal_arr       = ['14', '11', '26,27,28', '13,35,153', '25', '3,4,6,9,10,16,17,20,21,25,28,30,31,34,36,37,40,41,44,45,151,165,213,314'];        $company_ids        = [];        foreach ($seatmeal_arr as $key => $val) {            $temp_company = [];            $seat_company = $this->companyService->getSetmailCompanies(['trade' => $val], 4);            if (!empty($seat_company)) {                foreach ($seat_company as $v) {                    $temp_company[] = [                        'id'          => $v->id,                        'logo'        => $v->logo,                        'companyname' => $v->companyname,                    ];                    $company_ids[] = $v->id;                }            }            $seatmeal_companies[] = $temp_company;        }        //处理公司职位        if (!empty($company_ids)) {            //获取职位            $jobs_where   = [                ['valid', '=', 1],                ['display', '=', 1],            ];            $jobs_where[] = [function ($query) use ($company_ids) {                $query->whereIn('company_id', $company_ids);            }];            $jobs_display = config('aix.companyset.comset.show_set.jobs_display');            if ($jobs_display == 1) {                $jobs_where[] = ['audit', '=', '1'];            } else {                $jobs_where[] = ['audit', '<>', '3'];            }            $jobs = $this->jobsService->getOtherJobs($jobs_where, 4);            //组装数据            if (!empty($jobs)) {                $job_list = [];                foreach ($jobs as $v) {                    $job_list[$v['company_id']][] = [                        'id'        => $v->id,                        'jobs_name' => $v->jobs_name,                        'amount'    => $v->amount,                    ];                }                foreach ($seatmeal_companies as $k => $company_list) {                    foreach ($company_list as $key => $company) {                        if (!empty($job_list[$company['id']])) {                            $seatmeal_companies[$k][$key]['jobs'] = $job_list[$company['id']];                        } else {                            $seatmeal_companies[$k][$key]['jobs'] = [];                        }                    }                }            }        }        return json_encode($seatmeal_companies,JSON_UNESCAPED_UNICODE+JSON_UNESCAPED_SLASHES);    }}
 |