jh-admin/addon/supply/shop/controller/Orderrefund.php

176 lines
6.4 KiB
PHP

<?php
/**
* SAAS应用系统 --- 十年开发经验汇集巨献!
* ==========================================================
* Copy right 2020-2050 成都众联思索科技有限公司,保留所有权利。
* ----------------------------------------------------------
* 官方网址: https://www.zoomtk.com
* 这不是自由软件!未经允许不得用于商业目或程序代码摘取及修改。
* 任何企业和个人不允许对程序代码以任何形式任何目的再发布传播。
* 唯一发布渠道www.zoomtk.com;非官方渠道统一视为侵权行为。
* ==========================================================
*/
namespace addon\supply\shop\controller;
use addon\supply\model\Supplier;
use addon\supply\model\order\OrderRefund as OrderRefundModel;
class Orderrefund extends BaseSupplyshop
{
public function initialize()
{
parent::initialize();
$check_login_result = $this->checkLogin();
if($check_login_result['code'] < 0){
echo json_encode($check_login_result);
exit();
}
}
/**
* 售后列表
*/
public function lists()
{
if (request()->isAjax()) {
$refund_model = new OrderRefundModel();
$where = array(
["nop.buyer_shop_id", "=", $this->site_id],
);
$refund_status = input('refund_status', 'all');
switch ($refund_status) {
// case "waitpay"://处理中
// $condition[] = [ "refund_status", "=", 1 ];
// break;
default:
$where[] = ["nop.refund_status", "<>", 0];
break;
}
$page = input('page', 1);
$page_size = input('page_size', PAGE_LIST_ROWS);
$res = $refund_model->getRefundOrderGoodsPageList($where, $page, $page_size, "refund_action_time desc");
return $res;
} else {
return $this->fetch("orderrefund/lists", [], $this->replace);
}
}
/**
* 发起退款
*/
public function refund()
{
if (request()->isAjax()) {
$order_refund_model = new OrderRefundModel();
$order_goods_id = input('order_goods_id', 0);
$refund_type = input('refund_type', 1);
$refund_reason = input('refund_reason', '');
$refund_remark = input('refund_remark', '');
$data = array(
"order_goods_id" => $order_goods_id,
"refund_type" => $refund_type,
"refund_reason" => $refund_reason,
"refund_remark" => $refund_remark
);
$result = $order_refund_model->orderRefundApply($data, $this->user_info, $this->site_id);
return $result;
} else {
$order_goods_id = input('order_goods_id', 0);
$order_refund_model = new OrderRefundModel();
$condition = array(
["order_goods_id", "=", $order_goods_id],
['buyer_shop_id', '=', $this->site_id]
);
$order_goods_info_result = $order_refund_model->getRefundDetail($condition);
$order_goods_info = $order_goods_info_result["data"];//订单项信息
if (empty($order_goods_info))
$this->error('找不到订单');
$refund_money = $order_refund_model->getOrderRefundMoney($order_goods_id);
$refund_type = $order_refund_model->getRefundType($order_goods_info);
$refund_reason_type = $order_refund_model->refund_reason_type;
$result = array(
"order_goods_info" => $order_goods_info,
"refund_money" => $refund_money,
"refund_type" => $refund_type,
"refund_reason_type" => $refund_reason_type
);
$this->assign('data', $result);
return $this->fetch("orderrefund/refund", [], $this->replace);
}
}
/**
* 取消发起的退款申请
* @return mixed[]|string[]
*/
public function cancel()
{
if (request()->isAjax()) {
$order_refund_model = new OrderRefundModel();
$order_goods_id = input('order_goods_id', 0);
$data = array(
"order_goods_id" => $order_goods_id
);
$res = $order_refund_model->memberCancelRefund($data, $this->user_info, $this->site_id);
return $res;
}
}
/**
* 买家退货
* @return string
*/
public function delivery()
{
if (request()->isAjax()) {
$order_refund_model = new OrderRefundModel();
$order_goods_id = input('order_goods_id', 0);
$refund_delivery_name = input('refund_delivery_name', '');
$refund_delivery_no = input('refund_delivery_no', '');
$refund_delivery_remark = input('refund_delivery_remark', '');
$data = array(
"order_goods_id" => $order_goods_id,
"refund_delivery_name" => $refund_delivery_name,
"refund_delivery_no" => $refund_delivery_no,
"refund_delivery_remark" => $refund_delivery_remark
);
$res = $order_refund_model->orderRefundDelivery($data, $this->user_info, $this->site_id);
return $res;
} else {
$this->detail();
return $this->fetch("orderrefund/delivery", [], $this->replace);
}
}
/**
* 维权详情
* @return mixed|void
*/
public function detail()
{
$order_refund_model = new OrderRefundModel();
$order_goods_id = input('order_goods_id', 0);
$order_goods = $order_refund_model->getMemberRefundDetail($order_goods_id, $this->site_id);
if (!empty($order_goods["data"])) {
//查询店铺收货地址
$supplier_model = new Supplier();
$supplier_info_result = $supplier_model->getSupplierInfo(
[["supplier_site_id", "=", $order_goods["data"]['site_id']]]
);
$supplier_info = $supplier_info_result["data"];
$order_goods["data"]["address"] = $supplier_info["full_address"];
}
$this->assign('detail', $order_goods['data']);
return $this->fetch("orderrefund/detail", [], $this->replace);
}
}