CategoryRepository.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. <?php
  2. namespace App\Repositories;
  3. use App\Models\Category;
  4. use Prettus\Repository\Eloquent\BaseRepository;
  5. use Prettus\Repository\Criteria\RequestCriteria;
  6. use Illuminate\Support\Facades\Cache;
  7. /**
  8. * Class MemberRepositoryEloquent.
  9. *
  10. * @package namespace App\Repositories;
  11. */
  12. class CategoryRepository extends BaseRepository
  13. {
  14. /**
  15. * Specify Model class name
  16. *
  17. * @return string
  18. */
  19. public function model()
  20. {
  21. return Category::class;
  22. }
  23. /**
  24. * Boot up the repository, pushing criteria
  25. */
  26. public function boot()
  27. {
  28. $this->pushCriteria(app(RequestCriteria::class));
  29. }
  30. /**
  31. * @param $id
  32. * @return mixed
  33. */
  34. public function getCategory($id)
  35. {
  36. return $this->model->find($id);
  37. }
  38. public function getCategoryInfo($Groups_arr)
  39. {
  40. return $this->model->whereIn('alias', $Groups_arr)->select(['id','alias', 'demand'])->get()->toArray();
  41. }
  42. public function getManyCategory($id)
  43. {
  44. return $this->model->whereIn('id', $id)->orderBy(\DB::raw('FIND_IN_SET(id, "' . implode(",", $id) . '"' . ")"))->get();
  45. }
  46. public function getCategoriess()
  47. {
  48. //获取所有其它分类信息
  49. $category = Cache::get('other_categories');
  50. if ($category === null) {
  51. $categoryData = $this->model->select(array('id','alias','demand','category_name'))->orderBy('order', 'desc')->orderBy('id', 'ASC')->get()->toArray();
  52. foreach ($categoryData as $key => $val) {
  53. //$category[$val['alias']][$val['id']] = $val['demand'];
  54. $category[$val['alias']][$val['id']] = $val;
  55. }
  56. if (array_key_exists('AIX_wage', $category)) {
  57. foreach ($category['AIX_wage'] as $key => $val) {
  58. if (preg_match_all('(\d+)', $val['demand'], $reg)) {
  59. $reg = $reg[0];
  60. $min = $reg[0]%1000==0?(($reg[0]/1000).'K'):(round($reg[0]/1000, 1).'K');
  61. if (count($reg)>1) {
  62. $max = $reg[1]?($reg[1]%1000==0?(($reg[1]/1000).'K'):(round($reg[1]/1000, 1).'K')):'';
  63. } else {
  64. $max = '';
  65. }
  66. $max_k = $max ? '~'.$max :'以上';
  67. $category['AIX_wage_k'][$key] = $min.$max_k.'/月';
  68. if (config('aix.system.site_other.site_other.site_salary') == 1) {
  69. $minwage = $min;
  70. $maxwage = $max;
  71. } elseif (config('aix.system.site_other.site_other.site_salary') == 2) {
  72. if ($reg[0]>=10000) {
  73. if ($reg[0]%10000==0) {
  74. $minwage = ($reg[0] / 10000) . '万';
  75. } else {
  76. $minwage = round($reg[0]/10000, 1);
  77. $minwage = strpos($minwage, '.') ? str_replace('.', '万', $minwage) : $minwage . '万';
  78. }
  79. } else {
  80. if ($reg[0]%1000==0) {
  81. $minwage = ($reg[0]/1000).'千';
  82. } else {
  83. $minwage = round($reg[0]/1000, 1);
  84. $minwage = strpos($minwage, '.') ? str_replace('.', '千', $minwage) : $minwage . '千';
  85. }
  86. }
  87. if (count($reg)>1 && $reg[1] >= 10000) {
  88. if ($reg[1]%10000==0) {
  89. $maxwage = ($reg[1]/10000).'万';
  90. } else {
  91. $maxwage = round($reg[1]/10000, 1);
  92. $maxwage = strpos($maxwage, '.') ? str_replace('.', '万', $maxwage) : $maxwage . '万';
  93. }
  94. } elseif (count($reg)>1 && $reg[1]) {
  95. if ($reg[1]%1000==0) {
  96. $maxwage = ($reg[1]/1000).'千';
  97. } else {
  98. $maxwage = round($reg[1]/1000, 1);
  99. $maxwage = strpos($maxwage, '.') ? str_replace('.', '千', $maxwage) : $maxwage . '千';
  100. }
  101. } else {
  102. $maxwage = '';
  103. }
  104. }
  105. $maxwage = $maxwage ? '~'.$maxwage :'以上';
  106. $category['AIX_wage'][$key]['demand'] = $minwage.$maxwage.'/月';
  107. }
  108. }
  109. }
  110. Cache::put('other_categories', $category, '86400');
  111. }
  112. return $category;
  113. }
  114. public function getCategories()
  115. {
  116. //获取所有其它分类信息
  117. $category = Cache::get('other_categories');
  118. if ($category === null) {
  119. $categoryData = $this->model->select(array('id','alias','demand','category_name'))->orderBy('order', 'desc')->orderBy('id', 'ASC')->get()->toArray();
  120. foreach ($categoryData as $key => $val) {
  121. $category[$val['alias']][$val['id']] = $val;
  122. }
  123. if (array_key_exists('AIX_wage', $category)) {
  124. foreach ($category['AIX_wage'] as $key => $val) {
  125. $category['AIX_wage'][$key]['origin_demand'] = $val['demand'];
  126. if (preg_match_all('(\d+)', $val['demand'], $reg)) {
  127. $reg = $reg[0];
  128. $min = $reg[0]%1000==0?(($reg[0]/1000).'K'):(round($reg[0]/1000, 1).'K');
  129. if (count($reg)>1) {
  130. $max = $reg[1]?($reg[1]%1000==0?(($reg[1]/1000).'K'):(round($reg[1]/1000, 1).'K')):'';
  131. } else {
  132. $max = '';
  133. }
  134. $max_k = $max ? '~'.$max :'以上';
  135. $category['AIX_wage_k'][$key] = $min.$max_k.'/月';
  136. $category['AIX_wage'][$key]['k_demand'] = $min.$max_k.'/月';
  137. //处理薪资单位是千的情况
  138. if ($reg[0]>=10000) {
  139. if ($reg[0]%10000==0) {
  140. $minwage = ($reg[0] / 10000) . '万';
  141. } else {
  142. $minwage = round($reg[0]/10000, 1);
  143. $minwage = strpos($minwage, '.') ? str_replace('.', '万', $minwage) : $minwage . '万';
  144. }
  145. } else {
  146. if ($reg[0]%1000==0) {
  147. $minwage = ($reg[0]/1000).'千';
  148. } else {
  149. $minwage = round($reg[0]/1000, 1);
  150. $minwage = strpos($minwage, '.') ? str_replace('.', '千', $minwage) : $minwage . '千';
  151. }
  152. }
  153. if (count($reg)>1 && $reg[1] >= 10000) {
  154. if ($reg[1]%10000==0) {
  155. $maxwage = ($reg[1]/10000).'万';
  156. } else {
  157. $maxwage = round($reg[1]/10000, 1);
  158. $maxwage = strpos($maxwage, '.') ? str_replace('.', '万', $maxwage) : $maxwage . '万';
  159. }
  160. } elseif (count($reg)>1 && $reg[1]) {
  161. if ($reg[1]%1000==0) {
  162. $maxwage = ($reg[1]/1000).'千';
  163. } else {
  164. $maxwage = round($reg[1]/1000, 1);
  165. $maxwage = strpos($maxwage, '.') ? str_replace('.', '千', $maxwage) : $maxwage . '千';
  166. }
  167. } else {
  168. $maxwage = '';
  169. }
  170. }
  171. $maxwage = $maxwage ? '~'.$maxwage :'以上';
  172. $category['AIX_wage_c'][$key] = $minwage.$maxwage.'/月';
  173. $category['AIX_wage'][$key]['c_demand'] = $minwage.$maxwage.'/月';
  174. if (config('aix.system.site_other.site_other.site_salary') == 1) {
  175. $minwage = $min;
  176. $maxwage = $max;
  177. } elseif (config('aix.system.site_other.site_other.site_salary') == 2) {
  178. if ($reg[0]>=10000) {
  179. if ($reg[0]%10000==0) {
  180. $minwage = ($reg[0] / 10000) . '万';
  181. } else {
  182. $minwage = round($reg[0]/10000, 1);
  183. $minwage = strpos($minwage, '.') ? str_replace('.', '万', $minwage) : $minwage . '万';
  184. }
  185. } else {
  186. if ($reg[0]%1000==0) {
  187. $minwage = ($reg[0]/1000).'千';
  188. } else {
  189. $minwage = round($reg[0]/1000, 1);
  190. $minwage = strpos($minwage, '.') ? str_replace('.', '千', $minwage) : $minwage . '千';
  191. }
  192. }
  193. if (count($reg)>1 && $reg[1] >= 10000) {
  194. if ($reg[1]%10000==0) {
  195. $maxwage = ($reg[1]/10000).'万';
  196. } else {
  197. $maxwage = round($reg[1]/10000, 1);
  198. $maxwage = strpos($maxwage, '.') ? str_replace('.', '万', $maxwage) : $maxwage . '万';
  199. }
  200. } elseif (count($reg)>1 && $reg[1]) {
  201. if ($reg[1]%1000==0) {
  202. $maxwage = ($reg[1]/1000).'千';
  203. } else {
  204. $maxwage = round($reg[1]/1000, 1);
  205. $maxwage = strpos($maxwage, '.') ? str_replace('.', '千', $maxwage) : $maxwage . '千';
  206. }
  207. } else {
  208. $maxwage = '';
  209. }
  210. }
  211. $maxwage = $maxwage ? '~'.$maxwage :'以上';
  212. $category['AIX_wage'][$key]['demand'] = $minwage.$maxwage.'/月';
  213. }
  214. }
  215. Cache::put('other_categories', $category, '86400');
  216. }
  217. return $category;
  218. }
  219. public function getOriginCategory($where)
  220. {
  221. return $this->model->where($where)->first();
  222. }
  223. public function getCategoryByAlias($data)
  224. {
  225. return $this->model->where($data)->get();
  226. }
  227. }