diff --git a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java index 8b4b85d55..5ebe1bcf3 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java +++ b/mhd-user-center/src/main/java/com/mhd/user/application/service/UserShipperApplicationService.java @@ -138,7 +138,10 @@ public class UserShipperApplicationService { } UserPo userPo = loginUser.getUserPo(); - + + // 设置 LEFT JOIN 用的组织ID(始终是当前登录用户组织,不参与 WHERE 过滤) + userShipperDO.setPushQueryOrgId(userPo.getOrganizationId()); + // 先保存前端传递的 organizationId(如果存在) Long frontendOrganizationId = userShipperDO.getOrganizationId(); diff --git a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java index e9f0b6386..ce40f7353 100644 --- a/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java +++ b/mhd-user-center/src/main/java/com/mhd/user/domain/userAggregate/repository/todo/UserShipperDO.java @@ -304,6 +304,9 @@ public class UserShipperDO extends UserDO { @ApiModelProperty("更新时间止") private String updateTimeTo; + /** LEFT JOIN business_partner_push_log 用,存当前登录用户组织ID,不参与 WHERE 过滤 */ + private Long pushQueryOrgId; + @ApiModelProperty("推送状态") private Integer pushStatus; diff --git a/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml b/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml index cbde44994..eb04fdb17 100644 --- a/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml +++ b/mhd-user-center/src/main/resources/mapper/UserShipperMapper.xml @@ -169,7 +169,7 @@ pl.push_by_name FROM "USER" a LEFT JOIN user_shipper b ON a.user_id = b.user_id - LEFT JOIN business_partner_push_log pl ON pl.shipper_id = b.shipper_id AND pl.organization_id = #{organizationId} + LEFT JOIN business_partner_push_log pl ON pl.shipper_id = b.shipper_id AND pl.organization_id = #{pushQueryOrgId} left join (select user_id, LISTAGG(DISTINCT r.role_name, '&') WITHIN GROUP(ORDER BY r.role_name) AS roleName from role r left join user_role ur on r.role_id = ur.role_id and ur.del_flag = 1