| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 | <?phpnamespace App\Repositories;use App\Models\MemberInfo;use Prettus\Repository\Eloquent\BaseRepository;use Prettus\Repository\Criteria\RequestCriteria;use Illuminate\Support\Facades\DB;/** * Class MemberRepositoryEloquent. * * @package namespace App\Repositories; */class MemberInfoRepository extends BaseRepository{    /**     * Specify Model class name     *     * @return string     */    public function model()    {        return MemberInfo::class;    }    /**     * Boot up the repository, pushing criteria     */    public function boot()    {        $this->pushCriteria(app(RequestCriteria::class));    }    /**     * @param $uid     * @return mixed     */    public function getMemberInfo($uid)    {        return $this->model->where(['uid'=>$uid])            ->first();    }    public function createInfo($data)    {        return $this->model->create($data);    }    public function updateInfo($data, $uid)    {        return $this->model->where(['uid'=>$uid])->update($data);    }    public function findMemberInfo($where)    {        return $this->model->where($where)->first();    }    public function getCount($where, $subsite_id)    {        return $this->model->when($subsite_id,function ($query) use($subsite_id) {            $query->whereHas('members', function ($query) use($subsite_id) {                $query->where($subsite_id);            });        })->where($where)->count();    }    public function getMemberNumsByGroup($where, $member_where, $fields, $group_by, $order_by = '', $limit = '')    {        $rst = $this->model->select(DB::raw($fields))->where($where)->when($member_where, function ($query) use ($member_where) {            $query->whereHas('members', function ($query) use ($member_where) {                $query->where($member_where);            });        });        if ($group_by) {            $rst->groupBy($group_by);        }        if ($order_by) {            $rst->orderByRaw($order_by);        }        if ($limit) {            $rst->offset(0)->limit($limit);        }        return $rst->get();    }    public function checkUniaue($key, $value)    {        if ($this->model->withTrashed()->where($key, $value)->first()) {            return false;        }        return true;    }}
 |