131 lines
3.5 KiB
PHP
131 lines
3.5 KiB
PHP
<?php
|
|
|
|
namespace app\admin\logic;
|
|
|
|
|
|
use app\common\model\Order;
|
|
use app\common\logic\BaseLogic;
|
|
use think\facade\Db;
|
|
|
|
|
|
/**
|
|
* Order逻辑
|
|
* Class OrderLogic
|
|
* @package app\admin\logic
|
|
*/
|
|
class OrderLogic extends BaseLogic
|
|
{
|
|
|
|
|
|
/**
|
|
* @notes 添加
|
|
* @param array $params
|
|
* @return bool
|
|
* @author likeadmin
|
|
* @date 2025/07/17 17:16
|
|
*/
|
|
public static function add(array $params): bool
|
|
{
|
|
Db::startTrans();
|
|
try {
|
|
Order::create([
|
|
'order_sn' => $params['order_sn'],
|
|
'uid' => $params['uid'],
|
|
'project_id' => $params['project_id'],
|
|
'order_type' => $params['order_type'],
|
|
'total_amount' => $params['total_amount'],
|
|
'pay_amount' => $params['pay_amount'],
|
|
'status' => $params['status'],
|
|
'paid' => $params['paid'],
|
|
'pay_time' => $params['pay_time'],
|
|
'customer_name' => $params['customer_name'],
|
|
'phone' => $params['phone'],
|
|
'address' => $params['address'],
|
|
'delivery_time' => $params['delivery_time'],
|
|
]);
|
|
|
|
Db::commit();
|
|
return true;
|
|
} catch (\Exception $e) {
|
|
Db::rollback();
|
|
self::setError($e->getMessage());
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* @notes 编辑
|
|
* @param array $params
|
|
* @return bool
|
|
* @author likeadmin
|
|
* @date 2025/07/17 17:16
|
|
*/
|
|
public static function edit(array $params): bool
|
|
{
|
|
Db::startTrans();
|
|
try {
|
|
Order::where('id', $params['id'])->update([
|
|
'order_sn' => $params['order_sn'],
|
|
'uid' => $params['uid'],
|
|
'project_id' => $params['project_id'],
|
|
'order_type' => $params['order_type'],
|
|
'total_amount' => $params['total_amount'],
|
|
'pay_amount' => $params['pay_amount'],
|
|
'status' => $params['status'],
|
|
'paid' => $params['paid'],
|
|
'pay_time' => $params['pay_time'],
|
|
'customer_name' => $params['customer_name'],
|
|
'phone' => $params['phone'],
|
|
'address' => $params['address'],
|
|
'delivery_time' => $params['delivery_time'],
|
|
]);
|
|
|
|
Db::commit();
|
|
return true;
|
|
} catch (\Exception $e) {
|
|
Db::rollback();
|
|
self::setError($e->getMessage());
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* @notes 删除
|
|
* @param array $params
|
|
* @return bool
|
|
* @author likeadmin
|
|
* @date 2025/07/17 17:16
|
|
*/
|
|
public static function delete(array $params): bool
|
|
{
|
|
return Order::destroy($params['id']);
|
|
}
|
|
|
|
|
|
/**
|
|
* @notes 获取详情
|
|
* @param $params
|
|
* @return array
|
|
* @author likeadmin
|
|
* @date 2025/07/17 17:16
|
|
*/
|
|
public static function detail($params): array
|
|
{
|
|
$data = Order::with(['orderDishes' => function ($query) {
|
|
$query->with('dishes');
|
|
}, 'orderProduct' => function ($query) {
|
|
$query->with('product');
|
|
}])->findOrEmpty($params['id']);
|
|
if (empty($data)) {
|
|
self::setError('订单不存在');
|
|
return [];
|
|
}
|
|
$data['status_text'] = $data->statusText;
|
|
$data['pay_status_text'] = $data->payStatusText;
|
|
$data['order_type_text'] = $data->orderTypeText;
|
|
return $data->toArray();
|
|
}
|
|
}
|