|
|
@ -13,6 +13,7 @@ use App\Models\Order; |
|
|
use EasyWeChat\Factory; |
|
|
use EasyWeChat\Factory; |
|
|
use Illuminate\Http\Request; |
|
|
use Illuminate\Http\Request; |
|
|
use Illuminate\Support\Facades\DB; |
|
|
use Illuminate\Support\Facades\DB; |
|
|
|
|
|
use App\Service\OrderStatus as Status; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 订单 |
|
|
* 订单 |
|
|
@ -49,14 +50,14 @@ class OrderController extends Controller |
|
|
$timeout_ids = []; |
|
|
$timeout_ids = []; |
|
|
//10分钟内未付款订单提示付款
|
|
|
//10分钟内未付款订单提示付款
|
|
|
foreach ($order_list['data'] as &$v) { |
|
|
foreach ($order_list['data'] as &$v) { |
|
|
if ($v['status'] == 0) { |
|
|
|
|
|
|
|
|
if ($v['status'] == Status::UNPAID) { |
|
|
$minute = $time - $v['created_at']; |
|
|
$minute = $time - $v['created_at']; |
|
|
//订单创建后10分钟内未付款则提示,否则取消订单
|
|
|
//订单创建后10分钟内未付款则提示,否则取消订单
|
|
|
if ($minute < 600) { |
|
|
if ($minute < 600) { |
|
|
$v['status_text'] = '请在' . ceil($minute / 60) . '分钟内付款'; |
|
|
$v['status_text'] = '请在' . ceil($minute / 60) . '分钟内付款'; |
|
|
} else { |
|
|
} else { |
|
|
$timeout_ids[] = $v['id']; |
|
|
$timeout_ids[] = $v['id']; |
|
|
$v['status'] = -1; |
|
|
|
|
|
|
|
|
$v['status'] = Status::CANCEL; |
|
|
$v['status_text'] = '已取消'; |
|
|
$v['status_text'] = '已取消'; |
|
|
//TODO 加回库存,未考虑到几天/几个月后再打开订单列表页的情况
|
|
|
//TODO 加回库存,未考虑到几天/几个月后再打开订单列表页的情况
|
|
|
Product::query()->find($v['product_id'])->update(['stock' => $v['num']]); |
|
|
Product::query()->find($v['product_id'])->update(['stock' => $v['num']]); |
|
|
@ -65,7 +66,7 @@ class OrderController extends Controller |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//超时订单设置为已取消 TODO 测试阶段暂时注释
|
|
|
//超时订单设置为已取消 TODO 测试阶段暂时注释
|
|
|
// Order::query()->whereIn('id', $timeout_ids)->update(['status' => -1]);
|
|
|
|
|
|
|
|
|
// Order::query()->whereIn('id', $timeout_ids)->update(['status' => Status::CANCEL]);
|
|
|
|
|
|
|
|
|
return $this->success($order_list); |
|
|
return $this->success($order_list); |
|
|
} |
|
|
} |
|
|
@ -120,10 +121,10 @@ class OrderController extends Controller |
|
|
$price = $this->calc($ap, $formData['num']); |
|
|
$price = $this->calc($ap, $formData['num']); |
|
|
$title = $ap->product->title; //产品标题
|
|
|
$title = $ap->product->title; //产品标题
|
|
|
//代理商产品表增加销量
|
|
|
//代理商产品表增加销量
|
|
|
$ap->increment('sale', $formData['num']); |
|
|
|
|
|
|
|
|
// $ap->increment('sale', $formData['num']); TODO 支付成功之后再增加销量
|
|
|
|
|
|
|
|
|
//供应商产品表加销量、减库存
|
|
|
//供应商产品表加销量、减库存
|
|
|
$ap->product->sale += $formData['num']; |
|
|
|
|
|
|
|
|
// $ap->product->sale += $formData['num']; TODO 支付成功之后再增加销量
|
|
|
$ap->product->stock -= $formData['num']; |
|
|
$ap->product->stock -= $formData['num']; |
|
|
$ap->product->save(); |
|
|
$ap->product->save(); |
|
|
|
|
|
|
|
|
@ -139,7 +140,7 @@ class OrderController extends Controller |
|
|
'picture' => $ap->product->picture, |
|
|
'picture' => $ap->product->picture, |
|
|
'agent_product_id' => $ap->id, |
|
|
'agent_product_id' => $ap->id, |
|
|
'product_id' => $ap->product_id, |
|
|
'product_id' => $ap->product_id, |
|
|
'status' => 0, |
|
|
|
|
|
|
|
|
'status' => Status::UNPAID, |
|
|
'pay_type' => $formData['pay_type'], |
|
|
'pay_type' => $formData['pay_type'], |
|
|
'coupon_id' => join(',', $coupon_ids), |
|
|
'coupon_id' => join(',', $coupon_ids), |
|
|
]); |
|
|
]); |
|
|
@ -185,10 +186,10 @@ class OrderController extends Controller |
|
|
|
|
|
|
|
|
//TODO 需要后台处理
|
|
|
//TODO 需要后台处理
|
|
|
$order = Order::find($formData['id']); |
|
|
$order = Order::find($formData['id']); |
|
|
if (!in_array($order->status, [1, 2, 3])) { |
|
|
|
|
|
|
|
|
if (!in_array($order->status, [Status::PAY_EARNEST, Status::PAID, Status::PAY_RETAINAGE])) { |
|
|
return $this->error('当前订单状态不允许退款'); |
|
|
return $this->error('当前订单状态不允许退款'); |
|
|
} |
|
|
} |
|
|
$order->status = 6; |
|
|
|
|
|
|
|
|
$order->status = Status::REFUNDING; |
|
|
$order->refund_info = [ |
|
|
$order->refund_info = [ |
|
|
'desc' => strip_tags($formData['desc']), |
|
|
'desc' => strip_tags($formData['desc']), |
|
|
'pictures' => $formData['pictures'] ?? [], |
|
|
'pictures' => $formData['pictures'] ?? [], |
|
|
@ -244,7 +245,7 @@ class OrderController extends Controller |
|
|
'body' => $order->title, |
|
|
'body' => $order->title, |
|
|
'out_trade_no' => $order->order_no, |
|
|
'out_trade_no' => $order->order_no, |
|
|
'total_fee' => $order->price, //TODO 需要区分定金和全款
|
|
|
'total_fee' => $order->price, //TODO 需要区分定金和全款
|
|
|
// 'notify_url' => 'https://pay.weixin.qq.com/wxpay/pay.action', // 支付结果通知网址,如果不设置则会使用配置里的默认地址
|
|
|
|
|
|
|
|
|
'notify_url' => route('wxpay_notify'), // 支付结果通知网址,如果不设置则会使用配置里的默认地址
|
|
|
'trade_type' => 'JSAPI', |
|
|
'trade_type' => 'JSAPI', |
|
|
'openid' => $openid, |
|
|
'openid' => $openid, |
|
|
]); |
|
|
]); |
|
|
|