StoreOrder.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Ceeen Wise System
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2007-2017 http://fely.cc All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Date: 2017/6/6 Time: 0:25
  8. // +----------------------------------------------------------------------
  9. // | Author: fely <fely@fely.cc>
  10. // +----------------------------------------------------------------------
  11. namespace app\common\model;
  12. use think\facade\Db;
  13. use think\Model;
  14. /**
  15. * Class Config 系统配置
  16. * @package common\model
  17. */
  18. class StoreOrder extends Model
  19. {
  20. /**
  21. * 更改订单信息
  22. */
  23. public function edit($data, $condition, $limit = 0)
  24. {
  25. return $this->where($condition)->limit($limit)->update($data);
  26. }
  27. /**
  28. * 取得订单列表(所有)
  29. */
  30. public function getOrderList($condition, $pagesize = '', $field = '*', $order = 'id desc', $limit = 0, $extend = [])
  31. {
  32. if ($pagesize) {
  33. $list_paginate = $this->field($field)->where($condition)->order($order)->paginate(['list_rows' => $pagesize, 'query' => request()->param()], false);
  34. $this->page_info = $list_paginate;
  35. $list = $list_paginate->items();
  36. } else {
  37. $list = $this->field($field)->where($condition)->order($order)->limit($limit)->select()->toArray();
  38. }
  39. if (empty($list)) {
  40. return [];
  41. }
  42. $order_list = [];
  43. foreach ($list as $order) {
  44. if (isset($order['order_state'])) {
  45. $order['state_desc'] = get_order_state($order);
  46. }
  47. if (isset($order['payment_code'])) {
  48. $order['payment_name'] = get_order_payment_name($order['payment_code']);
  49. }
  50. $order['pay_amount'] = round($order['order_amount'] - $order['deduction_amount'], 2);
  51. $order['add_time'] = date('Y-m-d H:i:s', $order['add_time']);
  52. $order['finished_time'] = date('Y-m-d H:i:s', $order['finished_time']);
  53. $order_list[$order['id']] = $order;
  54. }
  55. if (empty($order_list)) {
  56. $order_list = $list;
  57. }
  58. //追加返回店铺信息
  59. if (in_array('store', $extend)) {
  60. $store_id_array = [];
  61. foreach ($order_list as $value) {
  62. if (!in_array($value['store_id'], $store_id_array))
  63. $store_id_array[] = $value['store_id'];
  64. }
  65. $store_list = Db::name('store')->where('store_id', 'in', array_values($store_id_array))->select()->toArray();
  66. $store_new_list = [];
  67. foreach ($store_list as $store) {
  68. $store['store_avatar'] = get_store_logo($store['store_avatar']);
  69. $store_new_list[$store['store_id']] = $store;
  70. }
  71. foreach ($order_list as $order_id => $order) {
  72. $order_list[$order_id]['extend_store'] = isset($store_new_list[$order['store_id']]) ? $store_new_list[$order['store_id']] : '';
  73. }
  74. }
  75. //追加返回买家信息
  76. if (in_array('member', $extend)) {
  77. foreach ($order_list as $order_id => $order) {
  78. $order_list[$order_id]['extend_member'] = model('member')->getMemberInfoByID($order['buyer_id']);
  79. }
  80. }
  81. return $order_list;
  82. }
  83. /**
  84. * 获取订单详情
  85. */
  86. public function getOrderInfo($condition, $extend = [], $fields = '*')
  87. {
  88. $order_info = $this->field($fields)->where($condition)->find();
  89. if (empty($order_info)) {
  90. return [];
  91. }
  92. if (isset($order_info['order_state'])) {
  93. $order_info['state_desc'] = get_order_state($order_info);
  94. }
  95. if (isset($order_info['payment_code'])) {
  96. $order_info['payment_name'] = get_order_payment_name($order_info['payment_code']);
  97. }
  98. $order_info['pay_amount'] = round($order_info['order_amount'] - $order_info['deduction_amount'], 2);
  99. $order_info['add_time'] = date('Y-m-d H:i:s', $order_info['add_time']);
  100. $order_info['finished_time'] = date('Y-m-d H:i:s', $order_info['finished_time']);
  101. //追加返回店铺信息
  102. if (in_array('store', $extend)) {
  103. $store = Db::name('store')->where('store_id', $order_info['store_id'])->find();
  104. $store['store_avatar'] = get_store_logo($store['store_avatar']);
  105. $order_info['extend_store'] = $store;
  106. }
  107. //追加返回买家信息
  108. if (in_array('member', $extend)) {
  109. $order_info['extend_member'] = model('member')->getMemberInfoByID($order_info['buyer_id']);
  110. }
  111. return $order_info;
  112. }
  113. /**
  114. * 取得订单数量
  115. * @access public
  116. * @author csdeshang
  117. * @param array $condition 条件
  118. * @return int
  119. */
  120. public function getOrderCount($condition)
  121. {
  122. return $this->where($condition)->count();
  123. }
  124. }