184 lines
7.0 KiB
PHP
184 lines
7.0 KiB
PHP
<?php
|
|
namespace addon\supply\shop\controller;
|
|
use addon\supply\model\order\OrderCommon as OrderCommonModel;
|
|
use addon\supply\model\CloudApi;
|
|
use addon\supply\model\order\OrderCreate;
|
|
use app\shop\controller\BaseShop;
|
|
class Supplyorder extends BaseShop
|
|
{
|
|
public function lists()
|
|
{
|
|
if (request()->isAjax()) {
|
|
$order_common_model = new OrderCommonModel();
|
|
$condition = array(
|
|
["buyer_shop_id", "=", $this->site_id],
|
|
);
|
|
$order_status = input('order_status', 'all');
|
|
switch ($order_status) {
|
|
case "waitpay"://待付款
|
|
$condition[] = ["order_status", "=", 0];
|
|
break;
|
|
case "waitsend"://待发货
|
|
$condition[] = ["order_status", "=", 1];
|
|
break;
|
|
case "waitconfirm"://待收货
|
|
$condition[] = ["order_status", "=", 3];
|
|
break;
|
|
case "waitrate"://待评价
|
|
$condition[] = ["order_status", "in", [4, 10]];
|
|
$condition[] = ["is_evaluate", "=", 1];
|
|
break;
|
|
}
|
|
$page_index = input('page', 1);
|
|
$page_size = input('page_size', PAGE_LIST_ROWS);
|
|
$res = $order_common_model->getMemberOrderPageList($condition, $page_index, $page_size, "create_time desc");
|
|
$shop_order_ids=array_column($res['data']['list'],'shop_order_id');
|
|
$goods_order_ids = model('order_goods')->getColumn([['site_id', '=', $this->site_id],['order_id', 'in', $shop_order_ids]],'goods_money', 'order_id');
|
|
foreach ($res['data']['list'] as $key => &$value) {
|
|
if(isset($goods_order_ids[$value['shop_order_id']])){
|
|
$value['shop_goods_money']=$goods_order_ids[$value['shop_order_id']];
|
|
}
|
|
}
|
|
return $res;
|
|
} else {
|
|
$this->forthMenu();
|
|
return $this->fetch("supply_order/lists");
|
|
}
|
|
}
|
|
|
|
|
|
public function seeSubOrder()
|
|
{
|
|
$order_id = input('order_id', 0);
|
|
$channel_type = input('channel_type', '');
|
|
if (request()->isAjax()) {
|
|
$order_common_model = new OrderCommonModel();
|
|
$search = request()->all();
|
|
$info=$order_common_model->getOrderInfo(['order_id'=>$order_id],'shop_order_id');
|
|
$res = $order_common_model->getSubOrder($this->site_id, $info['data']['shop_order_id'], $search);
|
|
return $res;
|
|
}
|
|
return $this->fetch('supply_order/sub_list', ['order_id' => $order_id,'channel_type'=>$channel_type]);
|
|
}
|
|
|
|
|
|
/****
|
|
* 取消订单
|
|
* @return void
|
|
*/
|
|
public function cancelOrder()
|
|
{
|
|
$order_id = input('order_id', 0);
|
|
$cancelReason = input('cancelReason', '');
|
|
if (request()->isAjax()) {
|
|
$order_common_model = new OrderCommonModel();
|
|
$res = $order_common_model->getMemberOrderDetail($order_id)['data'];
|
|
$order_from_name = explode('|', $res['order_from_name']);
|
|
if ($res['order_from'] == 'api') {
|
|
$cloudModel = new CloudApi($order_from_name[1]);
|
|
$data = [
|
|
'outTradeNo' => $res['out_trade_no'],
|
|
'cancelReason' => $cancelReason,
|
|
];
|
|
$payData = $cloudModel->cancelOrder($data);
|
|
if ($payData['code'] == 0) {
|
|
$up = [
|
|
'reason_failure' => $cancelReason,
|
|
'request_content' => '卖家主动取消订单'
|
|
];
|
|
$outTradeNo = $data['outTradeNo'];
|
|
$order_common_model->orderUpdate($up, ['out_trade_no' => $outTradeNo]);
|
|
}
|
|
return $payData;
|
|
}
|
|
return $res;
|
|
}
|
|
}
|
|
|
|
/***
|
|
* 发起密码支付
|
|
* @return void
|
|
*/
|
|
public function buyPay()
|
|
{
|
|
$order_id = input('order_id', 0);
|
|
if (request()->isAjax()) {
|
|
$order_common_model = new OrderCommonModel();
|
|
$res = $order_common_model->getMemberOrderDetail($order_id)['data'];
|
|
if (!$res['pay_status'] == 1) {
|
|
return error('该订单已支付');
|
|
} else {
|
|
$order_from_name = explode('|', $res['order_from_name']);
|
|
if ($res['order_from'] == 'api') {
|
|
$cloudModel = new CloudApi($order_from_name[1]);
|
|
$data = [
|
|
'outTradeNo' => $res['out_trade_no'],
|
|
];
|
|
$qres = $cloudModel->pBalancePay($data);
|
|
$payData = $qres['data'];
|
|
if ($payData['code'] != 0) {
|
|
if ($payData['message'] == '订单已支付') {
|
|
$up = [
|
|
'pay_status' => 1,
|
|
'three_pay_status' => 1
|
|
];
|
|
$outTradeNo = $data['outTradeNo'];
|
|
$order_common_model->orderUpdate($up, ['out_trade_no' => $outTradeNo]);
|
|
return success(0, '支付成功');
|
|
}
|
|
return $payData;
|
|
} else {
|
|
if ($payData['isPay'] == 1) {
|
|
$up = [
|
|
'pay_status' => 1,
|
|
'three_pay_status' => 1
|
|
];
|
|
$outTradeNo = $data['outTradeNo'];
|
|
$order_common_model->orderUpdate($up, ['out_trade_no' => $outTradeNo]);
|
|
return success(0, '支付成功');
|
|
}
|
|
}
|
|
return $res;
|
|
}
|
|
}
|
|
return $res;
|
|
}
|
|
}
|
|
|
|
|
|
/***
|
|
* 获取在线支付信息
|
|
* @return array|void
|
|
*/
|
|
public function onlinePay()
|
|
{
|
|
$order_id = input('order_id', 0);
|
|
if (request()->isAjax()) {
|
|
$order_common_model = new OrderCommonModel();
|
|
$res = $order_common_model->getMemberOrderDetail($order_id)['data'];
|
|
$order_from_name = explode('|', $res['order_from_name']);
|
|
if ($res['order_from'] == 'api') {
|
|
$cloudModel = new CloudApi($order_from_name[1]);
|
|
$data = [
|
|
'outTradeNo' => $res['out_trade_no'],
|
|
];
|
|
$qres = $cloudModel->getPayOnlineInfo($data);
|
|
return $qres;
|
|
}
|
|
}
|
|
}
|
|
|
|
public function resetOrder()
|
|
{
|
|
if (request()->isAjax()) {
|
|
$order_id = input('order_id', 0);
|
|
$orderInfo=model('order')->getInfo(['order_id'=>$order_id]);
|
|
if($orderInfo){
|
|
return (new OrderCreate())->orderPay($orderInfo);
|
|
}else{
|
|
return error(-1,'订单不存在');
|
|
}
|
|
}
|
|
}
|
|
}
|