manghe/app/api/controller/Order.php
2025-04-12 23:03:43 +08:00

134 lines
4.5 KiB
PHP

<?php
namespace app\api\controller;
use app\common\model\Order as OrderModel;
use app\common\model\OrderList;
use think\facade\Db;
/**
* 订单控制器
*/
class Order extends Base
{
/**
* 获取微信支付订单列表
*
* @return \think\Response
*/
public function getOrderList()
{
// 获取当前登录用户
$user = $this->getUser();
// 获取分页参数
$page = $this->request->param('page', 1);
$pageSize = $this->request->param('page_size', 10);
// 获取订单列表
$orderQuery = Db::name('order')
->field('goods_id, goods_title, goods_price, order_total, order_zhe_total, price, use_money, use_integral, use_money2, addtime, pay_time, prize_num, use_coupon, order_num')
->where([
'user_id' => $user['id'],
'status' => 1
])
->order('addtime desc');
// 获取总数
$total = $orderQuery->count();
// 获取分页数据
$orderList = $orderQuery->page($page, $pageSize)->select()->toArray();
// 格式化数据
foreach ($orderList as &$order) {
// 格式化时间
$order['addtime'] = date('Y-m-d H:i:s', $order['addtime']);
$order['pay_time'] = $order['pay_time'] ? date('Y-m-d H:i:s', $order['pay_time']) : '';
// 格式化价格数据
$order['goods_price'] = (float)$order['goods_price'];
$order['order_total'] = (float)$order['order_total'];
$order['order_zhe_total'] = (float)$order['order_zhe_total'];
$order['price'] = (float)$order['price'];
$order['use_money'] = (float)$order['use_money'];
$order['use_money2'] = (float)$order['use_money2'];
}
unset($order);
// 返回分页数据
$data = [
'list' => $orderList,
'total' => $total,
'page' => (int)$page,
'page_size' => (int)$pageSize,
'total_pages' => ceil($total / $pageSize)
];
return $this->renderSuccess('获取成功', $data);
}
/**
* 获取订单详情
*
* @return \think\Response
*/
public function getOrderDetail()
{
// 获取订单编号
$orderNum = $this->request->param('order_num', '');
if (empty($orderNum)) {
return $this->renderError('订单编号不能为空');
}
// 获取当前登录用户
$user = $this->getUser();
// 获取订单详情
$orderInfo = Db::name('order')
->field('order_num,goods_id, goods_title, goods_price, id, order_total, order_zhe_total, price, use_money, use_integral, use_money2, addtime, pay_time, prize_num, use_coupon')
->where([
'status' => 1,
'order_num' => $orderNum
])
->find();
if (!$orderInfo) {
return $this->renderError('订单不存在');
}
// 格式化时间
$orderInfo['addtime'] = date('Y-m-d H:i:s', $orderInfo['addtime']);
$orderInfo['pay_time'] = $orderInfo['pay_time'] ? date('Y-m-d H:i:s', $orderInfo['pay_time']) : '';
// 格式化价格数据
$orderInfo['goods_price'] = (float)$orderInfo['goods_price'];
$orderInfo['order_total'] = (float)$orderInfo['order_total'];
$orderInfo['order_zhe_total'] = (float)$orderInfo['order_zhe_total'];
$orderInfo['price'] = (float)$orderInfo['price'];
$orderInfo['use_money'] = (float)$orderInfo['use_money'];
$orderInfo['use_money2'] = (float)$orderInfo['use_money2'];
// 获取订单商品列表
$orderGoods = Db::name('order_list')
->field('goodslist_title, goodslist_imgurl, goodslist_price, addtime')
->where([
'order_id' => $orderInfo['id']
])
->select()->toArray();
// 格式化订单商品数据
foreach ($orderGoods as &$goods) {
$goods['addtime'] = date('Y-m-d H:i:s', $goods['addtime']);
$goods['goodslist_price'] = (float)$goods['goodslist_price'];
$goods['goodslist_imgurl'] = imageUrl($goods['goodslist_imgurl']);
}
unset($goods);
$orderInfo['goods_list'] = $orderGoods;
return $this->renderSuccess('获取成功', $orderInfo);
}
}