init
- 框架初始化 - 安装插件 - 修复PHP8.4报错
This commit is contained in:
204
addons/shopro/controller/order/Aftersale.php
Normal file
204
addons/shopro/controller/order/Aftersale.php
Normal file
@@ -0,0 +1,204 @@
|
||||
<?php
|
||||
|
||||
namespace addons\shopro\controller\order;
|
||||
|
||||
use think\Db;
|
||||
use addons\shopro\controller\Common;
|
||||
use app\admin\model\shopro\order\Order as OrderModel;
|
||||
use app\admin\model\shopro\order\OrderItem as OrderItemModel;
|
||||
use app\admin\model\shopro\order\Aftersale as AftersaleModel;
|
||||
use app\admin\model\shopro\order\AftersaleLog as AftersaleLogModel;
|
||||
use app\admin\model\shopro\order\Action as OrderActionModel;
|
||||
|
||||
class Aftersale extends Common
|
||||
{
|
||||
|
||||
protected $noNeedLogin = [];
|
||||
protected $noNeedRight = ['*'];
|
||||
|
||||
public function index() {
|
||||
$user = auth_user();
|
||||
|
||||
$params = $this->request->param();
|
||||
$type = $params['type'] ?? 'all';
|
||||
|
||||
$aftersales = AftersaleModel::where('user_id', $user->id);
|
||||
|
||||
if ($type != 'all') {
|
||||
$aftersales = $aftersales->{$type}();
|
||||
}
|
||||
|
||||
$aftersales = $aftersales->order('id', 'desc')->paginate($this->request->param('list_rows', 10));
|
||||
|
||||
$this->success('获取成功', $aftersales);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function detail()
|
||||
{
|
||||
$user = auth_user();
|
||||
$id = $this->request->param('id');
|
||||
|
||||
$aftersale = AftersaleModel::where('user_id', $user->id)->with('logs')->where('id', $id)->find();
|
||||
if (!$aftersale) {
|
||||
$this->error(__('No Results were found'));
|
||||
}
|
||||
|
||||
$this->success('获取成功', $aftersale);
|
||||
}
|
||||
|
||||
|
||||
public function add()
|
||||
{
|
||||
$user = auth_user();
|
||||
$params = $this->request->param();
|
||||
|
||||
$this->svalidate($params, ".add");
|
||||
|
||||
$aftersale = Db::transaction(function () use ($user, $params) {
|
||||
$type = $params['type'];
|
||||
$order_id = $params['order_id'];
|
||||
$order_item_id = $params['order_item_id'];
|
||||
$mobile = $params['mobile'] ?? '';
|
||||
$reason = $params['reason'] ?? '用户申请售后';
|
||||
$content = $params['content'] ?? '';
|
||||
$images = $params['images'] ?? [];
|
||||
|
||||
$order = OrderModel::canAftersale()->where('user_id', $user->id)->lock(true)->where('id', $order_id)->find();
|
||||
if (!$order) {
|
||||
error_stop('订单不存在或不可售后');
|
||||
}
|
||||
|
||||
$item = OrderItemModel::where('user_id', $user->id)->where('id', $order_item_id)->find();
|
||||
|
||||
if (!$item) {
|
||||
error_stop('参数错误');
|
||||
}
|
||||
|
||||
if (!in_array($item->aftersale_status, [
|
||||
OrderItemModel::AFTERSALE_STATUS_REFUSE,
|
||||
OrderItemModel::AFTERSALE_STATUS_NOAFTER
|
||||
])) {
|
||||
error_stop('当前订单商品不可申请售后');
|
||||
}
|
||||
|
||||
$aftersale = new AftersaleModel();
|
||||
$aftersale->aftersale_sn = get_sn($user->id, 'A');
|
||||
$aftersale->user_id = $user->id;
|
||||
$aftersale->type = $type;
|
||||
$aftersale->mobile = $mobile;
|
||||
$aftersale->activity_id = $item['activity_id'];
|
||||
$aftersale->activity_type = $item['activity_type'];
|
||||
$aftersale->order_id = $order_id;
|
||||
$aftersale->order_item_id = $order_item_id;
|
||||
$aftersale->goods_id = $item['goods_id'];
|
||||
$aftersale->goods_sku_price_id = $item['goods_sku_price_id'];
|
||||
$aftersale->goods_sku_text = $item['goods_sku_text'];
|
||||
$aftersale->goods_title = $item['goods_title'];
|
||||
$aftersale->goods_image = $item['goods_image'];
|
||||
$aftersale->goods_original_price = $item['goods_original_price'];
|
||||
$aftersale->discount_fee = $item['discount_fee'];
|
||||
$aftersale->goods_price = $item['goods_price'];
|
||||
$aftersale->goods_num = $item['goods_num'];
|
||||
$aftersale->dispatch_status = $item['dispatch_status'];
|
||||
$aftersale->dispatch_fee = $item['dispatch_fee'];
|
||||
$aftersale->aftersale_status = AftersaleModel::AFTERSALE_STATUS_NOOPER;
|
||||
$aftersale->refund_status = AftersaleModel::REFUND_STATUS_NOREFUND; // 未退款
|
||||
$aftersale->refund_fee = 0;
|
||||
$aftersale->reason = $reason;
|
||||
$aftersale->content = $content;
|
||||
$aftersale->save();
|
||||
|
||||
// 增加售后单变动记录、
|
||||
AftersaleLogModel::add($order, $aftersale, $user, 'user', [
|
||||
'log_type' => 'apply_aftersale',
|
||||
'content' => "申请原因:$reason <br>相关描述: $content",
|
||||
'images' => $images
|
||||
]);
|
||||
|
||||
$ext = $item->ext ?: [];
|
||||
$ext['aftersale_id'] = $aftersale->id;
|
||||
// 修改订单 item 状态,申请售后
|
||||
$item->aftersale_status = OrderItemModel::AFTERSALE_STATUS_ING;
|
||||
$item->ext = $ext;
|
||||
$item->save();
|
||||
OrderActionModel::add($order, $item, $user, 'user', '用户申请售后');
|
||||
|
||||
return $aftersale;
|
||||
});
|
||||
|
||||
$this->success('申请成功', $aftersale);
|
||||
}
|
||||
|
||||
|
||||
public function cancel()
|
||||
{
|
||||
$user = auth_user();
|
||||
$id = $this->request->param('id');
|
||||
|
||||
$aftersale = AftersaleModel::canCancel()->where('user_id', $user->id)->where('id', $id)->find();
|
||||
|
||||
if (!$aftersale) {
|
||||
$this->error('售后单不存在或不可取消');
|
||||
}
|
||||
|
||||
$order = OrderModel::where('user_id', $user->id)->find($aftersale['order_id']);
|
||||
if (!$order) {
|
||||
$this->error(__('No Results were found'));
|
||||
}
|
||||
|
||||
$orderItem = OrderItemModel::find($aftersale['order_item_id']);
|
||||
if (!$orderItem || in_array($orderItem['refund_status'], [OrderItemModel::REFUND_STATUS_AGREE, OrderItemModel::REFUND_STATUS_COMPLETED])) {
|
||||
// 不存在, 或者已经退款
|
||||
$this->error('退款商品不存在或已退款');
|
||||
}
|
||||
|
||||
$aftersale = Db::transaction(function () use ($aftersale, $order, $orderItem, $user) {
|
||||
$aftersale->aftersale_status = AftersaleModel::AFTERSALE_STATUS_CANCEL; // 取消售后单
|
||||
$aftersale->save();
|
||||
|
||||
AftersaleLogModel::add($order, $aftersale, $user, 'user', [
|
||||
'log_type' => 'cancel',
|
||||
'content' => '用户取消申请售后',
|
||||
'images' => []
|
||||
]);
|
||||
|
||||
// 修改订单 item 为未申请售后
|
||||
$orderItem->aftersale_status = OrderItemModel::AFTERSALE_STATUS_NOAFTER;
|
||||
$orderItem->refund_status = OrderItemModel::REFUND_STATUS_NOREFUND;
|
||||
$orderItem->save();
|
||||
|
||||
OrderActionModel::add($order, $orderItem, $user, 'user', '用户取消申请售后');
|
||||
|
||||
return $aftersale;
|
||||
});
|
||||
|
||||
$this->success('取消成功', $aftersale);
|
||||
}
|
||||
|
||||
|
||||
public function delete()
|
||||
{
|
||||
$user = auth_user();
|
||||
$id = $this->request->param('id');
|
||||
|
||||
$aftersale = AftersaleModel::canDelete()->where('user_id', $user->id)->where('id', $id)->find();
|
||||
if (!$aftersale) {
|
||||
$this->error('售后单不存在或不可删除');
|
||||
}
|
||||
|
||||
$order = OrderModel::withTrashed()->where('id', $aftersale['order_id'])->find();
|
||||
Db::transaction(function () use ($aftersale, $order, $user) {
|
||||
AftersaleLogModel::add($order, $aftersale, $user, 'user', [
|
||||
'log_type' => 'delete',
|
||||
'content' => '用户删除售后单',
|
||||
'images' => []
|
||||
]);
|
||||
|
||||
$aftersale->delete(); // 删除售后单(后删除,否则添加记录时 $aftersale 没数据)
|
||||
});
|
||||
|
||||
$this->success('删除成功');
|
||||
}
|
||||
}
|
||||
62
addons/shopro/controller/order/Express.php
Normal file
62
addons/shopro/controller/order/Express.php
Normal file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace addons\shopro\controller\order;
|
||||
|
||||
use addons\shopro\controller\Common;
|
||||
use app\admin\model\shopro\order\Express as OrderExpressModel;
|
||||
use addons\shopro\library\express\Express as ExpressLib;
|
||||
|
||||
class Express extends Common
|
||||
{
|
||||
|
||||
protected $noNeedLogin = ['push'];
|
||||
protected $noNeedRight = ['*'];
|
||||
|
||||
public function index()
|
||||
{
|
||||
$user = auth_user();
|
||||
$order_id = $this->request->param('order_id');
|
||||
|
||||
// 更新包裹信息(5分钟缓存)
|
||||
(new ExpressLib)->updateOrderExpress($order_id);
|
||||
|
||||
$expresses = OrderExpressModel::with(['logs', 'items' => function ($query) use ($order_id) {
|
||||
return $query->where('order_id', $order_id);
|
||||
}])->where('user_id', $user->id)->where('order_id', $order_id)->select();
|
||||
|
||||
$this->success('获取成功', $expresses);
|
||||
}
|
||||
|
||||
|
||||
public function detail()
|
||||
{
|
||||
$user = auth_user();
|
||||
$id = $this->request->param('id');
|
||||
$order_id = $this->request->param('order_id');
|
||||
|
||||
// 更新包裹信息(5分钟缓存)
|
||||
(new ExpressLib)->updateOrderExpress($order_id);
|
||||
|
||||
$express = OrderExpressModel::with(['logs', 'items' => function ($query) use ($order_id) {
|
||||
return $query->where('order_id', $order_id);
|
||||
}])->where('user_id', $user->id)->where('order_id', $order_id)->where('id', $id)->find();
|
||||
|
||||
$this->success('获取成功', $express);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 接受物流推送
|
||||
*
|
||||
* @param Request $request
|
||||
* @return void
|
||||
*/
|
||||
public function push()
|
||||
{
|
||||
$data = $this->request->param();
|
||||
$expressLib = new ExpressLib();
|
||||
$result = $expressLib->push($data);
|
||||
return response($result, 200, [], 'json');
|
||||
}
|
||||
}
|
||||
73
addons/shopro/controller/order/Invoice.php
Normal file
73
addons/shopro/controller/order/Invoice.php
Normal file
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
namespace addons\shopro\controller\order;
|
||||
|
||||
use addons\shopro\controller\Common;
|
||||
use app\admin\model\shopro\order\Invoice as OrderInvoiceModel;
|
||||
|
||||
class Invoice extends Common
|
||||
{
|
||||
protected $noNeedLogin = [];
|
||||
protected $noNeedRight = ['*'];
|
||||
|
||||
public function index()
|
||||
{
|
||||
$user = auth_user();
|
||||
$params = $this->request->param();
|
||||
$type = $params['type'] ?? 'all';
|
||||
|
||||
$invoices = OrderInvoiceModel::where('user_id', $user->id);
|
||||
|
||||
switch ($type) {
|
||||
case 'cancel':
|
||||
$invoices = $invoices->cancel();
|
||||
break;
|
||||
case 'waiting':
|
||||
$invoices = $invoices->waiting();
|
||||
break;
|
||||
case 'finish':
|
||||
$invoices = $invoices->finish();
|
||||
break;
|
||||
default :
|
||||
$invoices = $invoices->show(); // 除了未支付的
|
||||
break;
|
||||
}
|
||||
|
||||
$invoices = $invoices->order('id', 'desc')->paginate($this->request->param('list_rows', 10));
|
||||
|
||||
$this->success('获取成功', $invoices);
|
||||
}
|
||||
|
||||
|
||||
public function detail()
|
||||
{
|
||||
$user = auth_user();
|
||||
$id = $this->request->param('id');
|
||||
|
||||
$invoice = OrderInvoiceModel::with(['order', 'order_items'])->where('user_id', $user->id)->where('id', $id)->find();
|
||||
if (!$invoice) {
|
||||
$this->error(__('No Results were found'));
|
||||
}
|
||||
|
||||
$invoice->append(['order_items']); // 取消隐藏 order_items
|
||||
$this->success('获取成功', $invoice);
|
||||
}
|
||||
|
||||
|
||||
// 取消订单
|
||||
public function cancel()
|
||||
{
|
||||
$user = auth_user();
|
||||
$id = $this->request->param('id');
|
||||
|
||||
$invoice = OrderInvoiceModel::where('user_id', $user->id)->waiting()->where('id', $id)->find();
|
||||
if (!$invoice) {
|
||||
$this->error(__('No Results were found'));
|
||||
}
|
||||
|
||||
$invoice->status = 'cancel';
|
||||
$invoice->save();
|
||||
|
||||
$this->success('取消成功', $invoice);
|
||||
}
|
||||
}
|
||||
335
addons/shopro/controller/order/Order.php
Normal file
335
addons/shopro/controller/order/Order.php
Normal file
@@ -0,0 +1,335 @@
|
||||
<?php
|
||||
|
||||
namespace addons\shopro\controller\order;
|
||||
|
||||
use think\Db;
|
||||
use addons\shopro\exception\ShoproException;
|
||||
use addons\shopro\controller\Common;
|
||||
use addons\shopro\service\order\OrderCreate;
|
||||
use addons\shopro\service\order\OrderOper;
|
||||
use app\admin\model\shopro\order\Order as OrderModel;
|
||||
use app\admin\model\shopro\Pay as PayModel;
|
||||
use app\admin\model\shopro\user\Invoice as UserInvoice;
|
||||
use addons\shopro\library\express\Express as ExpressLib;
|
||||
|
||||
class Order extends Common
|
||||
{
|
||||
|
||||
protected $noNeedLogin = [];
|
||||
protected $noNeedRight = ['*'];
|
||||
|
||||
public function index()
|
||||
{
|
||||
$user = auth_user();
|
||||
$params = $this->request->param();
|
||||
$type = $params['type'] ?? 'all';
|
||||
|
||||
$orders = OrderModel::where('user_id', $user->id)->with(['items', 'invoice']);
|
||||
|
||||
switch ($type) {
|
||||
case 'unpaid':
|
||||
$orders = $orders->unpaid();
|
||||
break;
|
||||
case 'nosend':
|
||||
$orders = $orders->pretendPaid()->nosend();
|
||||
break;
|
||||
case 'noget':
|
||||
$orders = $orders->pretendPaid()->noget();
|
||||
break;
|
||||
case 'nocomment':
|
||||
$orders = $orders->paid()->nocomment();
|
||||
break;
|
||||
}
|
||||
|
||||
$orders = $orders->order('id', 'desc')->paginate(request()->param('list_rows', 10))->toArray();
|
||||
|
||||
$orderModel = new OrderModel();
|
||||
foreach ($orders['data'] as &$order) {
|
||||
$order = $orderModel->setOrderItemStatusByOrder($order);
|
||||
}
|
||||
|
||||
$this->success('获取成功', $orders);
|
||||
}
|
||||
|
||||
|
||||
public function detail()
|
||||
{
|
||||
$user = auth_user();
|
||||
$id = $this->request->param('id');
|
||||
$merchant_trade_no = $this->request->param('merchant_trade_no');
|
||||
$transaction_id = $this->request->param('transaction_id');
|
||||
|
||||
$order = OrderModel::where('user_id', $user->id)->with(['items', 'address', 'invoice']);
|
||||
|
||||
if ($id) {
|
||||
$order = $order->where(function ($query) use ($id) {
|
||||
return $query->where('id', $id)->whereOr('order_sn', $id);
|
||||
});
|
||||
} else if ($merchant_trade_no) {
|
||||
$pay = PayModel::where('pay_sn', $merchant_trade_no)->findOrFail();
|
||||
$order = $order->where('id', $pay->order_id);
|
||||
} else {
|
||||
$this->error('参数错误');
|
||||
}
|
||||
|
||||
$order = $order->find();
|
||||
if (!$order) {
|
||||
$this->error(__('No Results were found'));
|
||||
}
|
||||
|
||||
$order->pay_types_text = $order->pay_types_text;
|
||||
// 处理未支付订单 item status_code
|
||||
$order = $order->setOrderItemStatusByOrder($order); // 这里订单转 数组了
|
||||
|
||||
// 更新包裹信息(5分钟缓存)
|
||||
(new ExpressLib)->updateOrderExpress($order['id']);
|
||||
|
||||
$this->success('获取成功', $order);
|
||||
}
|
||||
|
||||
|
||||
public function itemDetail()
|
||||
{
|
||||
$user = auth_user();
|
||||
|
||||
$id = $this->request->param('id');
|
||||
$item_id = $this->request->param('item_id');
|
||||
|
||||
if (!$id || !$item_id) {
|
||||
$this->error('参数错误');
|
||||
}
|
||||
|
||||
$order = OrderModel::with(['items' => function ($query) use ($item_id) {
|
||||
$query->where('id', $item_id);
|
||||
}])->where('user_id', $user->id)->where('id', $id)->find();
|
||||
if (!$order || !$order->items) {
|
||||
$this->error(__('No Results were found'));
|
||||
}
|
||||
|
||||
$order = $order->setOrderItemStatusByOrder($order); // 这里订单转 数组了
|
||||
$item = $order['items'][0];
|
||||
|
||||
$this->success('获取成功', $item);
|
||||
}
|
||||
|
||||
|
||||
public function calc()
|
||||
{
|
||||
$params = $this->request->param();
|
||||
$this->svalidate($params, ".calc");
|
||||
|
||||
$orderCreate = new OrderCreate($params);
|
||||
$result = $orderCreate->calc();
|
||||
|
||||
if (isset($result['msg']) && $result['msg']) {
|
||||
$this->error($result['msg'], $result);
|
||||
} else {
|
||||
$this->success('计算成功', $result);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public function create()
|
||||
{
|
||||
$params = $this->request->param();
|
||||
$this->svalidate($params, ".create");
|
||||
|
||||
$orderCreate = new OrderCreate($params);
|
||||
$result = $orderCreate->calc('create');
|
||||
|
||||
$order = $orderCreate->create($result);
|
||||
|
||||
$this->success('订单添加成功', $order);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取用户可用和不可用优惠券
|
||||
*
|
||||
* @param Request $request
|
||||
* @return void
|
||||
*/
|
||||
public function coupons()
|
||||
{
|
||||
$params = $this->request->param();
|
||||
$this->svalidate($params, ".create");
|
||||
|
||||
$orderCreate = new OrderCreate($params);
|
||||
$result = $orderCreate->getCoupons();
|
||||
|
||||
$this->success('获取成功', $result);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 取消订单
|
||||
public function cancel()
|
||||
{
|
||||
$user = auth_user();
|
||||
$id = $this->request->param('id');
|
||||
|
||||
$order = Db::transaction(function () use ($id, $user) {
|
||||
$order = OrderModel::canCancel()->where('user_id', $user->id)->with(['items', 'invoice'])->lock(true)->where('id', $id)->find();
|
||||
if (!$order) {
|
||||
$this->error(__('No Results were found'));
|
||||
}
|
||||
|
||||
$orderOper = new OrderOper();
|
||||
$order = $orderOper->cancel($order, $user, 'user');
|
||||
|
||||
return $order;
|
||||
});
|
||||
// 订单未支付,处理 item 状态
|
||||
$order = $order->setOrderItemStatusByOrder($order); // 这里订单转 数组了
|
||||
|
||||
$this->success('取消成功', $order);
|
||||
}
|
||||
|
||||
|
||||
// 订单申请全额退款
|
||||
public function applyRefund()
|
||||
{
|
||||
$user = auth_user();
|
||||
$id = $this->request->param('id');
|
||||
|
||||
$order = OrderModel::paid()->where('user_id', $user->id)->where('id', $id)->find();
|
||||
if (!$order) {
|
||||
$this->error(__('No Results were found'));
|
||||
}
|
||||
|
||||
$order = Db::transaction(function () use ($order, $user) {
|
||||
$orderOper = new OrderOper();
|
||||
$order = $orderOper->applyRefund($order, $user, 'user');
|
||||
|
||||
return $order;
|
||||
});
|
||||
|
||||
$order = OrderModel::with(['items', 'invoice'])->find($id);
|
||||
$order = $order->setOrderItemStatusByOrder($order); // 这里订单转 数组了
|
||||
$this->success('申请成功', $order);
|
||||
}
|
||||
|
||||
// 确认收货(货到付款的确认收货在后台)
|
||||
public function confirm()
|
||||
{
|
||||
$user = auth_user();
|
||||
$id = $this->request->param('id');
|
||||
|
||||
$order = OrderModel::paid()->where('user_id', $user->id)->where('id', $id)->find();
|
||||
if (!$order) {
|
||||
$this->error(__('No Results were found'));
|
||||
}
|
||||
|
||||
$order = Db::transaction(function () use ($order, $user) {
|
||||
$orderOper = new OrderOper();
|
||||
$order = $orderOper->confirm($order, [], $user, 'user');
|
||||
|
||||
return $order;
|
||||
});
|
||||
|
||||
$order = OrderModel::with(['items', 'invoice'])->find($id);
|
||||
$this->success('收货成功', $order);
|
||||
}
|
||||
|
||||
|
||||
// 评价
|
||||
public function comment()
|
||||
{
|
||||
$user = auth_user();
|
||||
$params = $this->request->param();
|
||||
$id = $params['id'] ?? 0;
|
||||
$this->svalidate($params, ".comment");
|
||||
|
||||
$comments = $params['comments'] ?? [];
|
||||
foreach ($comments as $comment) {
|
||||
$this->svalidate($comment, ".comment_item");
|
||||
}
|
||||
|
||||
$order = OrderModel::paid()->where('user_id', $user->id)->where('id', $id)->find();
|
||||
if (!$order) {
|
||||
$this->error(__('No Results were found'));
|
||||
}
|
||||
|
||||
$order = Db::transaction(function () use ($order, $params, $user) {
|
||||
$orderOper = new OrderOper();
|
||||
$order = $orderOper->comment($order, $params['comments'], $user, 'user');
|
||||
|
||||
return $order;
|
||||
});
|
||||
|
||||
$this->success('评价成功', $order);
|
||||
}
|
||||
|
||||
|
||||
public function applyInvoice()
|
||||
{
|
||||
$user = auth_user();
|
||||
|
||||
$params = $this->request->param();
|
||||
$id = $params['id'] ?? 0;
|
||||
$invoice_id = $params['invoice_id'] ?? 0;
|
||||
|
||||
// 获取用户发票信息
|
||||
$userInvoice = UserInvoice::where('user_id', $user->id)->find($invoice_id);
|
||||
|
||||
if (!$userInvoice) {
|
||||
$this->error('请选择正确的发票信息');
|
||||
}
|
||||
|
||||
$order = Db::transaction(function () use ($id, $userInvoice, $user) {
|
||||
$order = OrderModel::paid()->lock(true)->where('user_id', $user->id)->find($id);
|
||||
|
||||
$orderOper = new OrderOper();
|
||||
$order = $orderOper->applyInvoice($order, $userInvoice, $user, 'user');
|
||||
|
||||
return $order;
|
||||
});
|
||||
|
||||
$this->success('申请成功');
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 用户是否存在未支付的,当前团的订单
|
||||
*
|
||||
* @param Request $request
|
||||
* @return void
|
||||
*/
|
||||
public function unpaidGrouponOrder()
|
||||
{
|
||||
$user = auth_user();
|
||||
|
||||
$params = $this->request->param();
|
||||
$activity_id = $params['activity_id'] ?? 0;
|
||||
|
||||
if ($user && $activity_id) {
|
||||
$order = OrderModel::unpaid()->where('user_id', $user->id)
|
||||
->where('activity_id', $activity_id)
|
||||
->whereIn('activity_type', ['groupon', 'groupon_ladder'])->find();
|
||||
}
|
||||
|
||||
$this->success('获取成功', $order ?? null);
|
||||
}
|
||||
|
||||
|
||||
// 删除订单
|
||||
public function delete()
|
||||
{
|
||||
$user = auth_user();
|
||||
$id = $this->request->param('id');
|
||||
|
||||
$order = OrderModel::canDelete()->where('user_id', $user->id)->where('id', $id)->find();
|
||||
if (!$order) {
|
||||
$this->error('订单不存在或不可删除');
|
||||
}
|
||||
|
||||
Db::transaction(function () use ($order, $user) {
|
||||
$orderOper = new OrderOper();
|
||||
$orderOper->delete($order, $user, 'user');
|
||||
});
|
||||
|
||||
$this->success('删除成功');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user