ExpressDelivery.php 4.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 山西牛酷信息科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com.cn
  8. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
  9. * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
  10. * =========================================================
  11. */
  12. namespace app\model\express;
  13. use app\model\member\Member;
  14. use app\model\BaseModel;
  15. /**
  16. * 物流配送
  17. */
  18. class ExpressDelivery extends BaseModel
  19. {
  20. /**
  21. * 物流配送
  22. */
  23. public function delivery($param){
  24. $order_id = $param["order_id"] ?? 0;//订单id
  25. $order_goods_id_array = $param["order_goods_id_array"];
  26. $goods_id_array = $param["goods_id_array"];
  27. $delivery_type = $param["delivery_type"];//物流方式 1 物流配送 0 无需物流
  28. $delivery_no = $param["delivery_no"] ?? '';//物流单号
  29. $member_id = $param["member_id"];
  30. $site_id = $param["site_id"];
  31. $express_company_id = $param["express_company_id"] ?? 0;
  32. $member_model = new Member();
  33. $member_info_result = $member_model->getMemberInfo([["member_id", "=", $member_id]], "nickname");
  34. $member_info = $member_info_result["data"];
  35. $express_company_name = "";
  36. if($express_company_id > 0){
  37. $express_company_info = model("express_company_shop")->getInfo([["company_id", "=", $express_company_id], ["site_id", "=", $site_id] ], "company_name");
  38. $express_company_name = $express_company_info["company_name"];
  39. }
  40. //查询物流单号是否已存在,如果存在就合并入已存在的数据
  41. $condition = array(
  42. ["site_id", "=", $site_id],
  43. ["delivery_no", "=", $delivery_no],
  44. ["order_id", "=", $order_id],
  45. ["delivery_type" , "=", $delivery_type],
  46. ["express_company_id", "=", $express_company_id],
  47. ["member_id", "=", $member_id]
  48. );
  49. $info = model("express_delivery_package")->getInfo($condition, "*");
  50. if(empty($info)){
  51. if($delivery_type > 0){
  52. $count = model("express_delivery_package")->getCount([["site_id", "=", $site_id], ["order_id", "=", $order_id], ["delivery_type", "=", $delivery_type]]);
  53. $num = $count + 1;
  54. $package_name = "包裹".$num;
  55. }else{
  56. $package_name = "无需物流";
  57. }
  58. $express_company_info = model("express_company")->getInfo([["company_id", "=", $express_company_id]], "logo");
  59. $express_company_image = empty($express_company_info) ? '' : $express_company_info["logo"];
  60. $data = array(
  61. "order_id" => $order_id,
  62. "order_goods_id_array" => implode(",", $order_goods_id_array),
  63. "goods_id_array" => implode(",", $goods_id_array),
  64. "delivery_no" => $delivery_no,
  65. "site_id" => $site_id,
  66. "member_id" => $member_id,
  67. "member_name" => $member_info["nickname"],
  68. "delivery_type" => $delivery_type,
  69. "express_company_id" => $express_company_id,
  70. "express_company_name" => $express_company_name,
  71. "package_name" => $package_name,
  72. "delivery_time" => time(),
  73. "express_company_image" => $express_company_image
  74. );
  75. $result = model("express_delivery_package")->add($data);
  76. }else{
  77. $temp_order_goods_id_arr = explode(",", $info["order_goods_id_array"]);
  78. $temp_goods_id_arr = explode(",", $info["goods_id_array"]);
  79. $order_goods_id_array = implode(",", array_unique(array_merge($temp_order_goods_id_arr, $order_goods_id_array)));
  80. $goods_id_array = implode(",", array_merge($temp_goods_id_arr, $goods_id_array));
  81. $data = array(
  82. "order_goods_id_array" => $order_goods_id_array,
  83. "goods_id_array" => $goods_id_array,
  84. );
  85. $result = model("express_delivery_package")->update($data, $condition);
  86. }
  87. return $this->success($result);
  88. }
  89. }