orgModel
This commit is contained in:
parent
30d3515d03
commit
70b6ac0642
@ -24,7 +24,9 @@ trait OrderCardConcern
|
||||
*/
|
||||
public function withConditions(array $conditions = [])
|
||||
{
|
||||
$this->model = $this->model->where(function ($query) use ($conditions) {
|
||||
$orgModel = $this->getModel();
|
||||
|
||||
$this->model = $this->model->where(function ($query) use ($conditions, $orgModel) {
|
||||
if (isset($conditions['id'])) {
|
||||
$conditions['id'] = array_wrap($conditions['id']);
|
||||
$query->whereIn('id', $conditions['id']);
|
||||
@ -168,12 +170,12 @@ trait OrderCardConcern
|
||||
}
|
||||
|
||||
if (isset($conditions['sell_starttime']) && isset($conditions['sell_endtime'])) {
|
||||
$query->whereRaw(sprintf("exists (SELECT sim FROM virtual_order_cards_partition AS p WHERE %s.sim = p.sim AND type in (0, 1) AND created_at >= '%s' AND created_at <= '%s' AND deleted_at is null AND refunded_at is null)", $this->getTable(), $conditions['sell_starttime'], $conditions['sell_endtime']));
|
||||
$query->whereRaw(sprintf("exists (SELECT sim FROM virtual_order_cards_partition AS p WHERE %s.sim = p.sim AND type in (0, 1) AND created_at >= '%s' AND created_at <= '%s' AND deleted_at is null AND refunded_at is null)", $orgModel->getTable(), $conditions['sell_starttime'], $conditions['sell_endtime']));
|
||||
}
|
||||
|
||||
if (isset($conditions['has_type']) && !empty($conditions['has_type'])) {
|
||||
$conditions['has_type'] = array_wrap($conditions['has_type']);
|
||||
$query->whereRaw(sprintf("exists (SELECT sim from virtual_order_cards_partition AS p WHERE %s.sim = p.sim AND type in (%s))", $this->getTable(), implode(',', $conditions['has_type'])));
|
||||
$query->whereRaw(sprintf("exists (SELECT sim from virtual_order_cards_partition AS p WHERE %s.sim = p.sim AND type in (%s))", $orgModel->getTable(), implode(',', $conditions['has_type'])));
|
||||
}
|
||||
});
|
||||
|
||||
@ -183,7 +185,7 @@ trait OrderCardConcern
|
||||
|
||||
switch ($conditions['card_status']) {
|
||||
case 0:
|
||||
$hasRaw = sprintf("exists (SELECT sim FROM cards WHERE virtual_order_cards_partition.sim = cards.sim AND (cancelled_at IS NULL or cancelled_at < '%s'))", $date);
|
||||
$hasRaw = sprintf("exists (SELECT sim FROM cards WHERE %s.sim = cards.sim AND (cancelled_at IS NULL or cancelled_at < '%s'))", $orgModel->getTable(), $date);
|
||||
|
||||
$this->model = $this->model->whereNull('service_start_at')
|
||||
->whereRaw($hasRaw)
|
||||
@ -191,7 +193,7 @@ trait OrderCardConcern
|
||||
break;
|
||||
|
||||
case 1:
|
||||
$hasRaw = sprintf("exists (SELECT sim FROM cards WHERE virtual_order_cards_partition.sim = cards.sim AND (cancelled_at IS NULL or cancelled_at < '%s'))", $date);
|
||||
$hasRaw = sprintf("exists (SELECT sim FROM cards WHERE %s.sim = cards.sim AND (cancelled_at IS NULL or cancelled_at < '%s'))", $orgModel->getTable(), $date);
|
||||
|
||||
$this->model = $this->model->whereNull('service_start_at')
|
||||
->whereRaw($hasRaw)
|
||||
@ -199,23 +201,23 @@ trait OrderCardConcern
|
||||
break;
|
||||
|
||||
case 2:
|
||||
$havingRaw = sprintf("exists (SELECT sim FROM virtual_order_cards_partition AS p WHERE %s.sim = p.sim GROUP BY sim HAVING MAX(service_end_at) >= '%s')", $this->getTable(), $date);
|
||||
$hasRaw = sprintf("exists (SELECT sim FROM cards WHERE virtual_order_cards_partition.sim = cards.sim AND (cancelled_at IS NULL or cancelled_at <= '%s'))", $date);
|
||||
$havingRaw = sprintf("exists (SELECT sim FROM virtual_order_cards_partition AS p WHERE %s.sim = p.sim GROUP BY sim HAVING MAX(service_end_at) >= '%s')", $orgModel->getTable(), $date);
|
||||
$hasRaw = sprintf("exists (SELECT sim FROM cards WHERE %s.sim = cards.sim AND (cancelled_at IS NULL or cancelled_at <= '%s'))", $orgModel->getTable(), $date);
|
||||
$this->model = $this->model->whereNotNull('service_start_at')
|
||||
->whereRaw($havingRaw)
|
||||
->whereRaw($hasRaw);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
$havingRaw = sprintf("exists (SELECT sim FROM virtual_order_cards_partition AS p WHERE %s.sim = p.sim GROUP BY sim HAVING MAX(service_end_at) < '%s')", $this->getTable(), $date);
|
||||
$hasRaw = sprintf("exists (SELECT sim FROM cards WHERE virtual_order_cards_partition.sim = cards.sim AND (cancelled_at IS NULL or cancelled_at <= '%s'))", $date);
|
||||
$havingRaw = sprintf("exists (SELECT sim FROM virtual_order_cards_partition AS p WHERE %s.sim = p.sim GROUP BY sim HAVING MAX(service_end_at) < '%s')", $orgModel->getTable(), $date);
|
||||
$hasRaw = sprintf("exists (SELECT sim FROM cards WHERE %s.sim = cards.sim AND (cancelled_at IS NULL or cancelled_at <= '%s'))", $orgModel->getTable(), $date);
|
||||
$this->model = $this->model->whereNotNull('service_start_at')
|
||||
->whereRaw($havingRaw)
|
||||
->whereRaw($hasRaw);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
$hasRaw = sprintf("exists (SELECT sim FROM cards WHERE virtual_order_cards_partition.sim = cards.sim AND (cancelled_at IS NOT NULL AND cancelled_at >= '%s'))", $date);
|
||||
$hasRaw = sprintf("exists (SELECT sim FROM cards WHERE %s.sim = cards.sim AND (cancelled_at IS NOT NULL AND cancelled_at >= '%s'))", $orgModel->getTable(), $date);
|
||||
$this->model = $this->model->whereRaw($hasRaw);
|
||||
break;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user