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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user