| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 | <?phpnamespace App\Repositories;use App\Models\Category;use Prettus\Repository\Eloquent\BaseRepository;use Prettus\Repository\Criteria\RequestCriteria;use Illuminate\Support\Facades\Cache;/** * Class MemberRepositoryEloquent. * * @package namespace App\Repositories; */class CategoryRepository extends BaseRepository{    /**     * Specify Model class name     *     * @return string     */    public function model()    {        return Category::class;    }    /**     * Boot up the repository, pushing criteria     */    public function boot()    {        $this->pushCriteria(app(RequestCriteria::class));    }    /**     * @param $id     * @return mixed     */    public function getCategory($id)    {        return $this->model->find($id);    }    public function getCategoryInfo($Groups_arr)    {        return $this->model->whereIn('alias', $Groups_arr)->select(['id','alias', 'demand'])->get()->toArray();    }    public function getManyCategory($id)    {        return $this->model->whereIn('id', $id)->orderBy(\DB::raw('FIND_IN_SET(id, "' . implode(",", $id) . '"' . ")"))->get();    }    public function getCategoriess()    {        //获取所有其它分类信息        $category =  Cache::get('other_categories');        if ($category === null) {            $categoryData = $this->model->select(array('id','alias','demand','category_name'))->orderBy('order', 'desc')->orderBy('id', 'ASC')->get()->toArray();            foreach ($categoryData as $key => $val) {                //$category[$val['alias']][$val['id']] = $val['demand'];                $category[$val['alias']][$val['id']] = $val;            }            if (array_key_exists('AIX_wage', $category)) {                foreach ($category['AIX_wage'] as $key => $val) {                    if (preg_match_all('(\d+)', $val['demand'], $reg)) {                        $reg = $reg[0];                        $min = $reg[0]%1000==0?(($reg[0]/1000).'K'):(round($reg[0]/1000, 1).'K');                        if (count($reg)>1) {                            $max = $reg[1]?($reg[1]%1000==0?(($reg[1]/1000).'K'):(round($reg[1]/1000, 1).'K')):'';                        } else {                            $max = '';                        }                        $max_k = $max ? '~'.$max :'以上';                        $category['AIX_wage_k'][$key] = $min.$max_k.'/月';                        if (config('aix.system.site_other.site_other.site_salary') == 1) {                            $minwage = $min;                            $maxwage = $max;                        } elseif (config('aix.system.site_other.site_other.site_salary') == 2) {                            if ($reg[0]>=10000) {                                if ($reg[0]%10000==0) {                                    $minwage = ($reg[0] / 10000) . '万';                                } else {                                    $minwage = round($reg[0]/10000, 1);                                    $minwage = strpos($minwage, '.') ? str_replace('.', '万', $minwage) : $minwage . '万';                                }                            } else {                                if ($reg[0]%1000==0) {                                    $minwage = ($reg[0]/1000).'千';                                } else {                                    $minwage = round($reg[0]/1000, 1);                                    $minwage = strpos($minwage, '.') ? str_replace('.', '千', $minwage) : $minwage . '千';                                }                            }                            if (count($reg)>1 && $reg[1] >= 10000) {                                if ($reg[1]%10000==0) {                                    $maxwage = ($reg[1]/10000).'万';                                } else {                                    $maxwage = round($reg[1]/10000, 1);                                    $maxwage = strpos($maxwage, '.') ? str_replace('.', '万', $maxwage) : $maxwage . '万';                                }                            } elseif (count($reg)>1 && $reg[1]) {                                if ($reg[1]%1000==0) {                                    $maxwage = ($reg[1]/1000).'千';                                } else {                                    $maxwage = round($reg[1]/1000, 1);                                    $maxwage = strpos($maxwage, '.') ? str_replace('.', '千', $maxwage) : $maxwage . '千';                                }                            } else {                                $maxwage = '';                            }                        }                        $maxwage = $maxwage ? '~'.$maxwage :'以上';                        $category['AIX_wage'][$key]['demand'] = $minwage.$maxwage.'/月';                    }                }            }            Cache::put('other_categories', $category, '86400');        }        return $category;    }    public function getCategories()    {        //获取所有其它分类信息        $category =  Cache::get('other_categories');        if ($category === null) {            $categoryData = $this->model->select(array('id','alias','demand','category_name'))->orderBy('order', 'desc')->orderBy('id', 'ASC')->get()->toArray();            foreach ($categoryData as $key => $val) {                $category[$val['alias']][$val['id']] = $val;            }            if (array_key_exists('AIX_wage', $category)) {                foreach ($category['AIX_wage'] as $key => $val) {                    $category['AIX_wage'][$key]['origin_demand'] = $val['demand'];                    if (preg_match_all('(\d+)', $val['demand'], $reg)) {                        $reg = $reg[0];                        $min = $reg[0]%1000==0?(($reg[0]/1000).'K'):(round($reg[0]/1000, 1).'K');                        if (count($reg)>1) {                            $max = $reg[1]?($reg[1]%1000==0?(($reg[1]/1000).'K'):(round($reg[1]/1000, 1).'K')):'';                        } else {                            $max = '';                        }                        $max_k = $max ? '~'.$max :'以上';                        $category['AIX_wage_k'][$key] = $min.$max_k.'/月';                        $category['AIX_wage'][$key]['k_demand'] = $min.$max_k.'/月';                        //处理薪资单位是千的情况                        if ($reg[0]>=10000) {                            if ($reg[0]%10000==0) {                                $minwage = ($reg[0] / 10000) . '万';                            } else {                                $minwage = round($reg[0]/10000, 1);                                $minwage = strpos($minwage, '.') ? str_replace('.', '万', $minwage) : $minwage . '万';                            }                        } else {                            if ($reg[0]%1000==0) {                                $minwage = ($reg[0]/1000).'千';                            } else {                                $minwage = round($reg[0]/1000, 1);                                $minwage = strpos($minwage, '.') ? str_replace('.', '千', $minwage) : $minwage . '千';                            }                        }                        if (count($reg)>1 && $reg[1] >= 10000) {                            if ($reg[1]%10000==0) {                                $maxwage = ($reg[1]/10000).'万';                            } else {                                $maxwage = round($reg[1]/10000, 1);                                $maxwage = strpos($maxwage, '.') ? str_replace('.', '万', $maxwage) : $maxwage . '万';                            }                        } elseif (count($reg)>1 && $reg[1]) {                            if ($reg[1]%1000==0) {                                $maxwage = ($reg[1]/1000).'千';                            } else {                                $maxwage = round($reg[1]/1000, 1);                                $maxwage = strpos($maxwage, '.') ? str_replace('.', '千', $maxwage) : $maxwage . '千';                            }                        } else {                            $maxwage = '';                        }                    }                    $maxwage = $maxwage ? '~'.$maxwage :'以上';                    $category['AIX_wage_c'][$key] = $minwage.$maxwage.'/月';                    $category['AIX_wage'][$key]['c_demand'] = $minwage.$maxwage.'/月';                    if (config('aix.system.site_other.site_other.site_salary') == 1) {                        $minwage = $min;                        $maxwage = $max;                    } elseif (config('aix.system.site_other.site_other.site_salary') == 2) {                        if ($reg[0]>=10000) {                            if ($reg[0]%10000==0) {                                $minwage = ($reg[0] / 10000) . '万';                            } else {                                $minwage = round($reg[0]/10000, 1);                                $minwage = strpos($minwage, '.') ? str_replace('.', '万', $minwage) : $minwage . '万';                            }                        } else {                            if ($reg[0]%1000==0) {                                $minwage = ($reg[0]/1000).'千';                            } else {                                $minwage = round($reg[0]/1000, 1);                                $minwage = strpos($minwage, '.') ? str_replace('.', '千', $minwage) : $minwage . '千';                            }                        }                        if (count($reg)>1 && $reg[1] >= 10000) {                            if ($reg[1]%10000==0) {                                $maxwage = ($reg[1]/10000).'万';                            } else {                                $maxwage = round($reg[1]/10000, 1);                                $maxwage = strpos($maxwage, '.') ? str_replace('.', '万', $maxwage) : $maxwage . '万';                            }                        } elseif (count($reg)>1 && $reg[1]) {                            if ($reg[1]%1000==0) {                                $maxwage = ($reg[1]/1000).'千';                            } else {                                $maxwage = round($reg[1]/1000, 1);                                $maxwage = strpos($maxwage, '.') ? str_replace('.', '千', $maxwage) : $maxwage . '千';                            }                        } else {                            $maxwage = '';                        }                    }                    $maxwage = $maxwage ? '~'.$maxwage :'以上';                    $category['AIX_wage'][$key]['demand'] = $minwage.$maxwage.'/月';                }            }            Cache::put('other_categories', $category, '86400');        }        return $category;    }    public function getOriginCategory($where)    {        return $this->model->where($where)->first();    }    public function getCategoryByAlias($data)    {        return $this->model->where($data)->get();    }}
 |