全部
常见问题
产品动态
精选推荐

桌码下单提交订单数据有误

管理 管理 编辑 删除

问题说明:移动端桌码下单提交数据加载有误

修改文件:app\services\order\StoreOrderServices

修改方法:checkShipping()

public function checkShipping($uid, $cartIds, $new)
    {
        if ($new) {
            $cartIds = explode(',', $cartIds);
            $cartInfo = [];
            $redis = CacheService::redisHandler();
            foreach ($cartIds as $key) {
                $info = $redis->get($key);
                if ($info) {
                    $cartInfo[] = $info;
                }
            }
        } else {
            /** @var StoreCartServices $cartServices */
            $cartServices = app()->make(StoreCartServices::class);
            $cartInfo = $cartServices->getCartList(['uid' => $uid, 'status' => 1, 'id' => $cartIds], 0, 0, ['productInfo', 'attrInfo']);
        }
        if (!$cartInfo) {
            throw new ValidateException('获取购物车信息失败');
        }
        $arr = [];
        $store_id = [];
        $type = 0;
        //delivery_type :1、快递,2、到店核销,3、门店配送
		$productType = 0;
        foreach ($cartInfo as $item) {
			$productInfo = $item['productInfo'] ?? [];
			if (!$productInfo) continue;
			$productType = $productInfo['product_type'] ?? 0;
			if ($productType == 6) {//预约商品
				//预约类型1:到店服务+上门服务,2:到店服务,3:上门服务
				$reservation_type = (string)($productInfo['reservation_type'] ?? '1');
				$reservationTypeArr = $reservation_type == 1 ? ['2', '3'] : [$reservation_type];
				if (isset($item['reservation_type']) && in_array($item['reservation_type'], $reservationTypeArr)) {//选择服务方式
					$delivery_type = [(string)$item['reservation_type']];
				} else {
					$delivery_type =[];
				}
			} else {
                if($item['type'] == 10) {
                    $arr = [2];
                    $type = 10;
                }
				$delivery_type = is_string($productInfo['delivery_type']) ? explode(',', $productInfo['delivery_type']) : $productInfo['delivery_type'];
				if (in_array(1, $delivery_type)) {//支持平台配送 验证平台该商品
					if (isset($productInfo['type']) && $productInfo['type'] == 1 && isset($productInfo['pid']) && $productInfo['pid']) {
						/** @var StoreProductServices $productServices */
						$productServices = app()->make(StoreProductServices::class);
						$platInfo = $productServices->getCacheProductInfo((int)$productInfo['pid']);
						if (!$platInfo || $platInfo['stock'] <= 0) {
							unset($delivery_type[array_search('1', $delivery_type)]);
						}
					}
				}
			}
			//适用门店:0:仅平台1:所有2:部分
			$applicable_type = $item['productInfo']['applicable_type'] ?? 1;
			if ($applicable_type == 0) {//仅平台适用 排除门店
				$delivery_type = array_diff($delivery_type, [2, 3]);
			}
            $arr = array_unique(array_merge($arr, $delivery_type));
            if (isset($item['productInfo']['type']) && isset($item['productInfo']['relation_id']) && $item['productInfo']['type'] == 1 && $item['productInfo']['relation_id']) {
                $store_id[] = $item['productInfo']['relation_id'];
            }
        }
        $count = count($arr);
        if (!$count) {
            $arr = [1];
        }
		//平台配送
		if (in_array(1, $arr)) {
			$shopOperationType = sys_config('shop_operation_type', 1);
			if ($shopOperationType == 3) {//单店模式,不支持平台配送
				unset($arr[array_search(1, $arr)]);
			}
		}
		/** @var SystemStoreServices $SystemStoreServe */
		$SystemStoreServe = app()->make(SystemStoreServices::class);
        // 门店总开关
        if (!sys_config('store_func_status', 1)) {
            if (in_array(2, $arr)) unset($arr[array_search(2, $arr)]);
            if (in_array(3, $arr)) unset($arr[array_search(3, $arr)]);
        } else {
			if (in_array(2, $arr)) {//存在门店核销方式
				if (sys_config('store_self_mention', 1)) {//门店核销开启
					//判断有没有满足核销的店铺
					if ($productType != 6 && $type != 10) {//预约商品不限制这个条件
						if (!$SystemStoreServe->count(['id' => $store_id, 'delivery_type' => [1, 3], 'is_show' => 1, 'is_del' => 0])) {
							unset($arr[array_search(2, $arr)]);
						}
					}
				} else {
					unset($arr[array_search(2, $arr)]);
				}
			}
			if (in_array(3, $arr) && $productType != 6) {
				//判断有没有满足配送的店铺
				if (!$SystemStoreServe->count(['id' => $store_id, 'delivery_type' => [1, 2], 'is_show' => 1, 'is_del' => 0])) {
					unset($arr[array_search(3, $arr)]);
				}
			}
		}
        $arr = array_merge(array_unique($arr));
        return ['type' => $arr];
    }



请登录后查看

全 最后编辑于2025-06-13 16:00:08

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打赏
已打赏¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打赏
已打赏¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
打赏
已打赏¥{{reward_price}}
73
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
{{item.label}} 加精
{{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定
打赏金额
当前余额:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
请输入 0.1-{{reward_max_price}} 范围内的数值
打赏成功
¥{{price}}
完成 确认打赏

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服