90 lines
2.4 KiB
PHP
90 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace App\Admin\Services;
|
|
|
|
use App\Exceptions\BizException;
|
|
use App\Models\Order;
|
|
use App\Models\OrderLog;
|
|
use App\Services\OrderService as EndpointOrderService;
|
|
|
|
class OrderService
|
|
{
|
|
/**
|
|
* 订单调整价格
|
|
*
|
|
* @return void
|
|
*/
|
|
public function adminReduceOrder(Order $order, int $reduceAmount)
|
|
{
|
|
if ($order->isPending()) {
|
|
$res = $order->where('updated_at', $order->updated_at)->update([
|
|
'reduced_amount' => $order->total_amount - $reduceAmount + $order->reduced_amount,
|
|
'total_amount' => $reduceAmount,
|
|
]);
|
|
if ($res === 0) {
|
|
throw new BizException('订单已发生改变');
|
|
}
|
|
OrderLog::create([
|
|
'order_id'=>$order->id,
|
|
'content'=> '调整订单支付价格为:¥'.bcdiv($reduceAmount, 100, 2),
|
|
]);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 后台支付订单
|
|
*
|
|
* @param Order $order
|
|
* @return void
|
|
*/
|
|
public function adminPay(Order $order)
|
|
{
|
|
if ($order->isPending()) {
|
|
//操作订单状态-需要调整为统一支付方法
|
|
$orderService = new EndpointOrderService();
|
|
$orderService->paySuccess($order, [
|
|
'pay_sn' => date('YmdHis').sprintf('%02d', mt_rand(1, 99)),
|
|
'pay_way' => Order::PAY_WAY_OFFLINE,
|
|
'pay_at' => now(),
|
|
]);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 添加后台备注
|
|
*
|
|
* @param Order $order
|
|
* @param string $remark
|
|
* @return void
|
|
*/
|
|
public function adminRemark(Order $order, string $remark)
|
|
{
|
|
//操作订单状态-需要调整为统一支付方法
|
|
$order->update([
|
|
'remark' => $remark,
|
|
]);
|
|
|
|
OrderLog::create([
|
|
'order_id'=>$order->id,
|
|
'content'=> '修改订单备注:'.$remark,
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 修改订单收货信息
|
|
*
|
|
* @param Order $order
|
|
* @param array $params
|
|
* @return void
|
|
*/
|
|
public function adminEditConsignee(Order $order, array $params)
|
|
{
|
|
$oldOrderConsignee = $order->consignee_name.','.$order->consignee_telephone.','.$order->consignee_zone.$order->consignee_address;
|
|
$order->update($params);
|
|
OrderLog::create([
|
|
'order_id'=>$order->id,
|
|
'content'=> '修改订单收货信息<br\>原收货信息:'.$oldOrderConsignee,
|
|
]);
|
|
}
|
|
}
|