package com.ruoyi.system.service.impl; import com.ruoyi.common.annotation.DataSource; import com.ruoyi.common.enums.DataSourceType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.system.domain.UserSyncDTO; import com.ruoyi.system.mapper.UserSyncMapper; import com.ruoyi.system.service.IUserSyncDataService; import java.util.List; /** * SQL Server 用户数据查询服务实现 * * 职责:专门负责从 SQL Server 查询用户数据 * * 数据流向:SQL Server → 返回 DTO 列表 * * @author ruoyi * @date 2025-10-18 */ @Service @DataSource(DataSourceType.SQLSERVER) public class UserSyncDataServiceImpl implements IUserSyncDataService { private static final Logger log = LoggerFactory.getLogger(UserSyncDataServiceImpl.class); @Autowired private UserSyncMapper userSyncMapper; /** * 从 SQL Server 查询 OA 用户数据 * * 注意:UserSyncMapper 上有 @DataSource(DataSourceType.SQLSERVER) 注解 * 此方法会自动切换到 SQL Server 数据源执行查询 * * @return OA 用户列表 */ @Override public List getOaUsers() { try { log.info("开始从 SQL Server 查询 OA 用户数据..."); // 调用 Mapper 查询 SQL Server 数据 // @DataSource 注解会自动切换数据源 List oaUsers = userSyncMapper.selectOaUsers(); if (oaUsers == null || oaUsers.isEmpty()) { log.warn("未从 SQL Server 查询到 OA 用户数据"); return oaUsers; } log.info("从 SQL Server 查询到 {} 条 OA 用户数据", oaUsers.size()); return oaUsers; } catch (Exception e) { log.error("从 SQL Server 查询 OA 用户数据失败", e); throw new RuntimeException("查询 SQL Server 用户数据失败: " + e.getMessage(), e); } } }