如何管理优惠券代码?

时间:2012-12-02 13:44:50

标签: php algorithm symfony

我生成唯一代码,将其用作优惠券代码。这是优惠券代码的生成方式

public function generateCoupon(){
    $chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $res = "";

    for ($i = 0; $i < 6; $i++) {
        $res .= $chars[mt_rand(0, strlen($chars) - 1)];
    }

    return $res;
}

为确保我在DB中多次使用相同的代码,请检查生成的代码是否存在:

$coupon = $this->generateCoupon();

while($repository->findOneByCode($coupon) != null){
    $coupon = $this->generateCoupon();
}

用户请求优惠券代码,并将其分配给用户,直到使用它为止。

优惠券使用时会发生什么?现在代码从DB中删除,可以再次使用。这是好习惯吗?或者我应该永远存储代码?你会如何管理你的优惠券?

1 个答案:

答案 0 :(得分:1)

您可以使用UUID作为优惠券代码,以确保唯一性,或将优惠券代码存储在记录中,永久地标记为已使用。