webman-admin/app/admin/logic/OrderLogic.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();
}
}