接单并发处理;派奖开关
parent
6b4644870c
commit
7327fc2f11
|
|
@ -16,6 +16,7 @@ use App\Service\OrderService;
|
||||||
use App\Utils\Helps;
|
use App\Utils\Helps;
|
||||||
use App\Utils\ThrowException;
|
use App\Utils\ThrowException;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Redis;
|
||||||
|
|
||||||
class OrderController extends BaseController
|
class OrderController extends BaseController
|
||||||
{
|
{
|
||||||
|
|
@ -490,7 +491,16 @@ class OrderController extends BaseController
|
||||||
public function receive(Request $request, OrderService $orderService)
|
public function receive(Request $request, OrderService $orderService)
|
||||||
{
|
{
|
||||||
$orderSn = $request->input('order_sn');
|
$orderSn = $request->input('order_sn');
|
||||||
|
$lockKey = 'order:receive:'.$orderSn;
|
||||||
|
$lock = Redis::setnx($lockKey, 1);
|
||||||
|
ThrowException::isTrue(!$lock, '接单中...');
|
||||||
|
try {
|
||||||
$orderService->sellerReceive($this->seller(), $orderSn);
|
$orderService->sellerReceive($this->seller(), $orderSn);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
throw $e;
|
||||||
|
} finally {// 确保释放锁
|
||||||
|
Redis::del($lockKey);
|
||||||
|
}
|
||||||
return $this->jsonSuccess();
|
return $this->jsonSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -339,6 +339,7 @@ class OrderService
|
||||||
|
|
||||||
public function sellerSendPrize(Seller $seller, $orderSn, $sendPrize)
|
public function sellerSendPrize(Seller $seller, $orderSn, $sendPrize)
|
||||||
{
|
{
|
||||||
|
ThrowException::isTrue(!$seller->enable_send_prize, '无派奖权限');
|
||||||
$order = Order::sn($orderSn)->first();
|
$order = Order::sn($orderSn)->first();
|
||||||
ThrowException::isTrue(!$order, '订单不存在');
|
ThrowException::isTrue(!$order, '订单不存在');
|
||||||
ThrowException::isTrue($order->lottery_state != LottState::WIN, '订单状态不对,无法派奖');
|
ThrowException::isTrue($order->lottery_state != LottState::WIN, '订单状态不对,无法派奖');
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue