OrderService.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace addons\HuijuBill\common\service;
  3. use addons\HuijuBill\common\enums\HuijuBillTypeEnum;
  4. use addons\HuijuBill\common\models\OrderModel;
  5. use addons\HuijuBill\common\enums\StatusEnum;
  6. use yii\base\Model;
  7. use yii\data\Pagination;
  8. class OrderService extends Model
  9. {
  10. /**
  11. * 商户ID
  12. *
  13. * @var integer
  14. */
  15. public $mall_id;
  16. /**
  17. * 获取汇聚分账支付列表
  18. *
  19. * @param array $params
  20. * @return array
  21. */
  22. public function getPayOrderList($params)
  23. {
  24. $params = array_filter($params, function ($val) {return ($val === '' || $val === null) ? false : true;});
  25. $limit = $params['limit'] ?? 30;
  26. $page = $params['page'] ?? 1;
  27. $pagination = null;
  28. $model = OrderModel::find()
  29. ->with(['trade' => function ($query) {
  30. return $query->select('id, title, pay_fee');
  31. }])
  32. ->where(['mall_id' => $this->mall_id]);
  33. // 搜索
  34. !empty($params['no']) && $model->andWhere(['like', 'sys_order_no', $params['no']]);
  35. !empty($params['type']) && $model->andWhere(['=', 'trade_type', $params['type']]);
  36. !empty($params['status']) && $model->andWhere(['=', 'status', $params['status']]);
  37. $pagination = new Pagination(['totalCount' => $model->count(), 'pageSize' => $limit]);
  38. $model->limit($pagination->limit)->offset($pagination->offset);
  39. $list = $model->asArray()
  40. ->orderBy('id desc')
  41. ->all();
  42. foreach ($list as $k => $v) {
  43. $list[$k]['status_text'] = StatusEnum::getValue($v['status']);
  44. $list[$k]['trade_type_text'] = HuijuBillTypeEnum::getValue($v['trade_type']);
  45. }
  46. $data['list'] = $list;
  47. $data['status'] = StatusEnum::getMap();
  48. $data['trade_type'] = HuijuBillTypeEnum::getMap();
  49. $data['page_count'] = $pagination->pageCount;
  50. $data['current_page'] = $page + 1;
  51. return $data;
  52. }
  53. }