262 lines
7.3 KiB
PHP
262 lines
7.3 KiB
PHP
<?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);
|
||
}
|
||
|
||
}
|