xieruidong пре 2 година
родитељ
комит
65382b203a

+ 19 - 7
application/api/controller/mall/OrderRefund.php

@@ -3,13 +3,8 @@
 namespace app\api\controller\mall;
 
 use app\common\controller\Api;
-use app\common\model\OrderInfo;
-use app\common\model\OrderVoucher;
 use app\common\model\Refund;
-use app\common\service\OrderService;
-use fast\Arr;
-use think\Db;
-use app\common\model\Orders as Order;
+use app\common\service\RefundService;
 
 /**
  * 订单退款
@@ -22,7 +17,9 @@ class OrderRefund extends Api
     /**
      * 退款退货配置
      * @ApiMethod (POST)
-     * @
+     * @ApiParams (name=order_info_id,description=退货子订单ID)
+     * @ApiParams (name=num,description=退货数量)
+     * @ApiParams (name=num_install,description=退货安装数量)
      * @ApiReturnParams (name=reason,description=退款原因选项)
      * @ApiReturnParams (name=type,description=退货方式选项)
      */
@@ -31,7 +28,22 @@ class OrderRefund extends Api
         $info=[
             'reason'=>array_values(Refund::getReasons()),
             'type'=>array_values(Refund::getRefundBys()),
+            'amount'=>0,
         ];
+        $data=$this->_validate([
+            'order_info_id'=>['require','integer'],
+            'num'=>['require','integer','egt:0'],
+            'num_install'=>['require','integer','egt:0'],
+        ]);
+        $orderInfo=$this->auth->getUser()->orderInfo()->find($data['order_info_id']);
+        if($orderInfo){
+            list($amount,$amount_install)=RefundService::setOrderInfo($orderInfo)
+                ->setNum($data['num'])
+                ->setNumInstall($data['num_install'])
+                ->amount();
+            $info['amount']=bcadd($amount,$amount_install);
+        }
+
         $this->success('', $info);
     }
 }

+ 56 - 0
application/common/service/RefundService.php

@@ -0,0 +1,56 @@
+<?php
+namespace app\common\service;
+
+use app\common\model\OrderInfo;
+
+class RefundService extends BaseService {
+    /** @var OrderInfo */
+    protected $orderInfo;
+    /** @var $num int */
+    protected $num;
+    /** @var $num_install int */
+    protected $num_install;
+    public static function setOrderInfo(OrderInfo $orderInfo){
+        $ins=new static;
+        $ins->orderInfo=$orderInfo;
+        return $ins;
+    }
+
+    /**
+     * @param int $num
+     */
+    public function setNum(int $num)
+    {
+        $this->num = $num;
+        return $this;
+    }
+
+    /**
+     * @param int $num_install
+     */
+    public function setNumInstall(int $num_install)
+    {
+        $this->num_install = $num_install;
+        return $this;
+    }
+
+    public function amount(){
+        $amount=0;
+        if($this->num>0){
+            $amount=bcdiv($this->getOrderInfo('amount_goods_real'),$this->num);
+        }
+        $amount_install=0;
+        if($this->num>0){
+            $amount_install=bcdiv($this->getOrderInfo('amount_install'),$this->num_install);
+        }
+        return [$amount,$amount_install];
+    }
+
+    /**
+     * @return OrderInfo
+     */
+    public function getOrderInfo($field=null)
+    {
+        return is_null($field)?$this->orderInfo:$this->orderInfo[$field];
+    }
+}

+ 41 - 3
public/api.html

@@ -2042,7 +2042,36 @@
                                     <div class="panel panel-default">
                                         <div class="panel-heading"><strong>参数</strong></div>
                                         <div class="panel-body">
-                                                                                        无
+                                                                                        <table class="table table-hover">
+                                                <thead>
+                                                    <tr>
+                                                        <th>名称</th>
+                                                        <th>类型</th>
+                                                        <th>必选</th>
+                                                        <th>描述</th>
+                                                    </tr>
+                                                </thead>
+                                                <tbody>
+                                                                                                        <tr>
+                                                        <td>order_info_id</td>
+                                                        <td>string</td>
+                                                        <td>是</td>
+                                                        <td>退货子订单ID</td>
+                                                    </tr>
+                                                                                                        <tr>
+                                                        <td>num</td>
+                                                        <td>string</td>
+                                                        <td>是</td>
+                                                        <td>退货数量</td>
+                                                    </tr>
+                                                                                                        <tr>
+                                                        <td>num_install</td>
+                                                        <td>string</td>
+                                                        <td>是</td>
+                                                        <td>退货安装数量</td>
+                                                    </tr>
+                                                                                                    </tbody>
+                                            </table>
                                                                                     </div>
                                     </div>
                                     <div class="panel panel-default">
@@ -2064,7 +2093,16 @@
                                                 <div class="panel-body">
                                                     <form enctype="application/x-www-form-urlencoded" role="form" action="/api/mall.order_refund/config" method="POST" name="form40" id="form40">
                                                                                                                 <div class="form-group">
-                                                            无
+                                                            <label class="control-label" for="order_info_id">order_info_id</label>
+                                                            <input type="string" class="form-control input-sm" id="order_info_id" required placeholder="退货子订单ID" name="order_info_id">
+                                                        </div>
+                                                                                                                <div class="form-group">
+                                                            <label class="control-label" for="num">num</label>
+                                                            <input type="string" class="form-control input-sm" id="num" required placeholder="退货数量" name="num">
+                                                        </div>
+                                                                                                                <div class="form-group">
+                                                            <label class="control-label" for="num_install">num_install</label>
+                                                            <input type="string" class="form-control input-sm" id="num_install" required placeholder="退货安装数量" name="num_install">
                                                         </div>
                                                                                                                 <div class="form-group form-group-submit">
                                                             <button type="submit" class="btn btn-success send" rel="40">提交</button>
@@ -17079,7 +17117,7 @@
 
                 </div>
                 <div class="col-md-6" align="right">
-                    Generated on 2022-11-18 15:12:12 <a href="./" target="_blank">苏州屏酷有限公司</a>
+                    Generated on 2022-11-18 17:23:47 <a href="./" target="_blank">苏州屏酷有限公司</a>
                 </div>
             </div>