同一个券码,重复提交校验,3秒内视为同一笔订单。
This commit is contained in:
@@ -147,4 +147,37 @@ class Init
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Notes: 校验是否已经核销过。3秒内视为同一订单
|
||||
* @Author: 玄尘
|
||||
* @Date : 2020/8/8 13:43
|
||||
*/
|
||||
public function HasCheck()
|
||||
{
|
||||
$code = $this->redemptionCode;
|
||||
$total = $this->total;
|
||||
$outletId = $this->outletId;
|
||||
|
||||
$info = Coupon::where('redemptionCode', $this->redemptionCode)
|
||||
->where('outletId', $this->outletId)
|
||||
->where('total', $this->total)
|
||||
->where('status', 2)
|
||||
->first();
|
||||
if ($info) {
|
||||
if ($info->created_at->gt(now()->subSecond(3))) {
|
||||
return [
|
||||
'name' => $info->couponName,
|
||||
'total' => $info->total,
|
||||
'price' => $info->price,
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
return '核销失败,此优惠券已被使用';
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -16,6 +16,12 @@ class Verification extends PingAnInit
|
||||
|
||||
public function start()
|
||||
{
|
||||
//检查是否已经核销过
|
||||
$res = $this->HasCheck();
|
||||
if ($res !== false) {
|
||||
return $res;
|
||||
}
|
||||
|
||||
//检查可核销次数
|
||||
$ret = $this->CheckCount();
|
||||
if ($ret !== true) {
|
||||
|
||||
@@ -20,11 +20,20 @@ class YsdVerification extends Init
|
||||
*/
|
||||
public function start()
|
||||
{
|
||||
//检查是否已经核销过
|
||||
$res = $this->HasCheck();
|
||||
if ($res !== false) {
|
||||
return $res;
|
||||
}
|
||||
|
||||
//查询卡券信息
|
||||
//查询卡券信息 返回model string 说明报错
|
||||
$this->query_coupon = (new YsdQuery)->setOutletId($this->outletId)
|
||||
->setCode($this->redemptionCode)
|
||||
->start();
|
||||
if (is_string($this->query_coupon)) {
|
||||
return $this->query_coupon;
|
||||
}
|
||||
|
||||
//检查可核销次数
|
||||
if ($this->query_coupon->activity && $this->query_coupon->activity->need_check) {
|
||||
$ret = $this->CheckCount();
|
||||
@@ -33,10 +42,6 @@ class YsdVerification extends Init
|
||||
}
|
||||
}
|
||||
|
||||
if (is_string($this->query_coupon)) {
|
||||
return $this->query_coupon;
|
||||
}
|
||||
|
||||
//校验卡券
|
||||
$ticket = $this->checkCoupon();
|
||||
if (!is_array($ticket)) {
|
||||
|
||||
Reference in New Issue
Block a user