检查优惠券是否存在以及是否是第一个订单



在我的电子商务中,我已经实现了优惠券,并且它正在工作,但是现在我引入了"优惠券第一订单",但不知道我是否在做最好的检查方法,因为它不起作用,我的查询忽略了这个咨询。

我如何检查coupon_tp是否不是第一,如果为真,如何检查用户是否是一阶?

public function verificaCupom($coupon){
$this->db->select("customer_id, id, value, percent, code, discount_tp, coupon_tp");
//check if is first order (not working)
$this->db->select("IF(ga845_cupons.coupon_tp = 'first', (SELECT customer_id FROM ga845_pedidos_view WHERE NOT EXISTS 'ga845_pedidos_view.customer_id = ga845_cupons.customer_id'))  as primeira");
//check if coupon exist
$this->db->where('code', $coupon);
//check valid
$this->db->where('CURDATE() <= valid');
//check if coupon it's enable
$this->db->where('status', 0);
$this->db->limit("1");
$query = $this->db->get('ga845_cupons');
return $query->result();
}

尝试在函数中将第二个参数设置为 falseselect()

$this->db->select()接受可选的第二个参数。如果将其设置为 FALSE,CodeIgniter 将不会尝试保护您的字段或表名。如果您需要复合选择语句,其中字段的自动转义可能会破坏它们,这将非常有用。

$this->db->select("IF(ga845_cupons.coupon_tp = 'first', (SELECT customer_id FROM ga845_pedidos_view WHERE NOT EXISTS 'ga845_pedidos_view.customer_id = ga845_cupons.customer_id'))  as primeira", false);

我已经将我的代码调整到这个波纹管,并按照我想要的方式工作。

$this->db->select("IF(ga845_cupons.coupon_tp = 'first', (SELECT COUNT(`customers_id`) FROM `ga845_pedidos_view` WHERE `ga845_pedidos_view`.`customers_id` = `ga845_cupons`.`customers_id` ), coupon_tp) as first");
$this->db->having('first <= ' , 0);

相关内容

  • 没有找到相关文章

最新更新