123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- <?php
- namespace 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();
- }
- }
|