123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <?php
- namespace app\api\controller\mall;
- use app\common\controller\Api;
- use app\common\model\LogisticsCompany;
- use app\common\model\Refund;
- use think\Db;
- use think\db\Query;
- /**
- * 订单退款
- * @inheritdoc
- */
- class OrderRefund extends Api
- {
- protected $noNeedRight='*';
- /**
- * 售后详情
- * @ApiParams (name=order_info_id,description="子订单ID")
- * @ApiReturnParams (name=orders,description="订单对象")
- * @ApiReturnParams (name=refunds,description="售后记录")
- */
- public function show(){
- $data=$this->_validate([
- 'order_info_id'=>['require'],
- ]);
- $user=$this->auth->getUser();
- $orderInfo=$user
- ->orderInfo()
- ->with(['refund','refunds','orders'=>function(Query $query)use($data){
- $query->with(['info'=>function(Query $query)use($data){
- $query->where('id',$data['order_info_id']);
- }]);
- }])
- ->findOrFail($data['order_info_id']);
- Refund::makeRefundConfig($orderInfo,true,true,true);
- $this->success('',$orderInfo);
- }
- /**
- * 寄回物品
- * @ApiParams (name=refund_id,description="售后ID")
- * @ApiParams (name=user_trans_com_id,description="快递公司ID")
- * @ApiParams (name=user_trans_no,description="快递单号")
- */
- public function back_goods(){
- $user=$this->auth->getUser();
- $data=$this->_validate([
- 'refund_id'=>['require'],
- 'user_trans_com_id'=>['require'],
- 'user_trans_no'=>['require'],
- ]);
- Db::startTrans();
- $refund=$user->refund()->lock(true)->findOrFail($data['refund_id']);
- if(!$refund->self_back_goods){
- $this->error('操作失败');
- }
- $com=LogisticsCompany::find($data['user_trans_com_id']);
- if(!$com){
- $this->error('公司不存在');
- }
- $refund->makeUserBackGoods($com,$data['user_trans_no']);
- Db::commit();
- $this->success('',$refund);
- }
- }
|