You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

143 lines
4.7 KiB

5 years ago
5 years ago
  1. <?php
  2. namespace App\Service;
  3. use App\Model\ServiceEvaluate;
  4. use App\Model\ServicePersonnel;
  5. use App\Model\Users;
  6. use Hyperf\DbConnection\Db;
  7. use Hyperf\HttpServer\Contract\RequestInterface;
  8. use Hyperf\Di\Annotation\Inject;
  9. use Hyperf\Paginator\Paginator;
  10. class OrderListService implements OrderListServiceInterface
  11. {
  12. public function storeOrderList($data)
  13. {
  14. $data['pagesize'] = intval($data['pagesize']);
  15. $order_main = Db::table('ims_cjdc_order as o')
  16. ->join('ims_cjdc_order_main as m','o.order_main_id','=','m.id')
  17. ->join('ims_cjdc_storeset as s','s.store_id','=','o.store_id')
  18. ->where([
  19. ['o.store_id','=',$data['store_id']],
  20. ['o.type','=',1],
  21. ])
  22. ->whereIn('o.state',[$data['state']])
  23. ->select(
  24. 's.id',
  25. 's.ps_mode',
  26. 'm.order_shipping_code',
  27. 'o.id as order_id',
  28. 'o.address',
  29. 'o.delivery_time',
  30. 'o.lat',
  31. 'o.lng',
  32. 'o.money',
  33. 'o.name',
  34. 'o.note',
  35. 'o.order_num',
  36. 'o.order_type',
  37. 'o.pay_type',
  38. 'o.state',
  39. 'o.store_id',
  40. 'o.time',
  41. 'm.dada_status'
  42. )
  43. ->paginate($data['pagesize']);
  44. $res = array();
  45. foreach ($order_main as $k => $v){
  46. if($v->dada_status > 0){
  47. $v->ps_mode = '达达配送';
  48. }else{
  49. $v->ps_mode = '服务站配送';
  50. }
  51. $goods = Db::table('ims_cjdc_order_goods')
  52. ->where('order_id',$v->order_id)
  53. ->select('img','number','name','money')
  54. ->get();
  55. $num = Db::table('ims_cjdc_order_goods')
  56. ->where('order_id',$v->order_id)
  57. ->sum('number');
  58. $order_data = array(
  59. 'good' => $goods,
  60. 'order' => $v,
  61. 'num' => $num,
  62. );
  63. $res[$k] = $order_data;
  64. }
  65. return $res;
  66. }
  67. public function userOrderList($data)
  68. {
  69. $order_main = Db::table('ims_cjdc_order_main')
  70. ->where([
  71. ['id','=',$data['order_id']],
  72. ['type','=',1],
  73. ])
  74. ->select(
  75. 'id as order_id',
  76. 'address',
  77. 'box_money',
  78. 'delivery_time',
  79. 'dn_state',
  80. 'money',
  81. 'name',
  82. 'note',
  83. 'order_num',
  84. 'order_type',
  85. 'pay_time',
  86. 'pay_type',
  87. 'state',
  88. 'dada_fee as ps_money',
  89. 'time',
  90. 'type',
  91. 'yhq_money2',
  92. 'tel',
  93. 'dada_status'
  94. )
  95. ->first();
  96. if($order_main->dada_status > 0){
  97. $order_main->ps_mode = '达达配送';
  98. }else{
  99. $order_main->ps_mode = '服务站配送';
  100. }
  101. $order = Db::table('ims_cjdc_order as o')
  102. ->join('ims_cjdc_store as s','o.store_id','=','s.id')
  103. ->where('o.order_main_id',$data['order_id'])
  104. ->select(
  105. 'o.id',
  106. 'o.store_id',
  107. 's.name as store_name',
  108. 'o.box_money as store_box_money',
  109. 'o.mj_money as store_mj_money',
  110. 'o.money as store_money',
  111. 'o.note as store_note',
  112. 's.tel as store_tel',
  113. 's.logo as store_logo'
  114. )
  115. ->get();
  116. $store_list = array();
  117. foreach ($order as $k => $v){
  118. $goods = Db::table('ims_cjdc_order_goods as og')
  119. ->join('ims_cjdc_goods as g','g.id','=','og.good_id')
  120. ->where('og.order_id',$v->id)
  121. ->select(
  122. 'og.id as good_id',
  123. 'og.img as good_logo',
  124. 'og.money as good_money',
  125. 'og.name as good_name',
  126. 'og.number as good_num',
  127. 'og.spec as good_spec',
  128. 'g.is_show'
  129. )
  130. ->get();
  131. $v->good_list = $goods;
  132. $store_list[$v->store_id] = $v;
  133. }
  134. $order_main->store_list = $store_list;
  135. return $order_main;
  136. }
  137. }