xieruidong 2 년 전
부모
커밋
274de328d9
4개의 변경된 파일94개의 추가작업 그리고 127개의 파일을 삭제
  1. 10 30
      application/api/controller/mall/OrderRefund.php
  2. 7 7
      application/api/controller/object/Index.php
  3. 41 10
      application/common/model/Refund.php
  4. 36 80
      public/api.html

+ 10 - 30
application/api/controller/mall/OrderRefund.php

@@ -3,45 +3,25 @@
 namespace app\api\controller\mall;
 
 use app\common\controller\Api;
-use app\common\model\Refund;
-use app\common\service\RefundService;
-
 /**
  * 订单退款
  * @inheritdoc
  */
 class OrderRefund extends Api
 {
-    protected $noNeedRight = "*";
-
     /**
-     * 退款退货配置
-     * @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=退货方式选项)
-     * @ApiReturnParams (name=amount,description=要退的金额)
+     * 售后详情
+     * @ApiParams (name=order_info_id,description="子订单ID")
      */
-    public function config()
-    {
-        $info=[
-            'reason'=>array_values(Refund::getReasons()),
-            'type'=>array_values(Refund::getRefundBys()),
-            'amount'=>0,
-        ];
+    public function show(){
         $data=$this->_validate([
-            'order_info_id'=>['require','integer'],
-            'num'=>['require','integer','egt:0'],
-            'num_install'=>['require','integer','egt:0'],
+            'order_info_id'=>['require'],
         ]);
-        $orderInfo=$this->auth->getUser()->orderInfo()->find($data['order_info_id']);
-        if($orderInfo){
-            list($amount,$amount_install)=RefundService::setOrderInfo($orderInfo,$data['num'],$data['num_install'])->amount();
-            $info['amount']=bcadd($amount,$amount_install);
-        }
-
-        $this->success('', $info);
+        $user=$this->auth->getUser();
+        $orderInfo=$user
+            ->orderInfo()
+            ->with(['refund','refunds','orders'])
+            ->findOrFail($data['order_info_id']);
+        $this->success('',$orderInfo);
     }
 }

+ 7 - 7
application/api/controller/object/Index.php

@@ -111,13 +111,13 @@ class Index extends Api
      * @ApiParams (name=info[0][refund_config],type=object,description="售后申请配置对象,如果无法申请就是null")
      * @ApiParams (name=info[0][refund_config][reason],type=object,description="原因数组")
      * @ApiParams (name=info[0][refund_config][refund_type],type=object,description="申请类型数组")
-     * @ApiParams (name=info[0][refund_config][type],type=object,description="退货方式数组")
-     * @ApiParams (name=info[0][refund_config][req_amount],type=object,description="1是0否需要填写金额字段")
-     * @ApiParams (name=info[0][refund_config][amount],type=object,description="退款金额")
-     * @ApiParams (name=info[0][refund_config][req_order],type=object,description="1是0否需要拍维修单")
-     * @ApiParams (name=info[0][refund_config][num],type=object,description="退货数量")
-     * @ApiParams (name=info[0][refund_config][num_install],type=object,description="退安装量数量")
-     * @ApiParams (name=info[0][refund_config][req_order],type=object,description="1是0否需要拍维修单")
+     * @ApiParams (name=info[0][refund_config][type],type=object,description="退货方式数组,如果是null则是无需退货方式")
+     * @ApiParams (name=info[0][refund_config][amount_single],type=object,description="单个商品退款金额")
+     * @ApiParams (name=info[0][refund_config][amount_single],type=object,description="单个商品退款金额")
+     * @ApiParams (name=info[0][refund_config][amount_install_single],type=object,description="单个安装费退款金额")
+     * @ApiParams (name=info[0][refund_config][req_order],type=object,description="是否需要拍维修单")
+     * @ApiParams (name=info[0][refund_config][num],type=object,description="最大退货数量")
+     * @ApiParams (name=info[0][refund_config][num_install],type=object,description="最大退安装量数量")
      * @ApiParams (name=info[0][refund_config][req_order_goods],type=object,description="维修单商品对象")
      * @ApiParams (name=tax,description=发票信息)
      * @ApiParams (name=tax.paper_type,description=1电子2纸质)

+ 41 - 10
application/common/model/Refund.php

@@ -14,12 +14,18 @@ use Yansongda\Supports\Arr;
  * @property Orders orders
  * @property User user
  * @property int refund_status
+ * @property int refund_type
+ * @property int create_time
+ * @property int audit_time
  * @method static static|Query FilterRefund($status=null)
  * @method static static|Query FilterTs()
  */
 class Refund Extends Model
 {
     protected $name='order_info_refund';
+    protected $append=[
+        'timeline',
+    ];
     const REFUND_ING=100;
     const REFUND_PASS=200;
     const REFUND_JI=250;
@@ -47,18 +53,14 @@ class Refund Extends Model
     }
     const REFUND_TYPE_MONEY=1;
     const REFUND_TYPE_ALL=2;
-    const REFUND_TYPE_GOODS=3;
-    const REFUND_TYPE_CANCEL=4;
     const REFUND_TYPE_HHBX=5;
     public static $refundTypes=[
         self::REFUND_TYPE_MONEY=>'仅退款',
         self::REFUND_TYPE_ALL=>'退款退货',
-        self::REFUND_TYPE_GOODS=>'仅退货',
-        self::REFUND_TYPE_CANCEL=>'取消订单',
         self::REFUND_TYPE_HHBX=>'换货/维修',
     ];
-    public static $refundTypeGoods=[self::REFUND_TYPE_ALL,self::REFUND_TYPE_GOODS];
-    public static $refundTypeMoney=[self::REFUND_TYPE_MONEY,self::REFUND_TYPE_CANCEL,self::REFUND_TYPE_ALL];
+    public static $refundTypeGoods=[self::REFUND_TYPE_ALL,];
+    public static $refundTypeMoney=[self::REFUND_TYPE_MONEY,self::REFUND_TYPE_ALL];
     const REASON_QU=1;
     public static $reasons=[
         self::REASON_QU=>'质量问题',
@@ -199,6 +201,7 @@ class Refund Extends Model
                 $refundConfig['amount_install_single'] = $amount_install_single;
                 $refundConfig['num'] = $orderInfo['num'];
                 $refundConfig['num_install'] = $orderInfo['num_install'];
+                $refundConfig['req_order_goods']=Goods::getFixGoods();
             }
         }
         if(empty($refundConfig)){
@@ -359,10 +362,38 @@ class Refund Extends Model
         $query->where("{$this->getTable()}.reason1",self::REASON_QU);
     }
 
