我生成唯一代码,将其用作优惠券代码。这是优惠券代码的生成方式
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中删除,可以再次使用。这是好习惯吗?或者我应该永远存储代码?你会如何管理你的优惠券?