RechargeOrderService.php 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Niucloud-admin 企业快速开发的saas管理平台
  4. // +----------------------------------------------------------------------
  5. // | 官方网址:https://www.niucloud.com
  6. // +----------------------------------------------------------------------
  7. // | niucloud团队 版权所有 开源版本可自由商用
  8. // +----------------------------------------------------------------------
  9. // | Author: Niucloud Team
  10. // +----------------------------------------------------------------------
  11. namespace app\service\api\order;
  12. use app\dict\order\RechargeOrderDict;
  13. use app\model\order\RechargeOrder;
  14. use app\service\core\order\recharge\CoreRechargeOrderService;
  15. use core\base\BaseApiService;
  16. /**
  17. * 充值订单服务层
  18. * Class RechargeOrderService
  19. * @package app\service\api\order
  20. */
  21. class RechargeOrderService extends BaseApiService
  22. {
  23. public function __construct()
  24. {
  25. parent::__construct();
  26. $this->model = new RechargeOrder();
  27. }
  28. /**
  29. * 会员充值
  30. * @param $data //['order_from' => 'h5', 'ip' => '127.0.0.1', 'member_message' => '','recharge_money' => 12.00]
  31. */
  32. public function recharge(array $data)
  33. {
  34. $data['order_from'] = $this->channel;
  35. $data['member_id'] = $this->member_id;
  36. return (new CoreRechargeOrderService())->create($data);
  37. }
  38. /**
  39. * 充值订单分页列表
  40. * @param array $where
  41. * @return array
  42. */
  43. public function getPage(array $where)
  44. {
  45. $field = 'order_id, order_no, order_from, order_type, out_trade_no, order_status, refund_status, member_id, ip, member_message, order_item_money, order_discount_money, order_money, create_time, pay_time, close_time, is_delete, is_enable_refund, remark, invoice_id, close_reason';
  46. $order = 'create_time desc';
  47. $where['order_type'] = 'recharge';
  48. $search_model = $this->model->where([ ['member_id', '=', $this->member_id] ])->withSearch(['order_status'], $where)->field($field)->with(['item' => function($query) {
  49. $query->field('order_item_id, order_id, member_id, item_id, item_type, item_name, item_image, price, num, item_money, is_refund, refund_no, refund_status, create_time');
  50. }])->order($order)->append(['order_from_name']);
  51. $list = $this->pageQuery($search_model);
  52. $order_status = RechargeOrderDict::getStatus();
  53. //$refund_status = RechargeOrderDict::getRefundStatus();
  54. foreach ($list['data'] as $k => $v)
  55. {
  56. $list['data'][$k]['order_status_info'] = $order_status[$v['order_status']] ?? [];
  57. // $list['data'][$k]['refund_status_name'] = $refund_status[$v['refund_status']]['name'] ?? '';
  58. }
  59. return $list;
  60. }
  61. /**
  62. * 充值订单详情
  63. * @param int $order_id
  64. * @return array
  65. */
  66. public function getDetail(int $order_id)
  67. {
  68. $field = 'order_id, order_no, order_from, order_type, out_trade_no, order_status, refund_status, member_id, ip, member_message, order_item_money, order_discount_money, order_money, create_time, pay_time, close_time, is_delete, is_enable_refund, remark, invoice_id, close_reason';
  69. $detail = $this->model->where([['order_type', '=', 'recharge'], ['member_id', '=', $this->member_id], ['order_id', '=', $order_id]])->field($field)->with(['item' => function($query) {
  70. $query->field('order_item_id, order_id, member_id, item_id, item_type, item_name, item_image, price, num, item_money, is_refund, refund_no, refund_status, create_time');
  71. }])->append(['order_from_name'])->findOrEmpty()->toArray();
  72. if(!empty($detail))
  73. {
  74. $detail['order_status_info'] = RechargeOrderDict::getStatus($detail['order_status']) ?? [];
  75. }
  76. return $detail;
  77. }
  78. /**
  79. * 充值订单状态
  80. * @return array|array[]|string
  81. */
  82. public function getStatus()
  83. {
  84. return RechargeOrderDict::getStatus();
  85. }
  86. }