全部
常见问题
产品动态
精选推荐
功能建议

分析中 已回复 待规划 {{opt.name}}
分析中 已回复 待规划
【修复】PRO商品批量修改运费模板报pid查询表达式错误

管理 管理 编辑 删除

问题现象:商品列表按分类筛选后,选择“所有页”批量修改运费模板,提交后报错:查询表达式错误:'pid'

原因定位:批量操作在根据筛选条件查询商品 ID 时,分类子级查询条件写成了 getColumn(['pid', 'in', $where['cate_id']], 'id')。当前 Dao 的 getColumn 需要标准 where 数组或走搜索器,这种写法会被解析成错误查询表达式,导致 pid 报错。

修复思路:复用商品分类服务中已有的分类缓存展开方法 getChildIdsFromCache,先把当前分类和子分类 ID 合并,再传给商品列表查询。

行数以当前本地源码为准,不同版本可能有少量偏移。

1. 修复批量操作按分类筛选商品 ID 的查询条件

文件: app/services/product/product/StoreProductBatchProcessServices.php

方法: getIdsByWhere(array $where): array

行数: 61-83

    /** * 根据搜索条件查询商品ID * @param array $where 搜索条件 * @return array */
    public function getIdsByWhere(array $where): array
    {
        $ids = [];
        if (isset($where['cate_id']) && $where['cate_id']) {
            /** @var StoreProductCategoryServices $storeCategory */
            $storeCategory = app()->make(StoreProductCategoryServices::class);
            $cateId = is_array($where['cate_id']) ? $where['cate_id'] : [$where['cate_id']];
            $cateId = array_values(array_unique(array_filter($cateId)));
            // 全选批量操作按当前分类及其子分类筛选,避免错误的 where 数组触发 pid 查询表达式异常。
            $where['cate_id'] = array_values(array_unique(array_merge($cateId, $storeCategory->getChildIdsFromCache($cateId))));
        }
        /** @var StoreProductServices $productService */
        $productService = app()->make(StoreProductServices::class);
        $dataInfo = $productService->getProductListByWhere($where, 'id');
        if ($dataInfo) {
            $ids = array_unique(array_column($dataInfo, 'id'));
        }
        return $ids;
    }

验证方式:

1. 后台进入商品列表,选择一个商品分类筛选。

2. 勾选“所有页”,批量修改运费模板,选择运费模板后提交。

3. 不再出现 查询表达式错误:'pid',任务正常加入批量队列。

4. 已执行语法检查:php -l app/services/product/product/StoreProductBatchProcessServices.php

{{voteData.voteSum}} 人已参与
支持
反对
请登录后查看

liusll 最后编辑于2026-06-10 14:56:02

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

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

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}} 【已收集】
{{item.floor}}# 沙发 板凳 地板 {{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}}
15
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

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

微信登录/注册

切换手机号登录

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

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服
CRMEB咨询热线 400-8888-794

扫码领取产品资料

功能清单
思维导图
安装教程
CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服