This commit is contained in:
Your Name
2026-03-11 14:33:49 +08:00
parent 38ad60f4bb
commit 08dd9cd307
57 changed files with 9547 additions and 379 deletions
@@ -32,7 +32,7 @@ class OrderController extends BaseAdminController
public function detail()
{
$params = (new OrderValidate())->post()->goCheck('detail');
$detail = OrderLogic::detail($params['id']);
$detail = OrderLogic::detail((int)$params['id']);
if (!$detail) {
return $this->fail('订单不存在');
@@ -66,7 +66,7 @@ class OrderController extends BaseAdminController
{
$params = (new OrderValidate())->post()->goCheck('edit');
$result = OrderLogic::edit($params['id'], $params);
$result = OrderLogic::edit((int)$params['id'], $params);
if (!$result) {
return $this->fail(OrderLogic::getError());
}
@@ -82,7 +82,26 @@ class OrderController extends BaseAdminController
{
$params = (new OrderValidate())->post()->goCheck('pay');
$result = OrderLogic::pay($params['id'], $params['payment_method']);
// 判断是否是补单支付
if (!empty($params['is_supplement']) && $params['is_supplement'] == 1) {
// 补单支付:通过订单号查找订单
if (empty($params['order_no'])) {
return $this->fail('补单支付需要提供订单号');
}
$order = \app\common\model\Order::where('order_no', $params['order_no'])->find();
if (!$order) {
return $this->fail('订单不存在');
}
$orderId = $order->id;
} else {
// 正常支付:通过订单ID
if (empty($params['id'])) {
return $this->fail('订单ID不能为空');
}
$orderId = (int)$params['id'];
}
$result = OrderLogic::pay($orderId, $params['payment_method']);
if (!$result) {
return $this->fail(OrderLogic::getError());
}
@@ -98,7 +117,7 @@ class OrderController extends BaseAdminController
{
$params = (new OrderValidate())->post()->goCheck('cancel');
$result = OrderLogic::cancel($params['id']);
$result = OrderLogic::cancel((int)$params['id']);
if (!$result) {
return $this->fail(OrderLogic::getError());
}
@@ -114,7 +133,7 @@ class OrderController extends BaseAdminController
{
$params = (new OrderValidate())->post()->goCheck('refund');
$result = OrderLogic::refund($params['id']);
$result = OrderLogic::refund((int)$params['id']);
if (!$result) {
return $this->fail(OrderLogic::getError());
}
@@ -130,7 +149,7 @@ class OrderController extends BaseAdminController
{
$params = (new OrderValidate())->post()->goCheck('delete');
$result = OrderLogic::delete($params['id']);
$result = OrderLogic::delete((int)$params['id']);
if (!$result) {
return $this->fail(OrderLogic::getError());
}
@@ -146,4 +165,92 @@ class OrderController extends BaseAdminController
{
return $this->dataLists(new OrderLists());
}
/**
* @notes 支付宝支付
* @return \think\response\Json
*/
public function alipay()
{
$params = (new OrderValidate())->post()->goCheck('pay');
// 补单支付不需要校验订单是否存在
if (!empty($params['is_supplement']) && $params['is_supplement'] == 1) {
// 补单支付:直接返回支付URL,不校验订单
$payUrl = OrderLogic::alipayPay(['order_no' => $params['order_no']]);
if (!$payUrl) {
return $this->fail(OrderLogic::getError());
}
return $this->data(['pay_url' => $payUrl]);
}
// 正常支付需要校验订单
$order = $this->getOrderByParams($params);
if (!$order) {
return $this->fail('订单不存在');
}
// 调用支付宝支付接口
$payUrl = OrderLogic::alipayPay($order);
if (!$payUrl) {
return $this->fail(OrderLogic::getError());
}
return $this->data(['pay_url' => $payUrl]);
}
/**
* @notes 微信支付
* @return \think\response\Json
*/
public function wechat()
{
$params = (new OrderValidate())->post()->goCheck('pay');
// 补单支付不需要校验订单是否存在
if (!empty($params['is_supplement']) && $params['is_supplement'] == 1) {
// 补单支付:直接返回支付数据,不校验订单
$payData = OrderLogic::wechatPay(['order_no' => $params['order_no']]);
if (!$payData) {
return $this->fail(OrderLogic::getError());
}
return $this->data($payData);
}
// 正常支付需要校验订单
$order = $this->getOrderByParams($params);
if (!$order) {
return $this->fail('订单不存在');
}
// 调用微信支付接口
$payData = OrderLogic::wechatPay($order);
if (!$payData) {
return $this->fail(OrderLogic::getError());
}
return $this->data($payData);
}
/**
* @notes 根据参数获取订单
* @param array $params
* @return mixed
*/
private function getOrderByParams(array $params)
{
if (!empty($params['is_supplement']) && $params['is_supplement'] == 1) {
// 补单支付:通过订单号查找
if (empty($params['order_no'])) {
return null;
}
return \app\common\model\Order::where('order_no', $params['order_no'])->find();
} else {
// 正常支付:通过订单ID
if (empty($params['id'])) {
return null;
}
return \app\common\model\Order::find((int)$params['id']);
}
}
}