fix: 修复平台管理员(mer_id=0)无法查看商户订单数据的问题

根因:商户订单相关Service方法中使用systemAdmin.getMerId()做数据过滤,
平台管理员mer_id=0导致SQL查询条件o.mer_id=0匹配不到任何商户订单。

修复内容(共19处):
- OrderServiceImpl.java: 订单列表、详情、发货、物流、核销、发货单修改等
  10处merId过滤增加平台管理员判断(mer_id>0时才过滤)
- RefundOrderServiceImpl.java: 退款列表、详情、备注、审核、收货、拒绝收货
  6处merId过滤增加平台管理员判断
- ManageOrderServiceImpl.java: 订单详情列表1处
- OrderMapper.xml: getMerchantAdminPage查询中mer_id改为条件判断
- RefundOrderMapper.xml: getMerchantAdminPage查询中mer_id改为条件判断

修复逻辑:当systemAdmin.getMerId()==0(平台管理员)时跳过商户ID过滤,
允许查看所有商户的订单数据;当mer_id>0(商户管理员)时保持原有过滤逻辑。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
AriadenCaseblg
2026-04-10 12:03:38 +08:00
parent a9d56d595a
commit 0e6519b176
5 changed files with 46 additions and 22 deletions

View File

@@ -172,7 +172,7 @@ public class ManageOrderServiceImpl implements ManageOrderService {
public List<OrderDetailInfoResponse> getDetailList(String orderNo) {
SystemAdmin systemAdmin = SecurityUtil.getLoginUserVo().getUser();
Order order = orderService.getByOrderNo(orderNo);
if (!order.getMerId().equals(systemAdmin.getMerId())) {
if (systemAdmin.getMerId() > 0 && !order.getMerId().equals(systemAdmin.getMerId())) {
throw new CrmebException(OrderResultCode.ORDER_NOT_EXIST);
}
List<OrderDetail> orderDetailList = orderService.getDetailList(orderNo, systemAdmin);