RefundController.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace app\frontend\modules\order\controllers;
  3. use app\common\components\ApiController;
  4. use app\common\exceptions\AppException;
  5. use app\common\models\refund\Apply;
  6. use app\common\models\refund\RefundApply;
  7. use app\frontend\models\Order;
  8. use Request;
  9. use app\backend\modules\goods\models\ReturnAddress;
  10. use Yunshop\AreaDividend\models\AgentOrder;
  11. use Yunshop\YzSupply\services\YzRefundService;
  12. /**
  13. * Created by PhpStorm.
  14. * Author: 芸众商城 www.yunzshop.com
  15. * Date: 2017/4/12
  16. * Time: 上午10:38
  17. */
  18. class RefundController extends ApiController
  19. {
  20. public function returnAddress() {
  21. $plugins_id = \YunShop::request()->plugins_id ? \YunShop::request()->plugins_id : 0;
  22. $store_id = \YunShop::request()->store_id ? \YunShop::request()->store_id : 0;
  23. $supplier_id = \YunShop::request()->supplier_id ? \YunShop::request()->supplier_id : 0;
  24. $address = ReturnAddress::getOneByPluginsId($plugins_id, $store_id, $supplier_id);
  25. if (app('plugins')->isEnabled('area-dividend') && request()->refund_id) {
  26. $orderRefund = RefundApply::select()
  27. ->where('id', request()->refund_id)
  28. ->first();
  29. $agentOrder = AgentOrder::select()
  30. ->where('order_id', $orderRefund->order_id)
  31. ->first();
  32. if ($orderRefund && $agentOrder) {
  33. $address = \app\common\models\goods\ReturnAddress::uniacid()
  34. ->where('plugins_id', \app\common\modules\shop\ShopConfig::current()->get('plugins.area-dividend.id'))
  35. ->where('store_id', $agentOrder->agent_id)
  36. ->where('is_default', 1)
  37. ->first();
  38. }
  39. }
  40. //中台的获取中台的售后地址
  41. if (app('plugins')->isEnabled('yz-supply') && $plugins_id == 120) {
  42. $orderRefund = RefundApply::select()
  43. ->where('id', request()->refund_id)
  44. ->first();
  45. //获取中台售后收货地址
  46. $yzRefundService = YzRefundService::getReturnAddressStart($orderRefund->order_id);
  47. switch ($yzRefundService['code']){
  48. case 1:
  49. return $this->successJson('获取退货地址成功',$yzRefundService['data']);
  50. break;
  51. case 2:
  52. return $this->errorJson('获取退货地址失败',$yzRefundService['msg']);
  53. break;
  54. //其他均为使用商城的售后售后地址
  55. }
  56. }
  57. $refund_address_id = RefundApply::where('id', request()->refund_id)->value('refund_address');
  58. if($refund_address_id){
  59. $address = ReturnAddress::where('id', $refund_address_id)->first();
  60. }
  61. if ($address) {
  62. return $this->successJson('获取退货地址成功!', $address->toarray());
  63. }
  64. return $this->errorJson('获取退货地址失败',$address);
  65. }
  66. }