OrderListModel.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?php
  2. namespace app\common\model;
  3. /**
  4. * 订单详情列表
  5. * Class OrderListModel
  6. * @package app\common\model
  7. */
  8. class OrderListModel extends BaseModel
  9. {
  10. protected $table = 'order_list';
  11. //根据订单详情得到产品的分页
  12. public function getOrderDetailPage($page,$pageSize,$condition=[],$is_count = false,$order=''){
  13. $join=[
  14. ['product product','product.product_no=orderList.product_no','LEFT'],
  15. ['product_type product_type','product_type.type_id=product.type_id','LEFT'],
  16. ['doctor','doctor.doctor_no=orderList.doctor_no','LEFT'],
  17. ];
  18. $this->alias('orderList')
  19. ->field('orderList.*,product.product_name,product.images,
  20. doctor.name doctor_name,
  21. product.market_price,product.member_price,product.overdue_time,product_type.type_name product_type_name')
  22. ->join($join);
  23. if($condition){
  24. $this->where($condition);
  25. }
  26. if($is_count){
  27. return $this->count();
  28. }
  29. if($order){
  30. $this->order($order);
  31. }
  32. return $this->baseModel($this->page($page,$pageSize)->select());
  33. }
  34. /**
  35. * 根据订单详情得到产品
  36. * @param $condition
  37. * @return false|\PDOStatement|string|\think\Collection
  38. */
  39. public function getOrderListAndProduct($condition=[]){
  40. $join=[
  41. ['product product','product.product_no=orderList.product_no','LEFT'],
  42. ['product_type product_type','product_type.type_id=product.type_id','LEFT'],
  43. ['doctor','doctor.doctor_no=orderList.doctor_no','LEFT'],
  44. ];
  45. $this->alias('orderList')
  46. ->field('orderList.*,product.product_name,product.images,
  47. product.market_price,product.member_price,product.overdue_time,product_type.type_name product_type_name')
  48. ->join($join);
  49. if($condition){
  50. $this->where($condition);
  51. }
  52. return $this->baseModel($this->select());
  53. }
  54. /**
  55. * 获得购物车商品
  56. * @param $condition
  57. * @return false|\PDOStatement|string|\think\Collection
  58. */
  59. public function getProductS($condition = []){
  60. $list = $this->alias('orderList')
  61. ->field('orderList.*,product.product_name,product.market_price,product.member_price,product.images,product.product_id,dg.price as dg_price,promo.price as promo_price')
  62. ->join('product product','product.product_no=orderList.product_no','left')
  63. ->join('doctor_guide dg','dg.doctor_no = orderList.doctor_no and dg.product_no = orderList.product_no','LEFT')
  64. ->join('product_promo promo','promo.product_no = orderList.product_no','LEFT')
  65. ->where($condition)
  66. ->select();
  67. foreach ($list as &$pro){
  68. if($pro['dg_price'] != null){
  69. $member_price = $pro['dg_price'];
  70. }elseif($pro['promo_price'] != null){
  71. $member_price = $pro['promo_price'];
  72. }else{
  73. $member_price = $pro['member_price'];
  74. }
  75. $intPrice = intval($member_price/100);
  76. $dotPrice = intval($member_price%100);
  77. $dotPrice = str_pad($dotPrice,2,0);
  78. $pro['sales_price'] = $intPrice.".".$dotPrice;
  79. }
  80. return $list;
  81. }
  82. //财务订单导出
  83. public function getFinanceOrderList($condition=[]){
  84. $join=[
  85. ['order order','order.order_no = orderList.order_no','LEFT'],//订单详情
  86. ['pay_list pay','pay.order_no = order.order_no','LEFT'],//支付记录
  87. ['product product','product.product_no=orderList.product_no','left'],//商品信息
  88. ['user user','user.user_no = order.user_no','LEFT'],//会员
  89. ['doctor doctor','doctor.doctor_no = orderList.doctor_no','LEFT'],//导购
  90. ['order_sales sales','sales.order_no = order.order_no','LEFT'],//售后
  91. ];
  92. $this->alias('orderList')
  93. ->field('order.add_time,order.order_no,order_status,order.total_number,user.user_name,user.real_name,
  94. product.product_name,product.erp_no,orderList.number product_number,orderList.actual_price,
  95. orderList.product_price,order.total_price,logistics_price,wx_price,pay.add_ts pay_time,pay.pay_no,
  96. order.consignee,order.address order_address,order.address_mobile,order.order_type,order.point,
  97. sales.sales_price,sales.status sales_status,pay.pay_style,doctor.name doctor_name,doctor.doctor_no
  98. ')
  99. ->join($join);
  100. if($condition){
  101. $this->where($condition);
  102. }
  103. return $this->select();
  104. }
  105. public function getOrderListPurchasing($condition=[],$is_count = false){
  106. $join=[
  107. ['product product','product.product_no=orderList.product_no','LEFT'],
  108. ['order order','order.order_no=orderList.order_no','LEFT'],
  109. ];
  110. $this->alias('orderList')
  111. ->field('
  112. product.product_name,product.product_no,
  113. order.order_status,order.province_code,order.city_code,order.area_code,order.province,order.city,order.area,
  114. sum(orderList.number) as product_totalNumber,count(order.order_no) as order_totalNumber
  115. ')
  116. ->join($join)->group('order.area_code');
  117. if($condition){
  118. $this->where($condition);
  119. }
  120. if($is_count){
  121. return $this->count();
  122. }
  123. $this->order('order_totalNumber desc');
  124. return $this->select();
  125. }
  126. }