ExpertPlatformService.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace app\extra\service\blue;
  3. use app\extra\basic\Service;
  4. use app\model\blue\BlueExpertPlatform;
  5. class ExpertPlatformService extends Service
  6. {
  7. /**
  8. * 列表
  9. * @param array $param
  10. */
  11. public function getList(array $param = [])
  12. {
  13. $this->mode = new BlueExpertPlatform();
  14. return $this->searchVal($param,$this->searchFilter($param))->paginate([
  15. "list_rows" => $param['pageSize'],
  16. "page" => $param['page']
  17. ]);
  18. }
  19. /**
  20. * 达人之家
  21. * @param array $param
  22. * @return mixed
  23. */
  24. public function getListStar(array $param = [],string $field = "*")
  25. {
  26. $this->mode = new BlueExpertPlatform();
  27. return $this->searchVal($param,$this->searchFilter($param))->with(['job' => function($query){
  28. $query->where("status","in",[0,1,2])->field("id,openid");
  29. },"user" => function($query){
  30. $query->field("openid,group_id")->with(['level' => function($subQue) {
  31. $subQue->field("id,name,level");
  32. }]);
  33. }])->limit(10)->field($field)->select()->toArray();
  34. }
  35. /**
  36. *
  37. * @param array $param
  38. * @return array
  39. */
  40. public function searchFilter(array $param = []): array
  41. {
  42. $filter = [];
  43. !empty($param['type']) && $filter[] = ["type", '=', $param['type']];
  44. !empty($param['status']) && $filter[] = ["status", '=', ($param['status']-1)];
  45. !empty($param['truename']) && $filter[] = ["truename", 'like', "%{$param['truename']}%"];
  46. !empty($param['nick']) && $filter[] = ["nickname", 'like', "%{$param['nick']}%"];
  47. !empty($param['source']) && $filter[] = ["source", '=', $param['source']];
  48. return $filter;
  49. }
  50. }