MemberInfoRepository.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. namespace App\Repositories;
  3. use App\Models\MemberInfo;
  4. use Prettus\Repository\Eloquent\BaseRepository;
  5. use Prettus\Repository\Criteria\RequestCriteria;
  6. use Illuminate\Support\Facades\DB;
  7. /**
  8. * Class MemberRepositoryEloquent.
  9. *
  10. * @package namespace App\Repositories;
  11. */
  12. class MemberInfoRepository extends BaseRepository
  13. {
  14. /**
  15. * Specify Model class name
  16. *
  17. * @return string
  18. */
  19. public function model()
  20. {
  21. return MemberInfo::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 $uid
  32. * @return mixed
  33. */
  34. public function getMemberInfo($uid)
  35. {
  36. return $this->model->where(['uid'=>$uid])
  37. ->first();
  38. }
  39. public function createInfo($data)
  40. {
  41. return $this->model->create($data);
  42. }
  43. public function updateInfo($data, $uid)
  44. {
  45. return $this->model->where(['uid'=>$uid])->update($data);
  46. }
  47. public function findMemberInfo($where)
  48. {
  49. return $this->model->where($where)->first();
  50. }
  51. public function getCount($where, $subsite_id)
  52. {
  53. return $this->model->when($subsite_id,function ($query) use($subsite_id) {
  54. $query->whereHas('members', function ($query) use($subsite_id) {
  55. $query->where($subsite_id);
  56. });
  57. })->where($where)->count();
  58. }
  59. public function getMemberNumsByGroup($where, $member_where, $fields, $group_by, $order_by = '', $limit = '')
  60. {
  61. $rst = $this->model->select(DB::raw($fields))->where($where)->when($member_where, function ($query) use ($member_where) {
  62. $query->whereHas('members', function ($query) use ($member_where) {
  63. $query->where($member_where);
  64. });
  65. });
  66. if ($group_by) {
  67. $rst->groupBy($group_by);
  68. }
  69. if ($order_by) {
  70. $rst->orderByRaw($order_by);
  71. }
  72. if ($limit) {
  73. $rst->offset(0)->limit($limit);
  74. }
  75. return $rst->get();
  76. }
  77. public function checkUniaue($key, $value)
  78. {
  79. if ($this->model->withTrashed()->where($key, $value)->first()) {
  80. return false;
  81. }
  82. return true;
  83. }
  84. }