RefundService.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Niucloud-admin 企业快速开发的多应用管理平台
  4. // +----------------------------------------------------------------------
  5. // | 官方网址:https://www.niucloud.com
  6. // +----------------------------------------------------------------------
  7. // | niucloud团队 版权所有 开源版本可自由商用
  8. // +----------------------------------------------------------------------
  9. // | Author: Niucloud Team
  10. // +----------------------------------------------------------------------
  11. namespace app\service\admin\pay;
  12. use app\dict\pay\PayDict;
  13. use app\model\pay\Refund;
  14. use app\service\core\pay\CoreRefundService;
  15. use core\base\BaseAdminService;
  16. /**
  17. * 退款服务层
  18. */
  19. class RefundService extends BaseAdminService
  20. {
  21. public function __construct()
  22. {
  23. parent::__construct();
  24. $this->model = new Refund();
  25. }
  26. /**
  27. * 退款账户记录
  28. * @param array $where
  29. * @return array
  30. */
  31. public function getPage(array $where)
  32. {
  33. $field = 'id,refund_no,out_trade_no,type,channel,money,reason,status,create_time,refund_time,close_time,fail_reason,voucher,trade_type,trade_id,refund_type,main_type,main_id';
  34. $search_model = $this->model->withSearch([ 'create_time', 'out_trade_no', 'refund_no', 'status' ], $where)->field($field)->append([ 'type_name', 'status_name' ])->order('create_time desc');
  35. return $this->pageQuery($search_model);
  36. }
  37. /**
  38. * 获取退款详情
  39. * @param string $refund_no
  40. * @return array
  41. */
  42. public function getDetail(string $refund_no)
  43. {
  44. $field = 'id,refund_no,out_trade_no,type,channel,money,reason,status,create_time,refund_time,close_time,fail_reason,voucher,trade_type,trade_id,refund_type,main_type,main_id';
  45. return $this->model->where([ [ 'refund_no', '=', $refund_no ] ])
  46. ->field($field)
  47. ->append([ 'type_name', 'status_name', 'refund_type_name' ])
  48. ->findOrEmpty()
  49. ->toArray();
  50. }
  51. /**
  52. * 支付审核通过
  53. * @param array $data
  54. * @return bool
  55. */
  56. public function refund(array $data)
  57. {
  58. return ( new CoreRefundService() )->refund($data[ 'refund_no' ], $data[ 'voucher' ], $data[ 'refund_type' ], PayDict::USER, $this->uid);
  59. }
  60. }