|
|
@@ -197,44 +197,61 @@ class DeliveryQuoteUtil
|
|
|
$orderSn
|
|
|
) {
|
|
|
// 获取店铺扩展信息(免费配送设置)
|
|
|
- $shopExt = ShopExtClass::getByCondition(['shopId' => $shopId], false, null, 'id,hcFreeKm,hcMap');
|
|
|
+ $shopExt = ShopExtClass::getByCondition(['shopId' => $shopId], false, null, 'id,hcFreeKm,hcMap,hsFreeKm,hsAddFee');
|
|
|
if (empty($shopExt)) {
|
|
|
return $sendCost;
|
|
|
}
|
|
|
-
|
|
|
- // 获取花材的免费配送设置
|
|
|
- $hcFreeKm = ($shopExt['hcFreeKm'] ?? 0) * 1000; // 转换为米
|
|
|
- $hcMapString = $shopExt['hcMap'] ?? '';
|
|
|
- $hcMap = [];
|
|
|
-
|
|
|
- if (!empty($hcMapString)) {
|
|
|
- $hcMap = json_decode($hcMapString, true);
|
|
|
- }
|
|
|
-
|
|
|
- // 判断是否免跑腿费
|
|
|
- if ($sendDistance > $hcFreeKm) {
|
|
|
- // 超过免费距离,检查是否满足其他免费条件
|
|
|
- if (count($hcMap) > 0) {
|
|
|
- foreach ($hcMap as $rule) {
|
|
|
- $ruleNum = $rule['num'] ?? 0;
|
|
|
- $rulePrice = $rule['price'] ?? 0;
|
|
|
- $ruleDistance = ($rule['distance'] ?? 0) * 1000;
|
|
|
-
|
|
|
- if ($productCount >= $ruleNum
|
|
|
- && $itemTotalAmount >= $rulePrice
|
|
|
- && $sendDistance <= $ruleDistance
|
|
|
- ) {
|
|
|
- noticeUtil::push(
|
|
|
- "ghsMainId={$ghsMainId}, orderSn={$orderSn}, 免跑腿费,满足条件:"
|
|
|
- . json_encode($rule)
|
|
|
- );
|
|
|
- return 0;
|
|
|
+
|
|
|
+ // XSD_CS- KD_CS-
|
|
|
+ if(strstr($orderSn, 'XSD_CS')){//花材
|
|
|
+ // 获取花材的免费配送设置
|
|
|
+ $hcFreeKm = ($shopExt['hcFreeKm'] ?? 0) * 1000; // 转换为米
|
|
|
+ $hcMapString = $shopExt['hcMap'] ?? '';
|
|
|
+ $hcMap = [];
|
|
|
+
|
|
|
+ if (!empty($hcMapString)) {
|
|
|
+ $hcMap = json_decode($hcMapString, true);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 判断是否免跑腿费
|
|
|
+ if ($sendDistance > $hcFreeKm) {
|
|
|
+ // 超过免费距离,检查是否满足其他免费条件
|
|
|
+ if (count($hcMap) > 0) {
|
|
|
+ foreach ($hcMap as $rule) {
|
|
|
+ $ruleNum = $rule['num'] ?? 0;
|
|
|
+ $rulePrice = $rule['price'] ?? 0;
|
|
|
+ $ruleDistance = ($rule['distance'] ?? 0) * 1000;
|
|
|
+
|
|
|
+ if ($productCount >= $ruleNum
|
|
|
+ && $itemTotalAmount >= $rulePrice
|
|
|
+ && $sendDistance <= $ruleDistance
|
|
|
+ ) {
|
|
|
+ noticeUtil::push(
|
|
|
+ "ghsMainId={$ghsMainId}, orderSn={$orderSn}, 免跑腿费,满足条件:"
|
|
|
+ . json_encode($rule)
|
|
|
+ );
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ // 在免费配送距离内
|
|
|
+ return 0;
|
|
|
}
|
|
|
- } else {
|
|
|
- // 在免费配送距离内
|
|
|
- return 0;
|
|
|
+ }else if(strstr($orderSn, 'KD_CS')){//花束
|
|
|
+ // 获取花材的免费配送设置
|
|
|
+ $hsFreeKm = ($shopExt['hsFreeKm'] ?? 0) * 1000; // 转换为米
|
|
|
+ $hsAddFee = $shopExt['hsAddFee'] ?? 0;
|
|
|
+
|
|
|
+ // 判断是否免跑腿费
|
|
|
+ if ($sendDistance > $hsFreeKm) {
|
|
|
+ return ($sendDistance - $hsFreeKm)/1000 * $hsAddFee;
|
|
|
+ } else {
|
|
|
+ // 在免费配送距离内
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ new \Exception('不支持的订单类型');
|
|
|
}
|
|
|
|
|
|
return $sendCost;
|