|
@@ -23,6 +23,7 @@ use think\Exception;
|
|
|
use addons\unishop\model\Address as AddressModel;
|
|
|
use think\Hook;
|
|
|
use think\Loader;
|
|
|
+use addons\epay\library\Service;
|
|
|
|
|
|
/**
|
|
|
* 订单
|
|
@@ -34,7 +35,7 @@ class Order extends Base
|
|
|
* 允许频繁访问的接口
|
|
|
* @var array
|
|
|
*/
|
|
|
- protected $frequently = ['getorders'];
|
|
|
+ protected $frequently = ['getorders','getOrders','detail','refund_reason'];
|
|
|
|
|
|
protected $noNeedLogin = ['count'];
|
|
|
|
|
@@ -91,21 +92,25 @@ class Order extends Base
|
|
|
*/
|
|
|
public function create()
|
|
|
{
|
|
|
- $productId = $this->request->post('id', 0);
|
|
|
+ $productId = input('id', 0);
|
|
|
|
|
|
try {
|
|
|
$user_id = $this->auth->id;
|
|
|
|
|
|
// 单个商品
|
|
|
if ($productId) {
|
|
|
+ $number = input('number',1,'intval');
|
|
|
+ $number = intval($number);
|
|
|
$productId = \addons\unishop\extend\Hashids::decodeHex($productId);
|
|
|
$product = (new Product)->where(['id' => $productId, 'switch' => Product::SWITCH_ON, 'deletetime' => null])->find();
|
|
|
/** 产品基础数据 **/
|
|
|
- $spec = $this->request->post('spec', '');
|
|
|
- $productData[0] = $product->getDataOnCreateOrder($spec);
|
|
|
+ $spec = input('spec', '');
|
|
|
+
|
|
|
+ $productData[0] = $product->getDataOnCreateOrder($spec,$number);
|
|
|
+
|
|
|
} else {
|
|
|
// 多个商品
|
|
|
- $cart = $this->request->post('cart');
|
|
|
+ $cart = input('cart');
|
|
|
$carts = (new \addons\unishop\model\Cart)
|
|
|
->whereIn('id', $cart)
|
|
|
->with(['product'])
|
|
@@ -123,18 +128,24 @@ class Order extends Base
|
|
|
}
|
|
|
|
|
|
/** 默认地址 **/
|
|
|
- $address = (new AddressModel)->where(['user_id' => $user_id, 'is_default' => AddressModel::IS_DEFAULT_YES])->find();
|
|
|
+ $address_map = ['user_id' => $user_id, 'is_default' => AddressModel::IS_DEFAULT_YES];
|
|
|
+
|
|
|
+ $address_id = input('address_id',0);
|
|
|
+ if($address_id){
|
|
|
+ $address_map = ['user_id' => $user_id, 'id' => $address_id];
|
|
|
+ }
|
|
|
+ $address = (new AddressModel)->where($address_map)->find();
|
|
|
if ($address) {
|
|
|
- $area = (new Area)->whereIn('id', [$address->province_id, $address->city_id, $address->area_id])->column('name', 'id');
|
|
|
+ /*$area = (new Area)->whereIn('id', [$address->province_id, $address->city_id, $address->area_id])->column('name', 'id');
|
|
|
$address = $address->toArray();
|
|
|
$address['province']['name'] = $area[$address['province_id']];
|
|
|
$address['city']['name'] = $area[$address['city_id']];
|
|
|
- $address['area']['name'] = $area[$address['area_id']];
|
|
|
+ $address['area']['name'] = $area[$address['area_id']];*/
|
|
|
}
|
|
|
|
|
|
|
|
|
/** 可用优惠券 **/
|
|
|
- $coupon = CouponModel::all(function ($query) {
|
|
|
+ /*$coupon = CouponModel::all(function ($query) {
|
|
|
$time = time();
|
|
|
$query
|
|
|
->where(['switch' => CouponModel::SWITCH_ON])
|
|
@@ -143,24 +154,35 @@ class Order extends Base
|
|
|
});
|
|
|
if ($coupon) {
|
|
|
$coupon = collection($coupon)->toArray();
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
|
|
|
/** 运费数据 **/
|
|
|
- $cityId = $address['city_id'] ? $address['city_id'] : 0;
|
|
|
- $delivery = (new DeliveryRuleModel())->getDelivetyByArea($cityId);
|
|
|
+ /*$cityId = $address['city_id'] ? $address['city_id'] : 0;
|
|
|
+ $delivery = (new DeliveryRuleModel())->getDelivetyByArea($cityId);*/
|
|
|
+
|
|
|
+ $order_price = '0';
|
|
|
+ $delivery_price = '0';
|
|
|
|
|
|
foreach ($productData as &$product) {
|
|
|
$product['image'] = Config::getImagesFullUrl($product['image']);
|
|
|
$product['sales_price'] = round($product['sales_price'], 2);
|
|
|
$product['market_price'] = round($product['market_price'], 2);
|
|
|
+
|
|
|
+ $order_price = bcadd($order_price,$product['total_price'],2);
|
|
|
+ $delivery_price = bcadd($delivery_price,$product['yunfei_price'],2);
|
|
|
}
|
|
|
|
|
|
$this->success('', [
|
|
|
'product' => $productData,
|
|
|
'address' => $address,
|
|
|
- 'coupon' => $coupon,
|
|
|
- 'delivery' => $delivery['list']
|
|
|
+// 'coupon' => $coupon,
|
|
|
+// 'delivery' => $delivery['list'],
|
|
|
+ 'order_price' => $order_price,
|
|
|
+ 'delivery_price' => $delivery_price,
|
|
|
+ 'total_price' => bcadd($order_price,$delivery_price,2),
|
|
|
+
|
|
|
+ 'wallet' => Db::name('user_wallet')->where('user_id',$this->auth->id)->find(),
|
|
|
]);
|
|
|
|
|
|
} catch (Exception $e) {
|
|
@@ -190,7 +212,13 @@ class Order extends Base
|
|
|
*/
|
|
|
public function submit()
|
|
|
{
|
|
|
- $data = $this->request->post();
|
|
|
+ $data = input();
|
|
|
+
|
|
|
+ $pay_type = input('pay_type','alipay');
|
|
|
+ if(!in_array($pay_type,['wechat','alipay','wallet'])){
|
|
|
+ $this->error();
|
|
|
+ }
|
|
|
+
|
|
|
try {
|
|
|
$validate = Loader::validate('\\addons\\unishop\\validate\\Order');
|
|
|
if (!$validate->check($data, [], 'submit')) {
|
|
@@ -241,7 +269,7 @@ class Order extends Base
|
|
|
*/
|
|
|
public function getDelivery()
|
|
|
{
|
|
|
- $cityId = $this->request->get('city_id', 0);
|
|
|
+ $cityId = input('city_id', 0);
|
|
|
$delivery = (new DeliveryRuleModel())->getDelivetyByArea($cityId);
|
|
|
$this->success('', $delivery['list']);
|
|
|
}
|
|
@@ -287,9 +315,9 @@ class Order extends Base
|
|
|
public function getOrders()
|
|
|
{
|
|
|
// 0=全部,1=待付款,2=待发货,3=待收货,4=待评价,5=售后
|
|
|
- $type = $this->request->get('type', 0);
|
|
|
- $page = $this->request->get('page', 1);
|
|
|
- $pagesize = $this->request->get('pagesize', 10);
|
|
|
+ $type = input('type', 0);
|
|
|
+ $page = input('page', 1);
|
|
|
+ $pagesize = input('pagesize', 10);
|
|
|
try {
|
|
|
|
|
|
$orderModel = new \addons\unishop\model\Order();
|
|
@@ -314,7 +342,7 @@ class Order extends Base
|
|
|
*/
|
|
|
public function cancel()
|
|
|
{
|
|
|
- $order_id = $this->request->get('order_id', 0);
|
|
|
+ $order_id = input('order_id', 0);
|
|
|
$order_id = \addons\unishop\extend\Hashids::decodeHex($order_id);
|
|
|
|
|
|
$orderModel = new \addons\unishop\model\Order();
|
|
@@ -333,17 +361,212 @@ class Order extends Base
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- if ($order['have_paid'] != \addons\unishop\model\Order::PAID_NO) {
|
|
|
+ /*if ($order['have_paid'] != \addons\unishop\model\Order::PAID_NO) {
|
|
|
$this->error('此订单已支付,无法取消');
|
|
|
+ }*/
|
|
|
+ if ($order['have_delivered'] != \addons\unishop\model\Order::DELIVERED_NO) {
|
|
|
+ $this->error('此订单已发货,无法取消');
|
|
|
}
|
|
|
|
|
|
- if ($order['status'] == \addons\unishop\model\Order::STATUS_NORMAL && $order['have_paid'] == \addons\unishop\model\Order::PAID_NO) {
|
|
|
- $order->status = \addons\unishop\model\Order::STATUS_CANCEL;
|
|
|
- $order->save();
|
|
|
+// if ($order['status'] == \addons\unishop\model\Order::STATUS_NORMAL && $order['have_paid'] == \addons\unishop\model\Order::PAID_NO) {
|
|
|
+ if ($order['status'] == \addons\unishop\model\Order::STATUS_NORMAL && $order['have_delivered'] == \addons\unishop\model\Order::DELIVERED_NO) {
|
|
|
+
|
|
|
+ Db::startTrans();
|
|
|
+ /*$order->status = \addons\unishop\model\Order::STATUS_CANCEL;
|
|
|
+ $order->save();*/
|
|
|
+
|
|
|
+
|
|
|
+ //已付款的,自动退款
|
|
|
+ if($order['have_paid'] != \addons\unishop\model\Order::PAID_NO){
|
|
|
+ $refund_amount = $order['total_price'];
|
|
|
+ $refund_status = 3;
|
|
|
+
|
|
|
+ // 退款
|
|
|
+ $params = [
|
|
|
+ 'refund_status' => $refund_status,
|
|
|
+ 'updatetime' => time(),
|
|
|
+ 'refund_amount' => $refund_amount,
|
|
|
+ 'status' => \addons\unishop\model\Order::STATUS_CANCEL,
|
|
|
+ ];
|
|
|
+ if($refund_status == 3) {
|
|
|
+ $params['had_refund'] = time();
|
|
|
+ }
|
|
|
+
|
|
|
+ $result = Db::name('unishop_order')->where(['id' => $order_id])->update($params);
|
|
|
+ if (!$result) {
|
|
|
+ Db::rollback();
|
|
|
+ $this->error('取消失败');
|
|
|
+ }
|
|
|
+
|
|
|
+ //同意并执行退款
|
|
|
+ if($refund_status == 3 && $refund_amount > 0){
|
|
|
+ $order = Db::name('unishop_order')->where('id',$order_id)->find();
|
|
|
+
|
|
|
+ if($order['pay_type'] == 2){
|
|
|
+ $wallet = new \app\common\model\Wallet();
|
|
|
+ $wallet_rs = $wallet->lockChangeAccountRemain($order['user_id'],'money',$refund_amount,32,'商城取消订单退款'.$order['out_trade_no'],'unishop_order',$order_id);
|
|
|
+ if($wallet_rs['status'] === false){
|
|
|
+ Db::rollback();
|
|
|
+ $this->error($wallet_rs['msg']);
|
|
|
+ }
|
|
|
+ }elseif($order['pay_type'] == 3 || $order['pay_type'] == 4){
|
|
|
+ $refund_result = $this->old_refund($order,$refund_amount);
|
|
|
+ if($refund_result !== true){
|
|
|
+ Db::rollback();
|
|
|
+ $this->error($refund_result);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ $params = [
|
|
|
+ 'status' => \addons\unishop\model\Order::STATUS_CANCEL,
|
|
|
+ ];
|
|
|
+ $result = Db::name('unishop_order')->where(['id' => $order_id])->update($params);
|
|
|
+ if ($result === false) {
|
|
|
+ Db::rollback();
|
|
|
+ $this->error('取消失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Db::commit();
|
|
|
+
|
|
|
$this->success('取消成功', true);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 退款
|
|
|
+ public function old_refund($order, $refund_price)
|
|
|
+ {
|
|
|
+
|
|
|
+ $table = 'unishop_order';
|
|
|
+ $remark = '订单退款';
|
|
|
+
|
|
|
+ if($order['pay_type'] == 3){
|
|
|
+ $order['pay_type'] = 'wechat';
|
|
|
+ }
|
|
|
+ if($order['pay_type'] == 4){
|
|
|
+ $order['pay_type'] = 'alipay';
|
|
|
+ }
|
|
|
+
|
|
|
+ // 生成退款单
|
|
|
+ $refund_data = [
|
|
|
+ 'order_id' => $order['id'],
|
|
|
+ 'out_refund_no'=> createUniqueNo('R'),
|
|
|
+ 'pay_fee' => $order['total_price'],
|
|
|
+ 'refund_price' => $refund_price,
|
|
|
+ 'pay_type' => $order['pay_type'],
|
|
|
+ 'status' => 0,
|
|
|
+ 'createtime' => time(),
|
|
|
+ 'updatetime' => time(),
|
|
|
+ 'table' => $table,
|
|
|
+ 'table_id' => $order['id'],
|
|
|
+ ];
|
|
|
+ $refund_log_id = Db::name('pay_order_refund_log')->insertGetId($refund_data);
|
|
|
+ if(!$refund_log_id){
|
|
|
+ return '退款失败';
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($order['pay_type'] == 'wechat' || $order['pay_type'] == 'alipay') {
|
|
|
+ // 微信|支付宝退款
|
|
|
+
|
|
|
+ // 退款数据
|
|
|
+ $order_data = [
|
|
|
+ 'out_trade_no' => $order['pay_out_trade_no']
|
|
|
+ ];
|
|
|
+
|
|
|
+ if ($order['pay_type'] == 'wechat') {
|
|
|
+ $total_fee = $order['total_price'] * 100;
|
|
|
+ $refund_fee = $refund_price * 100;
|
|
|
+
|
|
|
+ $order_data = array_merge($order_data, [
|
|
|
+ 'out_refund_no' => $refund_data['out_refund_no'],
|
|
|
+ 'total_fee' => $total_fee,
|
|
|
+ 'refund_fee' => $refund_fee,
|
|
|
+ 'refund_desc' => $remark,
|
|
|
+ ]);
|
|
|
+ } else {
|
|
|
+ $order_data = array_merge($order_data, [
|
|
|
+ 'out_request_no' => $refund_data['out_refund_no'],
|
|
|
+ 'refund_amount' => $refund_price,
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+ //
|
|
|
+ if ($order['pay_type'] == 'wechat') {
|
|
|
+ $wxpay = new \app\common\library\Wxpay;
|
|
|
+ $result = $wxpay->WxPayRefund($order_data);
|
|
|
+ // 微信通知回调 pay->notifyr
|
|
|
+ if ($result['return_code'] == 'SUCCESS' && $result['result_code'] == 'SUCCESS') {
|
|
|
+ Db::name('pay_order_refund_log')->where('id',$refund_log_id)->update(['status'=>1]);
|
|
|
+ return true;
|
|
|
+ } else {
|
|
|
+ return $result['return_msg'];
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+
|
|
|
+ $result = Service::submitRefund($order['total_price'],$refund_price,$order['pay_out_trade_no'],$refund_data['out_refund_no'],$order['pay_type'],$remark,'');
|
|
|
+
|
|
|
+ if($result['code'] == '10000'){
|
|
|
+ Db::name('pay_order_refund_log')->where('id',$refund_log_id)->update(['status'=>1]);
|
|
|
+ return true;
|
|
|
+ }else{
|
|
|
+ return $result['msg'];
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /* return 'alipay wrong way';
|
|
|
+ $alipay = new \app\common\library\AliPay;
|
|
|
+ $result = $alipay->AliPayRefund($order_data);
|
|
|
+ // 支付宝通知回调 pay->notifyx
|
|
|
+ return $result;*/
|
|
|
+
|
|
|
+ /*if ($result['code'] == "10000") {
|
|
|
+ return true;
|
|
|
+ } else {
|
|
|
+ throw new \Exception($result['msg']);
|
|
|
+ }*/
|
|
|
+ }
|
|
|
+
|
|
|
+ // { // 微信返回结果
|
|
|
+ // "return_code":"SUCCESS",
|
|
|
+ // "return_msg":"OK",
|
|
|
+ // "appid":"wx39cd0799d4567dd0",
|
|
|
+ // "mch_id":"1481069012",
|
|
|
+ // "nonce_str":"huW9eIAb5BDPn0Ma",
|
|
|
+ // "sign":"250316740B263FE53F5DFF50AF5A8FA1",
|
|
|
+ // "result_code":"SUCCESS",
|
|
|
+ // "transaction_id":"4200000497202004072822298902",
|
|
|
+ // "out_trade_no":"202010300857029180027000",
|
|
|
+ // "out_refund_no":"1586241595",
|
|
|
+ // "refund_id":"50300603862020040700031444448",
|
|
|
+ // "refund_channel":[],
|
|
|
+ // "refund_fee":"1",
|
|
|
+ // "coupon_refund_fee":"0",
|
|
|
+ // "total_fee":"1",
|
|
|
+ // "cash_fee":"1",
|
|
|
+ // "coupon_refund_count":"0",
|
|
|
+ // "cash_refund_fee":"1
|
|
|
+ // }
|
|
|
+
|
|
|
+ // { // 支付宝返回结果
|
|
|
+ // "code": "10000",
|
|
|
+ // "msg": "Success",
|
|
|
+ // "buyer_logon_id": "157***@163.com",
|
|
|
+ // "buyer_user_id": "2088902485164146",
|
|
|
+ // "fund_change": "Y",
|
|
|
+ // "gmt_refund_pay": "2020-08-15 16:11:45",
|
|
|
+ // "out_trade_no": "202002460317545607015300",
|
|
|
+ // "refund_fee": "0.01",
|
|
|
+ // "send_back_fee": "0.00",
|
|
|
+ // "trade_no": "2020081522001464141438570535"
|
|
|
+ // }
|
|
|
+ }
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* @ApiTitle (删除订单)
|
|
|
* @ApiSummary (只能删除已取消或已退货的订单)
|
|
@@ -356,7 +579,7 @@ class Order extends Base
|
|
|
*/
|
|
|
public function delete()
|
|
|
{
|
|
|
- $order_id = $this->request->get('order_id', 0);
|
|
|
+ $order_id = input('order_id', 0);
|
|
|
$order_id = \addons\unishop\extend\Hashids::decodeHex($order_id);
|
|
|
|
|
|
$orderModel = new \addons\unishop\model\Order();
|
|
@@ -390,7 +613,7 @@ class Order extends Base
|
|
|
*/
|
|
|
public function received()
|
|
|
{
|
|
|
- $order_id = $this->request->get('order_id', 0);
|
|
|
+ $order_id = input('order_id', 0);
|
|
|
$order_id = \addons\unishop\extend\Hashids::decodeHex($order_id);
|
|
|
|
|
|
$orderModel = new \addons\unishop\model\Order();
|
|
@@ -426,12 +649,12 @@ class Order extends Base
|
|
|
*/
|
|
|
public function comment()
|
|
|
{
|
|
|
- $rate = $this->request->post('rate', 5);
|
|
|
- $anonymous = $this->request->post('anonymous', 0);
|
|
|
- $comment = $this->request->post('comment');
|
|
|
- $order_id = $this->request->post('order_id', 0);
|
|
|
+ $rate = input('rate', 5);
|
|
|
+ $anonymous = input('anonymous', 0);
|
|
|
+ $comment = input('comment');
|
|
|
+ $order_id = input('order_id', 0);
|
|
|
$order_id = \addons\unishop\extend\Hashids::decodeHex($order_id);
|
|
|
- $product_id = $this->request->post('product_id');
|
|
|
+ $product_id = input('product_id');
|
|
|
$product_id = \addons\unishop\extend\Hashids::decodeHex($product_id);
|
|
|
|
|
|
$orderProductModel = new \addons\unishop\model\OrderProduct();
|
|
@@ -589,7 +812,7 @@ class Order extends Base
|
|
|
*/
|
|
|
public function detail()
|
|
|
{
|
|
|
- $order_id = $this->request->get('order_id', 0);
|
|
|
+ $order_id = input('order_id', 0);
|
|
|
$order_id = \addons\unishop\extend\Hashids::decodeHex($order_id);
|
|
|
|
|
|
try {
|
|
@@ -623,12 +846,10 @@ class Order extends Base
|
|
|
|
|
|
// 送货地址
|
|
|
$address = json_decode($order['extend']['address_json'], true);
|
|
|
- $area = (new \addons\unishop\model\Area())
|
|
|
- ->whereIn('id', [$address['province_id'], $address['city_id'], $address['area_id']])
|
|
|
- ->column('name', 'id');
|
|
|
+
|
|
|
$delivery['username'] = $address['name'];
|
|
|
$delivery['mobile'] = $address['mobile'];
|
|
|
- $delivery['address'] = $area[$address['province_id']] . ' ' . $area[$address['city_id']] . ' ' . $area[$address['area_id']] . ' ' . $address['address'];
|
|
|
+ $delivery['address'] = $address['province_name'] . ' ' . $address['city_name'] . ' ' . $address['area_name'] . ' ' . $address['address'];
|
|
|
$order['delivery'] = $delivery;
|
|
|
|
|
|
// 是否已评论
|
|
@@ -690,7 +911,7 @@ class Order extends Base
|
|
|
*/
|
|
|
public function refundInfo()
|
|
|
{
|
|
|
- $order_id = $this->request->post('order_id');
|
|
|
+ $order_id = input('order_id');
|
|
|
$order_id = \addons\unishop\extend\Hashids::decodeHex($order_id);
|
|
|
|
|
|
$orderModel = new \addons\unishop\model\Order();
|
|
@@ -749,7 +970,7 @@ class Order extends Base
|
|
|
*/
|
|
|
public function refund()
|
|
|
{
|
|
|
- $order_id = $this->request->post('order_id');
|
|
|
+ $order_id = input('order_id');
|
|
|
$order_id = Hashids::decodeHex($order_id);
|
|
|
$orderModel = new \addons\unishop\model\Order();
|
|
|
$order = $orderModel->where(['id' => $order_id, 'user_id' => $this->auth->id])->find();
|
|
@@ -757,16 +978,29 @@ class Order extends Base
|
|
|
if (!$order) {
|
|
|
$this->error(__('Order not exist'));
|
|
|
}
|
|
|
- if ($order['have_paid'] == 0) {
|
|
|
+ /*if ($order['have_paid'] == 0) {
|
|
|
$this->error(__('订单未支付,可直接取消,无需申请售后'));
|
|
|
+ }*/
|
|
|
+ if ($order['have_delivered'] == 0) {
|
|
|
+ $this->error(__('订单未发货,可直接取消,无需申请售后'));//发货的才能走售后,未发货的走取消
|
|
|
+ }
|
|
|
+ if($order->status == 0){
|
|
|
+ $this->error('当前订单不能申请退款');
|
|
|
+ }
|
|
|
+ if($order->status == -1){
|
|
|
+ $this->error('当前订单已经申请过退款');
|
|
|
}
|
|
|
|
|
|
- $amount = $this->request->post('amount', 0);
|
|
|
- $serviceType = $this->request->post('service_type');
|
|
|
- $receivingStatus = $this->request->post('receiving_status');
|
|
|
- $reasonType = $this->request->post('reason_type');
|
|
|
- $refundExplain = $this->request->post('refund_explain');
|
|
|
- $orderProductId = $this->request->post('order_product_id');
|
|
|
+ //$amount = input('amount', 0);
|
|
|
+ $amount = $order->total_price;
|
|
|
+ $serviceType = input('service_type',1);
|
|
|
+ $receivingStatus = input('receiving_status',1);
|
|
|
+ $reasonType = input('reason_type','');
|
|
|
+ $refundExplain = input('refund_explain','');
|
|
|
+ $images = input('images','');
|
|
|
+// $orderProductId = input('order_product_id');
|
|
|
+ $orderProductId = Db::name('unishop_order_product')->where('order_id',$order_id)->column('product_id');
|
|
|
+ $orderProductId = implode(',', $orderProductId);
|
|
|
|
|
|
if (!$orderProductId) {
|
|
|
$this->error(__('Please select goods'));
|
|
@@ -794,6 +1028,7 @@ class Order extends Base
|
|
|
$orderRefund->reason_type = $reasonType;
|
|
|
$orderRefund->amount = $amount;
|
|
|
$orderRefund->refund_explain = $refundExplain;
|
|
|
+ $orderRefund->images = $images;
|
|
|
$orderRefund->save();
|
|
|
|
|
|
$productIdArr = explode(',', $orderProductId);
|
|
@@ -833,8 +1068,8 @@ class Order extends Base
|
|
|
*/
|
|
|
public function refundDelivery()
|
|
|
{
|
|
|
- $orderId = $this->request->post('order_id');
|
|
|
- $expressNumber = $this->request->post('express_number');
|
|
|
+ $orderId = input('order_id');
|
|
|
+ $expressNumber = input('express_number');
|
|
|
|
|
|
if (!$expressNumber) {
|
|
|
$this->error(__('Please fill in the express number'));
|
|
@@ -883,7 +1118,7 @@ class Order extends Base
|
|
|
*/
|
|
|
public function express() {
|
|
|
|
|
|
- $params = $this->request->post();
|
|
|
+ $params = input();
|
|
|
if (!class_exists(\addons\expressquery\library\Expressquery::class)) {
|
|
|
$this->error('请先安装插件《物流信息接口》', []);
|
|
|
}
|
|
@@ -903,4 +1138,12 @@ class Order extends Base
|
|
|
'company' => $expressInfo['name'] ?? '快递单号'
|
|
|
]);
|
|
|
}
|
|
|
+
|
|
|
+ /*
|
|
|
+ * 申请退货原因
|
|
|
+ * */
|
|
|
+ public function refund_reason(){
|
|
|
+ $list = Db::name('unishop_refundreason')->order('weigh asc')->select();
|
|
|
+ $this->success(1,$list);
|
|
|
+ }
|
|
|
}
|