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<UserSyncDTO> getOaUsers()
|
{
|
try
|
{
|
log.info("开始从 SQL Server 查询 OA 用户数据...");
|
|
// 调用 Mapper 查询 SQL Server 数据
|
// @DataSource 注解会自动切换数据源
|
List<UserSyncDTO> 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);
|
}
|
}
|
}
|