diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml index e41797403a..77bbdace68 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml @@ -31,14 +31,25 @@ b.sort, UNIX_TIMESTAMP(ub.updated_time) AS updatedTime FROM resi_user_badge ub - LEFT JOIN badge b ON b.ID = ub.BADGE_ID + LEFT JOIN + (SELECT * FROM + ( + SELECT * FROM badge + WHERE CUSTOMER_ID = #{customerId} AND DEL_FLAG = '0' AND BADGE_STATUS = 'online' + UNION ALL + SELECT * FROM badge a + WHERE CUSTOMER_ID = 'default' AND a.DEL_FLAG = '0' + AND NOT EXISTS + ( SELECT ID FROM badge b WHERE CUSTOMER_ID = #{customerId} AND a.ID = b.ID)) t + ORDER BY + CREATED_TIME DESC) b ON b.ID = ub.BADGE_ID WHERE ub.DEL_FLAG = '0' - AND b.DEL_FLAG = 0 - AND ub.CERTIFICATION_AUTID_STATUS = 'approved' - AND b.BADGE_STATUS = 'online' - AND ub.IS_OPENED = 1 - AND ub.USER_ID = #{userId} - ORDER BY ub.UPDATED_TIME DESC + AND b.DEL_FLAG = 0 + AND ub.CERTIFICATION_AUTID_STATUS = 'approved' + AND b.BADGE_STATUS = 'online' + AND ub.IS_OPENED = 1 + AND ub.USER_ID = #{userId} + ORDER BY ub.UPDATED_TIME DESC