-
-
-
-
+    public function getTimelineAttr(){
+        $arr=[
+            [
+                'title'=>'提交申请',
+                'time' =>Carbon::createFromTimestamp($this->create_time)->toDateTimeString(),
+            ],
+        ];
+        if($this->refund_status==self::REFUND_REJECT){
+            $arr[]=[
+                'title'=>'审核不通过',
+                'time' =>Carbon::createFromTimestamp($this->audit_time)->toDateTimeString(),
+            ];
+            $arr[]=[
+                'title'=>'完成',
+                'time' =>Carbon::createFromTimestamp($this->audit_time)->toDateTimeString(),
+            ];
+        }else{
+            $arr[]=[
+                'title'=>'申请审核',
+                'time' =>Carbon::createFromTimestamp($this->audit_time)->toDateTimeString(),
+            ];
+            switch ($this->refund_type){
+                case self::REFUND_TYPE_MONEY:
+                    $arr[]=[
+                        'title'=>'提交申请',
+                        'time' =>Carbon::createFromTimestamp($this->create_time)->toDateTimeString(),
+                    ];
+                    break;
+            }
+        }
+        return $arr;
+    }
 
     protected static function init()
     {

+ 36 - 80
public/api.html

@@ -190,7 +190,8 @@
                                             </div>
                                         <a href="#订单退款" class="list-group-item" data-toggle="collapse" data-parent="#sidebar">订单退款  <i class="fa fa-caret-down"></i></a>
                     <div class="child collapse" id="订单退款">
-                                                <a href="#1b19dfc74edc9fda51956055b5948d0e" md5="1b19dfc74edc9fda51956055b5948d0e" data-id="43" class="list-group-item api-list">退款退货配置                            <span class="tag">
+                                                <a href="#317d4ea391c700e03d79e67966cf6386" md5="317d4ea391c700e03d79e67966cf6386" data-id="43" class="list-group-item api-list">售后详情                            <span class="tag">
+                                                                    <span class="label label-danger pull-right">鉴</span>
                                                                     <span class="label label-success pull-right noneedlogin">登</span>
                                                             </span>
                         </a>
@@ -2036,8 +2037,8 @@
                                 <div class="panel panel-default">
                     <div class="panel-heading" id="heading-43">
                         <h4 class="panel-title">
-                            <span class="label label-primary">POST</span>
-                            <a data-toggle="collapse" data-parent="#accordion43" href="#collapseOne43"> 退款退货配置 <span class="text-muted">/api/mall.order_refund/config</span></a>
+                            <span class="label label-success">GET</span>
+                            <a data-toggle="collapse" data-parent="#accordion43" href="#collapseOne43"> 售后详情 <span class="text-muted">/api/mall.order_refund/show</span></a>
                         </h4>
                     </div>
                     <div id="collapseOne43" class="panel-collapse collapse">
@@ -2055,7 +2056,7 @@
 
                                 <div class="tab-pane active" id="info43">
                                     <div class="well">
-                                        退款退货配置                                    </div>
+                                        售后详情                                    </div>
                                     <div class="panel panel-default">
                                         <div class="panel-heading"><strong>权限</strong></div>
                                         <div class="panel-body">
@@ -2067,7 +2068,7 @@
                                                 </tr>
                                                 <tr>
                                                     <td>鉴权</td>
-                                                    <td></td>
+                                                    <td></td>
                                                 </tr>
                                                 </tbody>
                                             </table>
@@ -2096,19 +2097,7 @@
                                                         <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>
+                                                        <td>子订单ID</td>
                                                     </tr>
                                                                                                     </tbody>
                                             </table>
@@ -2131,18 +2120,10 @@
                                                 </div>
                                                 </div>
                                                 <div class="panel-body">
-                                                    <form enctype="application/x-www-form-urlencoded" role="form" action="/api/mall.order_refund/config" method="POST" name="form43" id="form43">
+                                                    <form enctype="application/x-www-form-urlencoded" role="form" action="/api/mall.order_refund/show" method="get" name="form43" id="form43">
                                                                                                                 <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">
+                                                            <input type="string" class="form-control input-sm" id="order_info_id" required placeholder="子订单ID" name="order_info_id">
                                                         </div>
                                                                                                                 <div class="form-group form-group-submit">
                                                             <button type="submit" class="btn btn-success send" rel="43">提交</button>
@@ -2165,32 +2146,7 @@
                                             <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>
-                                                            </tr>
-                                                        </thead>
-                                                        <tbody>
-                                                                                                                        <tr>
-                                                                <td>reason</td>
-                                                                <td>string</td>
-                                                                <td>退款原因选项</td>
-                                                            </tr>
-                                                                                                                        <tr>
-                                                                <td>type</td>
-                                                                <td>string</td>
-                                                                <td>退货方式选项</td>
-                                                            </tr>
-                                                                                                                        <tr>
-                                                                <td>amount</td>
-                                                                <td>string</td>
-                                                                <td>要退的金额</td>
-                                                            </tr>
-                                                                                                                    </tbody>
-                                                    </table>
+                                                                                                        无
                                                                                                     </div>
                                             </div>
                                         </div>
@@ -9243,43 +9199,43 @@
                                                         <td>info[0][refund_config][type]</td>
                                                         <td>object</td>
                                                         <td>是</td>
-                                                        <td>退货方式数组</td>
+                                                        <td>退货方式数组,如果是null则是无需退货方式</td>
                                                     </tr>
                                                                                                         <tr>
-                                                        <td>info[0][refund_config][req_amount]</td>
+                                                        <td>info[0][refund_config][amount_single]</td>
                                                         <td>object</td>
                                                         <td>是</td>
-                                                        <td>1是0否需要填写金额字段</td>
+                                                        <td>单个商品退款金额</td>
                                                     </tr>
                                                                                                         <tr>
-                                                        <td>info[0][refund_config][amount]</td>
+                                                        <td>info[0][refund_config][amount_single]</td>
                                                         <td>object</td>
                                                         <td>是</td>
-                                                        <td>退款金额</td>
+                                                        <td>单个商品退款金额</td>
                                                     </tr>
                                                                                                         <tr>
-                                                        <td>info[0][refund_config][req_order]</td>
+                                                        <td>info[0][refund_config][amount_install_single]</td>
                                                         <td>object</td>
                                                         <td>是</td>
-                                                        <td>1是0否需要拍维修单</td>
+                                                        <td>单个安装费退款金额</td>
                                                     </tr>
                                                                                                         <tr>
-                                                        <td>info[0][refund_config][num]</td>
+                                                        <td>info[0][refund_config][req_order]</td>
                                                         <td>object</td>
                                                         <td>是</td>
-                                                        <td>退货数量</td>
+                                                        <td>是否需要拍维修单</td>
                                                     </tr>
                                                                                                         <tr>
-                                                        <td>info[0][refund_config][num_install]</td>
+                                                        <td>info[0][refund_config][num]</td>
                                                         <td>object</td>
                                                         <td>是</td>
-                                                        <td>退安装量数量</td>
+                                                        <td>最大退货数量</td>
                                                     </tr>
                                                                                                         <tr>
-                                                        <td>info[0][refund_config][req_order]</td>
+                                                        <td>info[0][refund_config][num_install]</td>
                                                         <td>object</td>
                                                         <td>是</td>
-                                                        <td>1是0否需要拍维修单</td>
+                                                        <td>最大退安装量数量</td>
                                                     </tr>
                                                                                                         <tr>
                                                         <td>info[0][refund_config][req_order_goods]</td>
@@ -9629,31 +9585,31 @@
                                                         </div>
                                                                                                                 <div class="form-group">
                                                             <label class="control-label" for="info[0][refund_config][type]">info[0][refund_config][type]</label>
-                                                            <input type="object" class="form-control input-sm" id="info[0][refund_config][type]" required placeholder="退货方式数组" name="info[0][refund_config][type]">
+                                                            <input type="object" class="form-control input-sm" id="info[0][refund_config][type]" required placeholder="退货方式数组,如果是null则是无需退货方式" name="info[0][refund_config][type]">
+                                                        </div>
+                                                                                                                <div class="form-group">
+                                                            <label class="control-label" for="info[0][refund_config][amount_single]">info[0][refund_config][amount_single]</label>
+                                                            <input type="object" class="form-control input-sm" id="info[0][refund_config][amount_single]" required placeholder="单个商品退款金额" name="info[0][refund_config][amount_single]">
                                                         </div>
                                                                                                                 <div class="form-group">
-                                                            <label class="control-label" for="info[0][refund_config][req_amount]">info[0][refund_config][req_amount]</label>
-                                                            <input type="object" class="form-control input-sm" id="info[0][refund_config][req_amount]" required placeholder="1是0否需要填写金额字段" name="info[0][refund_config][req_amount]">
+                                                            <label class="control-label" for="info[0][refund_config][amount_single]">info[0][refund_config][amount_single]</label>
+                                                            <input type="object" class="form-control input-sm" id="info[0][refund_config][amount_single]" required placeholder="单个商品退款金额" name="info[0][refund_config][amount_single]">
                                                         </div>
                                                                                                                 <div class="form-group">
-                                                            <label class="control-label" for="info[0][refund_config][amount]">info[0][refund_config][amount]</label>
-                                                            <input type="object" class="form-control input-sm" id="info[0][refund_config][amount]" required placeholder="退款金额" name="info[0][refund_config][amount]">
+                                                            <label class="control-label" for="info[0][refund_config][amount_install_single]">info[0][refund_config][amount_install_single]</label>
+                                                            <input type="object" class="form-control input-sm" id="info[0][refund_config][amount_install_single]" required placeholder="单个安装费退款金额" name="info[0][refund_config][amount_install_single]">
                                                         </div>
                                                                                                                 <div class="form-group">
                                                             <label class="control-label" for="info[0][refund_config][req_order]">info[0][refund_config][req_order]</label>
-                                                            <input type="object" class="form-control input-sm" id="info[0][refund_config][req_order]" required placeholder="10否需要拍维修单" name="info[0][refund_config][req_order]">
+                                                            <input type="object" class="form-control input-sm" id="info[0][refund_config][req_order]" required placeholder="是否需要拍维修单" name="info[0][refund_config][req_order]">
                                                         </div>
                                                                                                                 <div class="form-group">
                                                             <label class="control-label" for="info[0][refund_config][num]">info[0][refund_config][num]</label>
-                                                            <input type="object" class="form-control input-sm" id="info[0][refund_config][num]" required placeholder="退货数量" name="info[0][refund_config][num]">
+                                                            <input type="object" class="form-control input-sm" id="info[0][refund_config][num]" required placeholder="最大退货数量" name="info[0][refund_config][num]">
                                                         </div>
                                                                                                                 <div class="form-group">
                                                             <label class="control-label" for="info[0][refund_config][num_install]">info[0][refund_config][num_install]</label>
-                                                            <input type="object" class="form-control input-sm" id="info[0][refund_config][num_install]" required placeholder="退安装量数量" name="info[0][refund_config][num_install]">
-                                                        </div>
-                                                                                                                <div class="form-group">
-                                                            <label class="control-label" for="info[0][refund_config][req_order]">info[0][refund_config][req_order]</label>
-                                                            <input type="object" class="form-control input-sm" id="info[0][refund_config][req_order]" required placeholder="1是0否需要拍维修单" name="info[0][refund_config][req_order]">
+                                                            <input type="object" class="form-control input-sm" id="info[0][refund_config][num_install]" required placeholder="最大退安装量数量" name="info[0][refund_config][num_install]">
                                                         </div>
                                                                                                                 <div class="form-group">
                                                             <label class="control-label" for="info[0][refund_config][req_order_goods]">info[0][refund_config][req_order_goods]</label>
@@ -19025,7 +18981,7 @@
 
                 </div>
                 <div class="col-md-6" align="right">
-                    Generated on 2022-12-10 11:46:04 <a href="./" target="_blank">苏州屏酷有限公司</a>
+                    Generated on 2022-12-10 13:34:32 <a href="./" target="_blank">苏州屏酷有限公司</a>
                 </div>
             </div>