test_service d3170b4d1c 1
2023-12-01 15:43:29 +08:00

1 line
3.4 KiB
PHP

<?php
namespace app\api\controller\food\user;
use app\api\controller\food\Controller;
use app\api\model\food\Order as OrderModel;
use think\facade\Cache;
use hema\Helper;
/**
* 用户订单管理
*/
class Refund extends Controller
{
private $user;
/**
* 构造方法
*/
public function initialize()
{
parent::initialize();
$this->user = $this->getUserDetail(); // 用户信息
}
/**
* 订单详情
*/
public function detail($order_id)
{
$model = new OrderModel;
$order = $model->getUserOrderDetail($order_id, $this->user['user_id']);
Cache::set('refund_' . $order_id . '_' . $this->user['user_id'] . '_' . $order['shop_id'], $order->toArray(), 86400);//存贮24小时
return $this->renderSuccess(compact('order'));
}
/**
* 订单退款
*/
public function refund()
{
$data = $this->request->post();
$model = OrderModel::get($data['order_id']);
$model->userRefund($data);
return $this->renderMsg('申请成功');
}
/**
* 修改订单
* $mode 参数 dec=减少 inc=增加
* $index 产品在数组中的编号
*/
public function edit($order_id,$mode,$index)
{
$model = new OrderModel;
$order = $model->getUserOrderDetail($order_id, $this->user['user_id']);
$refund = Cache::get('refund_' . $order_id . '_' . $this->user['user_id'] . '_' . $order['shop_id']);
if(!$refund){
return $this->renderError('订单不存在');
}
if(!isset($refund['refund_pack'])){
$refund['refund_pack'] = 0;//退打包费
}
if(!isset($refund['refund_express'])){
$refund['refund_express'] = 0;//退配送费
}
//增加操作
if($mode == 'inc'){
$refund['goods'][$index]['refund_num'] = $refund['goods'][$index]['refund_num']+1;
$refund['goods'][$index]['refund_price'] = $refund['goods'][$index]['refund_price']+$refund['goods'][$index]['goods_price'];
$refund['refund_price'] = $refund['refund_price'] + $refund['goods'][$index]['goods_price'];
//打包费退减
if($refund['order_mode']['value'] != 10){
$refund['refund_pack'] = $refund['refund_pack'] + $refund['goods'][$index]['goods']['pack_price'];
$refund['refund_price'] = $refund['refund_price'] + $refund['goods'][$index]['goods']['pack_price'];
}
}else{
$refund['goods'][$index]['refund_num'] = $refund['goods'][$index]['refund_num']-1;
$refund['goods'][$index]['refund_price'] = $refund['goods'][$index]['refund_price']-$refund['goods'][$index]['goods_price'];
$refund['refund_price'] = $refund['refund_price'] - $refund['goods'][$index]['goods_price'];
//打包费退减
if($refund['order_mode']['value'] != 10){
$refund['refund_pack'] = $refund['refund_pack'] - $refund['goods'][$index]['goods']['pack_price'];
$refund['refund_price'] = $refund['refund_price'] - $refund['goods'][$index]['goods']['pack_price'];
}
$refund['refund_price'] = $refund['refund_price'] - $refund['refund_express'];
}
if($refund['refund_price']+$refund['delivery_price']>=$refund['pay_price']){
$refund['refund_price']=$refund['pay_price'];
$refund['refund_express']=$refund['delivery_price'];//退配送费
}
$refund['refund_price'] = helper::number2($refund['refund_price']);
Cache::set('refund_' . $order_id . '_' . $this->user['user_id'] . '_' . $order['shop_id'],$refund,86400);
return $this->renderSuccess($refund['refund_price']);
}
}