LocalPackage.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace app\model\express;
  11. use app\model\BaseModel;
  12. use app\model\member\Member;
  13. /**
  14. * 外卖配送
  15. */
  16. class LocalPackage extends BaseModel
  17. {
  18. /**
  19. * 获取外卖配送包裹列表
  20. * @param $condition
  21. * @param string $field
  22. */
  23. public function getLocalDeliveryPackageList($condition, $field = '*')
  24. {
  25. $list = model('local_delivery_package')->getList($condition, $field);
  26. return $this->success($list);
  27. }
  28. /**
  29. * 获取包裹信息
  30. * @param $condition
  31. */
  32. public function package($condition)
  33. {
  34. $info = model('local_delivery_package')->getInfo($condition, '*');
  35. return $this->success($info);
  36. }
  37. /**
  38. * 外卖配送
  39. */
  40. public function delivery($param)
  41. {
  42. $order_id = $param['order_id'] ?? 0;//订单id
  43. $order_goods_id_array = $param['order_goods_id_array'];
  44. $goods_id_array = $param['goods_id_array'];
  45. $delivery_type = $param['delivery_type'];//物流方式 1 物流配送 0 无需物流
  46. $delivery_no = $param['delivery_no'] ?? '';//物流单号
  47. $member_id = $param['member_id'];
  48. $site_id = $param['site_id'];
  49. $member_model = new Member();
  50. $member_info_result = $member_model->getMemberInfo([['member_id', '=', $member_id]], 'nickname');
  51. $member_info = $member_info_result['data'] ?? [];
  52. //查询物流单号是否已存在,如果存在就合并入已存在的数据
  53. $condition = array(
  54. ['site_id', '=', $site_id],
  55. ['delivery_no', '=', $delivery_no],
  56. ['order_id', '=', $order_id],
  57. ['delivery_type', '=', $delivery_type],
  58. ['member_id', '=', $member_id]
  59. );
  60. $info = model('local_delivery_package')->getInfo($condition, '*');
  61. if (empty($info)) {
  62. if ($delivery_type > 0) {
  63. $count = model('local_delivery_package')->getCount([['site_id', '=', $site_id], ['order_id', '=', $order_id], ['delivery_type', '=', $delivery_type]]);
  64. $num = $count + 1;
  65. $package_name = '包裹' . $num;
  66. } else {
  67. $package_name = '商家自配送';
  68. }
  69. $data = array(
  70. 'order_id' => $order_id,
  71. 'order_goods_id_array' => implode(',', $order_goods_id_array),
  72. 'goods_id_array' => implode(',', $goods_id_array),
  73. 'delivery_no' => $delivery_no,
  74. 'site_id' => $site_id,
  75. 'member_id' => $member_id,
  76. 'member_name' => $member_info['nickname'] ?? '',
  77. 'delivery_type' => $delivery_type,
  78. 'package_name' => $package_name,
  79. 'delivery_time' => time(),
  80. 'deliverer' => $param['deliverer'],
  81. 'deliverer_mobile' => $param['deliverer_mobile'],
  82. );
  83. $result = model('local_delivery_package')->add($data);
  84. } else {
  85. $temp_order_goods_id_arr = explode(',', $info['order_goods_id_array']);
  86. $temp_goods_id_arr = explode(',', $info['goods_id_array']);
  87. $order_goods_id_array = implode(',', array_unique(array_merge($temp_order_goods_id_arr, $order_goods_id_array)));
  88. $goods_id_array = implode(',', array_merge($temp_goods_id_arr, $goods_id_array));
  89. $data = array(
  90. 'order_goods_id_array' => $order_goods_id_array,
  91. 'goods_id_array' => $goods_id_array,
  92. );
  93. $result = model('local_delivery_package')->update($data, $condition);
  94. }
  95. return $this->success($result);
  96. }
  97. }