where('store_id', '>', 0); } else { $query->where('store_id', $value); } } } /** * 门店店员ID * @param $query * @param $value */ public function searchStaffIdAttr($query, $value) { if ($value) { if (is_array($value)) { $query->whereIn('staff_id', $value); } else { $query->where('staff_id', $value); } } } /** * 订单类型 * @param $query * @param $value */ public function searchTypeAttr($query, $value) { if ($value) { if (is_array($value)) { $query->where('type', 'in', $value); } else { $query->where('type', $value); } } } public function searchPaidAttr($query, $value) { $query->where('paid', $value); } /** * 支付方式不属于 * @param $query * @param $value */ public function searchPayTypeNoAttr($query, $value) { $query->where('pay_type', '<>', $value); } /** * 用户来源 * @param Model $query * @param $value */ public function searchChannelTypeAttr($query, $value) { if ($value != '') $query->where('channel_type', $value); } /** * 订单id搜索器 * @param $query * @param $value */ public function searchOrderIdAttr($query, $value) { if ($value != "") { $query->where('order_id', $value); } } /** * 一对一关联用户表 * @return \think\model\relation\HasOne */ public function user() { return $this->hasOne(User::class, 'uid', 'uid')->field(['uid', 'nickname', 'avatar', 'phone', 'spread_uid', 'overdue_time', 'now_money', 'integral']); } /** * @return model\relation\HasOne */ public function staff() { return $this->hasOne(SystemStoreStaff::class, 'id', 'staff_id') ->field(['id', 'uid', 'store_id', 'staff_name']) ->bind([ 'staff_uid' => 'uid', 'staff_store_id' => 'store_id', 'staff_name' => 'staff_name' ]);; } /** * 会员类型 * @param $query * @param $value */ public function searchMemberTypeAttr($query, $value) { if ($value && $value != 'card' && $value != 'free') { $query->where('member_type', $value); } elseif ($value == 'card') { $query->where('member_type', 'free')->where('code', '<>', ''); } elseif ($value == 'free') { $query->where('member_type', 'free')->where('code', ''); } } /** * 支付方式 * @param $query * @param $value */ public function searchPayTypeAttr($query, $value) { if ($value) { if ($value == "free") { $query->where(function ($query) { $query->where('type', 'in', [0, 2])->whereOr(function ($query) { $query->where(['type' => 1, 'is_free' => 1]); }); }); } else { $query->where('pay_type', $value); } } } /** * @param $query * @param $value */ public function searchAddTimeAttr($query, $value) { if ($value) { $query->whereTime('add_time', 'between', $value); } } /** * @param $query * @param $value */ public function searchUidAttr($query, $value) { if ($value) { $query->where('uid', 'in', $value); } } }