Order.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <?php
  2. /**
  3. * @copyright Copyright (c) 2017 https://www.sapixx.com All rights reserved.
  4. * @license Licensed (http://www.apache.org/licenses/LICENSE-2.0).
  5. * @author pillar<ltmn@qq.com>
  6. * 订单数据
  7. */
  8. namespace app\popupshop\model;
  9. use think\Model;
  10. class Order extends Model{
  11. protected $pk = 'id';
  12. protected $table = 'ai_popupshop_order';
  13. //订单列表
  14. public function orderItem(){
  15. return $this->hasOne('OrderCache','order_id','id');
  16. }
  17. //订单列表
  18. public function orderList(){
  19. return $this->hasMany('OrderCache','order_id','id');
  20. }
  21. /**
  22. * 获取用户订单数据(用户订单管理)
  23. * @param integer $user_id 要获取的订单用户
  24. * @param integer $type 要获取的订单状态
  25. * @return array
  26. */
  27. public static function getUserOrderList(int $user_id,int $type = 0){
  28. $condition['user_id'] = $user_id;
  29. $condition['is_del'] = 0;
  30. switch ($type) {
  31. case 1:
  32. $condition['paid_at'] = 1;
  33. $condition['express_status'] = 0;
  34. break;
  35. case 2:
  36. $condition['paid_at'] = 1;
  37. $condition['express_status'] = 1;
  38. $condition['status'] = 0;
  39. break;
  40. case 3:
  41. $condition['paid_at'] = 1;
  42. $condition['status'] = 1;
  43. break;
  44. default:
  45. $condition['paid_at'] = 0;
  46. break;
  47. }
  48. return self::where($condition)->order('id desc')->paginate(10);
  49. }
  50. /**
  51. * 获取订单数据(单个订单预览)
  52. * 使用:前台查询用户自己的订单
  53. * @param string $order_no 订单ID
  54. * @param integer $user_id 要获取的订单用户
  55. * @param integer $type 要获取的订单状态
  56. * @return array
  57. */
  58. public static function getOrder(string $order_no,int $user_id = 0,int $is_del = 1){
  59. if($user_id){
  60. $condition['user_id'] = $user_id;
  61. }
  62. if($is_del){
  63. $condition['is_del'] = 0;
  64. }
  65. $condition['order_no'] = $order_no;
  66. return self::where($condition)->order('id desc')->select();
  67. }
  68. /**
  69. * 订单数据处理
  70. * @param array $data
  71. * @return array
  72. */
  73. public static function order_data($data){
  74. $item = [];
  75. foreach ($data as $value) {
  76. $sku = [];
  77. foreach ($value->OrderList as $key => $rs) {
  78. $sku[$key]['name'] = $rs['name'];
  79. $sku[$key]['note'] = $rs->item->note ?? '';
  80. $sku[$key]['img'] = $rs->img;
  81. $sku[$key]['item_id'] = $rs->item_id;
  82. $sku[$key]['buy_price'] = $rs->buy_price;
  83. $sku[$key]['buy_nums'] = $rs->buy_nums;
  84. $sku[$key]['amount'] = money($rs->buy_price*$rs->buy_nums);
  85. }
  86. $item[$value->id]['item'] = $sku;
  87. $item[$value->id]['id'] = $value->id;
  88. $item[$value->id]['order_no'] = $value->order_no;
  89. $item[$value->id]['user_id'] = $value->user_id;
  90. $item[$value->id]['status'] = $value->status;
  91. $item[$value->id]['status_text'] = self::status($value->status,$value->paid_at,$value->express_status);
  92. $item[$value->id]['is_del'] = $value->is_del;
  93. $item[$value->id]['real_freight'] = money($value->real_freight);
  94. $item[$value->id]['real_amount'] = money($value->real_amount);
  95. $item[$value->id]['order_amount'] = money($value->order_amount);
  96. $item[$value->id]['order_starttime'] = date('Y-m-d H:s',$value->order_starttime);
  97. $item[$value->id]['order_endtime'] = date('Y-m-d H:s',$value->order_endtime);
  98. $item[$value->id]['paid_at'] = $value->paid_at;
  99. $item[$value->id]['paid_time'] = empty($value->paid_time) ? '' : date('Y-m-d H:s',$value->paid_time);
  100. $item[$value->id]['express_status'] = $value->express_status;
  101. $item[$value->id]['express_no'] = $value->express_no;
  102. $item[$value->id]['express_starttime'] = empty($value->express_starttime) ? '' : date('Y-m-d H:s',$value['express_starttime']);
  103. $item[$value->id]['express_company'] = $value->express_company;
  104. $item[$value->id]['express_name'] = $value->express_name;
  105. $item[$value->id]['express_phone'] = $value->express_phone;
  106. $item[$value->id]['express_address'] = $value->express_address;
  107. }
  108. return $item;
  109. }
  110. /**
  111. * 状态数字变文字(前台)
  112. * @return void
  113. */
  114. protected static function status($status,$paid_at,$express_status){
  115. if($status == 0){
  116. if($paid_at == 1){
  117. if($express_status == 0){
  118. $status_text = '已付款';
  119. }else{
  120. $status_text = '待收货';
  121. }
  122. }else{
  123. $status_text = '待付款';
  124. }
  125. }else{
  126. $status_text = '订单结束';
  127. }
  128. return $status_text;
  129. }
  130. }