更新
This commit is contained in:
@@ -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']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user