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.

137 lines
4.6 KiB

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. 'address',
  76. 'box_money',
  77. 'delivery_time',
  78. 'dn_state',
  79. 'money',
  80. 'name',
  81. 'note',
  82. 'order_num',
  83. 'order_type',
  84. 'pay_time',
  85. 'pay_type',
  86. 'state',
  87. 'dada_fee as ps_money',
  88. 'time',
  89. 'type',
  90. 'yhq_money2',
  91. 'tel',
  92. 'dada_status'
  93. )
  94. ->first();
  95. $order = Db::table('ims_cjdc_order as o')
  96. ->join('ims_cjdc_store as s','o.store_id','=','s.id')
  97. ->where('o.order_main_id',$data['order_id'])
  98. ->select(
  99. 'o.id',
  100. 'o.store_id',
  101. 's.name as store_name',
  102. 'o.box_money as store_box_money',
  103. 'o.mj_money as store_mj_money',
  104. 'o.money as store_money',
  105. 'o.note as store_note',
  106. 's.tel as store_tel',
  107. 's.logo as store_logo'
  108. )
  109. ->get();
  110. $store_list = array();
  111. foreach ($order as $k => $v){
  112. $goods = Db::table('ims_cjdc_order_goods as og')
  113. ->join('ims_cjdc_goods as g','g.id','=','og.good_id')
  114. ->where('og.order_id',$v->id)
  115. ->select(
  116. 'og.id as good_id',
  117. 'og.img as good_logo',
  118. 'og.money as good_money',
  119. 'og.name as good_name',
  120. 'og.number as good_num',
  121. 'og.spec as good_spec',
  122. 'g.is_show'
  123. )
  124. ->get();
  125. $v->good_list = $goods;
  126. $store_list[$v->store_id] = $v;
  127. }
  128. $order_main->store_list = $store_list;
  129. return $order_main;
  130. }
  131. }