glhcp/server/app/api/controller/Order.php

262 lines
7.3 KiB
PHP
Raw Normal View History

2023-08-10 06:59:52 +00:00
<?php
namespace app\api\controller;
use app\api\logic\OrderInvoiceLogic;
use app\api\logic\OrderLogic;
use app\api\validate\OrderValidate;
use app\common\basics\Api;
2023-09-26 08:12:38 +00:00
use app\common\enum\ClientEnum;
2023-08-14 09:51:34 +00:00
use app\common\server\ConfigServer;
2023-08-10 06:59:52 +00:00
use app\common\server\JsonServer;
class Order extends Api
{
2023-08-14 09:51:34 +00:00
public $like_not_need_login = ['contractDownload'];
/**
* @notes 合同下载
* @return \think\response\Json
* @throws \think\Exception
* @author suny
* @date 2021/7/13 6:11 下午
*/
public function contractDownload()
{
$path = ConfigServer::get('website', 'order_contract_template');
return JsonServer::success('下单成功!', ['path' => $path, 'domain' => request()->domain()]);
}
2023-08-14 10:17:45 +00:00
// 合同上传
2023-08-14 09:51:34 +00:00
public function contractUpload()
{
2023-08-14 10:17:45 +00:00
$orderId = input('order_id/d');
$path = input('path/s');
2023-08-14 09:51:34 +00:00
2023-08-14 10:17:45 +00:00
if (empty($orderId) || empty($path)) {
return JsonServer::error('参数错误!');
}
if (!$order = \app\common\model\order\Order::where('id', $orderId)->find()) {
return JsonServer::error('订单不存在!');
}
$order->save([
'frontend_info' => $path
]);
return JsonServer::success('操作成功!');
2023-08-14 09:51:34 +00:00
}
2023-08-10 06:59:52 +00:00
/**
* @notes 下单
* @return \think\response\Json
* @throws \think\Exception
* @author suny
* @date 2021/7/13 6:11 下午
*/
public function submit_order()
{
$post = $this->request->post();
$post['user_id'] = $this->user_id;
$post['client'] = $this->client;
2023-09-26 08:12:38 +00:00
if ($this->client == ClientEnum::api) {
$post['is_api'] = 1;//通过三方API生成的订单
$post['is_frontend'] = 1;//通过三方API生成的订单默认设置前置订单 不需要付款
2023-09-26 08:12:38 +00:00
}
2023-08-10 06:59:52 +00:00
(new OrderValidate())->goCheck('add', $post);
$order = OrderLogic::add($post);
if (false === $order) {
return JsonServer::error(OrderLogic::getError());
}
return JsonServer::success('下单成功!', $order);
}
/**
* @notes 结算页数据
* @return \think\response\Json
* @author suny
* @date 2021/7/13 6:11 下午
*/
public function settlement()
{
$post = $this->request->post();
$post['user_id'] = $this->user_id;
$post['client'] = $this->client;
$result = OrderLogic::settlement($post);
if($result === false) {
return JsonServer::error(OrderLogic::getError(), [], 301);
}
return JsonServer::success('获取成功', $result);
}
/**
* @notes 订单列表
* @return \think\response\Json
* @author suny
* @date 2021/7/13 6:11 下午
*/
public function lists()
{
$type = $this->request->get('type', 'all');
$order_list = OrderLogic::getOrderList($this->user_id, $type, $this->page_no, $this->page_size);
return JsonServer::success('获取成功', $order_list);
}
/**
* @notes 获取订单详情
* @return \think\response\Json
* @author suny
* @date 2021/7/13 6:11 下午
*/
public function getOrderDetail()
{
$get = $this->request->get();
(new OrderValidate())->goCheck('getOrderDetail', $get);
$detail = OrderLogic::getOrderDetail($get['id']);
return JsonServer::success('获取成功', $detail);
}
/**
* @notes 取消订单
* @return array|\think\response\Json
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
* @author suny
* @date 2021/7/13 6:11 下午
*/
public function cancel()
{
$order_id = $this->request->post('id');
if (empty($order_id)) {
return JsonServer::error('参数错误');
}
return OrderLogic::cancel($order_id, $this->user_id);
}
/**
* @notes 确认收货
* @return array|\think\response\Json
* @author suny
* @date 2021/7/13 6:11 下午
*/
public function confirm()
{
$order_id = $this->request->post('id');
if (empty($order_id)) {
return JsonServer::error('参数错误');
}
return OrderLogic::confirm($order_id, $this->user_id);
}
/**
* @notes 删除订单
* @return array|\think\response\Json
* @author suny
* @date 2021/7/13 6:12 下午
*/
public function del()
{
$order_id = $this->request->post('id');
if (empty($order_id)) {
return JsonServer::error('参数错误');
}
return OrderLogic::del($order_id, $this->user_id);
}
/**
* @notes 订单支付结果页面数据
* @return \think\response\Json
* @author suny
* @date 2021/7/13 6:12 下午
*/
public function pay_result()
{
$id = $this->request->get('id');
$from = $this->request->get('from');//标识trade父订单order子订单
$result = OrderLogic::pay_result($id,$from);
if ($result !== false) {
return JsonServer::success('', $result);
} else {
return JsonServer::error('参数错误');
}
}
/**
* @notes 获取支付方式
* @return \think\response\Json
* @author suny
* @date 2021/7/13 6:12 下午
*/
public function getPayWay()
{
$params = $this->request->get();
if(!isset($params['from']) || !isset($params['order_id'])) {
return JsonServer::error('参数缺失');
}
$pay_way = OrderLogic::getPayWay($this->user_id, $this->client, $params);
return JsonServer::success('', $pay_way);
}
/**
* @notes 物流查询
* @return \think\response\Json
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
* @author suny
* @date 2021/7/13 6:12 下午
*/
public function orderTraces()
{
$order_id = $this->request->get('id');
$tips = '参数错误';
if ($order_id) {
$traces = OrderLogic::orderTraces($order_id, $this->user_id);
if ($traces) {
return JsonServer::success('获取成功', $traces);
}
$tips = '暂无物流信息';
}
return JsonServer::error($tips);
}
/**
* @notes PC获取支付状态
* @return \think\response\Json
* @author suny
* @date 2021/10/29 3:52 下午
*/
public function getPayStatus()
{
$id = $this->request->get('id');
$from = $this->request->get('from');//标识trade父订单order子订单
$result = OrderLogic::getPayStatus($id,$from);
if ($result !== false) {
return JsonServer::success('', $result);
} else {
return JsonServer::error('参数错误');
}
}
/**
* @notes 发票详情
* @return \think\response\Json
* @author 段誉
* @date 2022/4/12 9:25
*/
public function invoice()
{
$id = $this->request->get('id');
$result = OrderInvoiceLogic::getInvoiceDetailByOrderId($id);
return JsonServer::success('获取成功', $result);
}
}