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

262 lines
7.3 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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;
use app\common\enum\ClientEnum;
use app\common\server\ConfigServer;
use app\common\server\JsonServer;
class Order extends Api
{
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()]);
}
// 合同上传
public function contractUpload()
{
$orderId = input('order_id/d');
$path = input('path/s');
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('操作成功!');
}
/**
* @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;
if ($this->client == ClientEnum::api) {
$post['is_api'] = 1;//通过三方API生成的订单
$post['is_frontend'] = 1;//通过三方API生成的订单默认设置前置订单 不需要付款
}
(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);
}
}