12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- // +----------------------------------------------------------------------
- // | Niucloud-admin 企业快速开发的saas管理平台
- // +----------------------------------------------------------------------
- // | 官方网址:https://www.niucloud.com
- // +----------------------------------------------------------------------
- // | niucloud团队 版权所有 开源版本可自由商用
- // +----------------------------------------------------------------------
- // | Author: Niucloud Team
- // +----------------------------------------------------------------------
- namespace app\service\api\order;
- use app\dict\order\RechargeOrderDict;
- use app\model\order\RechargeOrder;
- use app\service\core\order\recharge\CoreRechargeOrderService;
- use core\base\BaseApiService;
- /**
- * 充值订单服务层
- * Class RechargeOrderService
- * @package app\service\api\order
- */
- class RechargeOrderService extends BaseApiService
- {
- public function __construct()
- {
- parent::__construct();
- $this->model = new RechargeOrder();
- }
- /**
- * 会员充值
- * @param $data //['order_from' => 'h5', 'ip' => '127.0.0.1', 'member_message' => '','recharge_money' => 12.00]
- */
- public function recharge(array $data)
- {
- $data['order_from'] = $this->channel;
- $data['member_id'] = $this->member_id;
- return (new CoreRechargeOrderService())->create($data);
- }
- /**
- * 充值订单分页列表
- * @param array $where
- * @return array
- */
- public function getPage(array $where)
- {
- $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';
- $order = 'create_time desc';
- $where['order_type'] = 'recharge';
- $search_model = $this->model->where([ ['member_id', '=', $this->member_id] ])->withSearch(['order_status'], $where)->field($field)->with(['item' => function($query) {
- $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');
- }])->order($order)->append(['order_from_name']);
- $list = $this->pageQuery($search_model);
- $order_status = RechargeOrderDict::getStatus();
- //$refund_status = RechargeOrderDict::getRefundStatus();
- foreach ($list['data'] as $k => $v)
- {
- $list['data'][$k]['order_status_info'] = $order_status[$v['order_status']] ?? [];
- // $list['data'][$k]['refund_status_name'] = $refund_status[$v['refund_status']]['name'] ?? '';
- }
- return $list;
- }
- /**
- * 充值订单详情
- * @param int $order_id
- * @return array
- */
- public function getDetail(int $order_id)
- {
- $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';
- $detail = $this->model->where([['order_type', '=', 'recharge'], ['member_id', '=', $this->member_id], ['order_id', '=', $order_id]])->field($field)->with(['item' => function($query) {
- $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');
- }])->append(['order_from_name'])->findOrEmpty()->toArray();
- if(!empty($detail))
- {
- $detail['order_status_info'] = RechargeOrderDict::getStatus($detail['order_status']) ?? [];
- }
- return $detail;
- }
- /**
- * 充值订单状态
- * @return array|array[]|string
- */
- public function getStatus()
- {
- return RechargeOrderDict::getStatus();
- }
- }
|