CourierLogic.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. namespace app\api\logic;
  3. use app\common\model\CourierModel;
  4. use app\common\model\MealModel;
  5. use app\common\model\MealOrdersModel;
  6. /**
  7. * 配送员
  8. *
  9. * @author wj
  10. * @date 2022-12-09
  11. */
  12. class CourierLogic
  13. {
  14. /**
  15. * 获取订单信息
  16. *
  17. * @return void
  18. * @author wj
  19. * @date 2022-12-09
  20. */
  21. public function geiorderlist($arr)
  22. {
  23. $fillfields = ['courierid'];
  24. foreach ($fillfields as $key => $value) {
  25. if (!isset($arr[$value]) || empty($arr[$value])) {
  26. return backarr(0, "参数缺少");
  27. }
  28. }
  29. $cid = $arr['courierid'];
  30. $where = ['status' => 1];
  31. if (isset($arr['status_delivery']) && is_numeric($arr['status_delivery'])) {
  32. $where['status_delivery'] = $arr['status_delivery'];
  33. }
  34. $m_mo = new MealOrdersModel();
  35. $m_c = new CourierModel();
  36. $m_m = new MealModel();
  37. $cinfo = $m_c->getInfo(['id' => $cid]);
  38. if (empty($cinfo)) {
  39. return backarr(0, "配送员不存在");
  40. }
  41. $where['center_id'] = $cinfo['center_id'];
  42. $count = $m_mo->getList($where, 'count');
  43. if (empty($count)) {
  44. return backarr(0, "无数据");
  45. }
  46. $page = isset($arr['page']) && is_numeric($arr['page']) && !empty($arr['page']) && $arr['page'] > 0 ? $arr['page'] : 1;
  47. $size = isset($arr['size']) && is_numeric($arr['size']) && !empty($arr['size']) && $arr['size'] > 0 ? $arr['size'] : 10;
  48. //订单编号 套餐名 套餐数量 地址 电话 收件人 备注 送货状态
  49. $field = [
  50. 'id', 'center_id', 'meal_id'
  51. , 'orderno', 'quantity', 'createtime', 'remark'
  52. , 'user_id', 'status_delivery'
  53. , 'receiver_address', 'receiver_username', 'receiver_phone', 'receiver_gcj_lat', 'receiver_gcj_long'];
  54. $list = $m_mo->getList($where, $field, $page, $size);
  55. foreach ($list as $key => $value) {
  56. $minfo = $m_m->getInfo(['id' => $value['meal_id']], ['name_meal']);
  57. $value['name_meal'] = '';
  58. if (empty($minfo)) {
  59. $value['name_meal'] = $minfo['name_meal'];
  60. }
  61. $list[$key] = $value;
  62. }
  63. return backarr(1, "查询成功", $list);
  64. }
  65. /**
  66. * 改配送状态
  67. *
  68. * @return void
  69. * @author wj
  70. * @date 2022-12-09
  71. */
  72. public function updatestatusdelivery($arr)
  73. {
  74. $fillfields = ['orderid', 'courierid', 'status_delivery'];
  75. foreach ($fillfields as $key => $value) {
  76. if (!isset($arr[$value]) || empty($arr[$value])) {
  77. return backarr(0, "参数缺少");
  78. }
  79. }
  80. $cid = $arr['courierid'];
  81. $orderid = $arr['orderid'];
  82. $status_delivery = $arr['status_delivery'];
  83. $m_c = new CourierModel();
  84. $m_mo = new MealOrdersModel();
  85. $cinfo = $m_c->getInfo(['id' => $cid]);
  86. if (empty($cinfo)) {
  87. return backarr(0, "配送员不存在");
  88. }
  89. $centerid = $cinfo['center_id'];
  90. $where = ['id' => $orderid, 'status' => 1, 'center_id' => $centerid];
  91. $moinfo = $m_mo->getInfo($where);
  92. if (empty($moinfo)) {
  93. return backarr(0, "订单不存在");
  94. }
  95. if (0 == $moinfo['status_delivery']) {
  96. $updateData = [
  97. 'status_delivery' => 2,
  98. 'deliverytime' => date('Y-m-d H:i:s'),
  99. ];
  100. $row = $m_mo->updateinfo(['id' => $orderid], $updateData);
  101. if (empty($row)) {
  102. return backarr(0, "订单配送状态修改失败");
  103. }
  104. }
  105. return backarr(200, "订单配送状态修改成功", ['moid' => $orderid]);
  106. }
  107. }