129 lines
5.8 KiB
PHP
129 lines
5.8 KiB
PHP
<?php
|
|
/**
|
|
* SAAS应用系统 --- 十年开发经验汇集巨献!
|
|
* ==========================================================
|
|
* Copy right 2020-2050 成都众联思索科技有限公司,保留所有权利。
|
|
* ----------------------------------------------------------
|
|
* 官方网址: https://www.zoomtk.com
|
|
* 这不是自由软件!未经允许不得用于商业目或程序代码摘取及修改。
|
|
* 任何企业和个人不允许对程序代码以任何形式任何目的再发布传播。
|
|
* 唯一发布渠道www.zoomtk.com;非官方渠道统一视为侵权行为。
|
|
* ==========================================================
|
|
*/
|
|
|
|
namespace app\model\express;
|
|
|
|
use addon\electronicsheet\model\ElectronicsheetDelivery;
|
|
use addon\electronicsheet\model\ExpressElectronicsheet;
|
|
use addon\member\model\Member;
|
|
use app\model\BaseModel;
|
|
|
|
|
|
/**
|
|
* 物流配送
|
|
*/
|
|
class ExpressDelivery extends BaseModel
|
|
{
|
|
|
|
/**
|
|
* 物流配送
|
|
*/
|
|
public function delivery($param)
|
|
{
|
|
$order_id = $param["order_id"] ?? 0;//订单id
|
|
$order_goods_id_array = $param["order_goods_id_array"];
|
|
$goods_id_array = $param["goods_id_array"];
|
|
$delivery_type = $param["delivery_type"];//物流方式 1 物流配送 0 无需物流
|
|
$delivery_no = $param["delivery_no"] ?? '';//物流单号
|
|
$member_id = $param["member_id"];
|
|
$site_id = $param["site_id"];
|
|
|
|
$member_model = new Member();
|
|
$member_info_result = $member_model->getMemberInfo([["member_id", "=", $member_id]], "nickname");
|
|
$member_info = $member_info_result["data"];
|
|
|
|
if ($param['type'] == 'manual') {
|
|
$express_company_id = $param["express_company_id"] ?? 0;
|
|
$express_company_name = "";
|
|
|
|
if ($express_company_id > 0) {
|
|
$express_company_info = model("express_company")->getInfo([["company_id", "=", $express_company_id]], "company_name");
|
|
$express_company_name = $express_company_info["company_name"];
|
|
}
|
|
$template_id = 0;
|
|
$template_name = '';
|
|
|
|
//查询物流单号是否已存在,如果存在就合并入已存在的数据(手动发货才会合并)
|
|
$condition = array(
|
|
["site_id", "=", $site_id],
|
|
["delivery_no", "=", $delivery_no],
|
|
["order_id", "=", $order_id],
|
|
["delivery_type", "=", $delivery_type],
|
|
["express_company_id", "=", $express_company_id],
|
|
["member_id", "=", $member_id]
|
|
);
|
|
$info = model("express_delivery_package")->getInfo($condition, "*");
|
|
|
|
if (!empty($info)) {
|
|
$temp_order_goods_id_arr = explode(",", $info["order_goods_id_array"]);
|
|
$temp_goods_id_arr = explode(",", $info["goods_id_array"]);
|
|
|
|
$order_goods_id_array = implode(",", array_unique(array_merge($temp_order_goods_id_arr, $order_goods_id_array)));
|
|
$goods_id_array = implode(",", array_merge($temp_goods_id_arr, $goods_id_array));
|
|
$data = array(
|
|
"order_goods_id_array" => $order_goods_id_array,
|
|
"goods_id_array" => $goods_id_array,
|
|
);
|
|
$result = model("express_delivery_package")->update($data, $condition);
|
|
return $this->success($result);
|
|
}
|
|
} else {
|
|
$delivery_type = 1;
|
|
//获取模板信息
|
|
$template_model = new ExpressElectronicsheet();
|
|
$template_info = $template_model->getExpressElectronicsheetInfo(
|
|
[
|
|
['id', '=', $param['template_id']],
|
|
['site_id', '=', $site_id]
|
|
],
|
|
'template_name,company_id,company_name'
|
|
);
|
|
$template_id = $param['template_id'];
|
|
$template_name = $template_info['data']['template_name'];
|
|
$express_company_id = $template_info['data']["company_id"];
|
|
$express_company_name = $template_info['data']["company_name"];
|
|
}
|
|
|
|
if ($delivery_type > 0) {
|
|
$count = model("express_delivery_package")->getCount([["site_id", "=", $site_id], ["order_id", "=", $order_id], ["delivery_type", "=", $delivery_type]]);
|
|
$num = $count + 1;
|
|
$package_name = "包裹" . $num;
|
|
} else {
|
|
$package_name = "无需物流";
|
|
}
|
|
$express_company_info = model("express_company_template")->getInfo([["company_id", "=", $express_company_id]], "logo");
|
|
$express_company_image = empty($express_company_info) ? '' : $express_company_info["logo"];
|
|
|
|
$data = array(
|
|
"order_id" => $order_id,
|
|
"order_goods_id_array" => implode(",", $order_goods_id_array),
|
|
"goods_id_array" => implode(",", $goods_id_array),
|
|
"delivery_no" => $delivery_no,
|
|
"site_id" => $site_id,
|
|
"member_id" => $member_id,
|
|
"member_name" => $member_info["nickname"] ?? '',
|
|
"delivery_type" => $delivery_type,
|
|
"express_company_id" => $express_company_id,
|
|
"express_company_name" => $express_company_name,
|
|
"package_name" => $package_name,
|
|
"delivery_time" => time(),
|
|
"express_company_image" => $express_company_image,
|
|
"type" => $param['type'],
|
|
"template_id" => $template_id,
|
|
"template_name" => $template_name
|
|
);
|
|
$result = model("express_delivery_package")->add($data);
|
|
return $result;
|
|
}
|
|
|
|
} |