mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Update generic device dao
This commit is contained in:
parent
c480512f10
commit
8f8e5e67d4
@ -3408,108 +3408,6 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Device> getDevicesByDeviceIds(PaginationRequest paginationRequest, List<Integer> deviceIds, int tenantId)
|
||||
throws DeviceManagementDAOException {
|
||||
List<Device> devices = new ArrayList<>();
|
||||
if (deviceIds == null || deviceIds.isEmpty()) return devices;
|
||||
|
||||
String deviceIdStringList = deviceIds.stream().map(id -> "?").collect(Collectors.joining(","));
|
||||
boolean isOwnerProvided = false;
|
||||
boolean isDeviceStatusProvided = false;
|
||||
boolean isDeviceNameProvided = false;
|
||||
boolean isDeviceTypeIdProvided = false;
|
||||
|
||||
try {
|
||||
Connection connection = getConnection();
|
||||
String sql = "SELECT e.DEVICE_ID, " +
|
||||
"d.DEVICE_IDENTIFICATION, " +
|
||||
"e.STATUS, " +
|
||||
"e.OWNER, " +
|
||||
"d.NAME AS DEVICE_NAME, " +
|
||||
"e.DEVICE_TYPE, " +
|
||||
"e.OWNERSHIP, " +
|
||||
"e.DATE_OF_LAST_UPDATE " +
|
||||
"FROM DM_DEVICE d " +
|
||||
"INNER JOIN DM_ENROLMENT e " +
|
||||
"ON d.ID = e.DEVICE_ID " +
|
||||
"WHERE d.TENANT_ID = ? " +
|
||||
"AND e.DEVICE_ID IN (" + deviceIdStringList+ ") " +
|
||||
"AND e.STATUS NOT IN ('DELETED', 'REMOVED')";
|
||||
|
||||
if (paginationRequest.getOwner() != null) {
|
||||
sql = sql + " AND e.OWNER LIKE ?";
|
||||
isOwnerProvided = true;
|
||||
}
|
||||
|
||||
if (paginationRequest.getDeviceStatus() != null) {
|
||||
sql = sql + " AND e.STATUS = ?";
|
||||
isDeviceStatusProvided = true;
|
||||
}
|
||||
|
||||
if (paginationRequest.getDeviceName() != null) {
|
||||
sql = sql + " AND d.NAME LIKE ?";
|
||||
isDeviceNameProvided = true;
|
||||
}
|
||||
|
||||
if (paginationRequest.getDeviceTypeId() > 0) {
|
||||
sql = sql + " AND d.DEVICE_TYPE_ID = ?";
|
||||
isDeviceTypeIdProvided = true;
|
||||
}
|
||||
|
||||
sql = sql + " LIMIT ? OFFSET ?";
|
||||
|
||||
try (PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
|
||||
int parameterIdx = 1;
|
||||
preparedStatement.setInt(parameterIdx++, paginationRequest.getDeviceTypeId());
|
||||
preparedStatement.setInt(parameterIdx++, tenantId);
|
||||
|
||||
for (Integer deviceId : deviceIds) {
|
||||
preparedStatement.setInt(parameterIdx++, deviceId);
|
||||
}
|
||||
|
||||
if (isOwnerProvided) {
|
||||
preparedStatement.setString(parameterIdx++, "%" + paginationRequest.getOwner() + "%");
|
||||
}
|
||||
if (isDeviceStatusProvided) {
|
||||
preparedStatement.setString(parameterIdx++, paginationRequest.getDeviceStatus());
|
||||
}
|
||||
if (isDeviceNameProvided) {
|
||||
preparedStatement.setString(parameterIdx++, "%" + paginationRequest.getDeviceName() + "%");
|
||||
}
|
||||
if (isDeviceTypeIdProvided) {
|
||||
preparedStatement.setInt(parameterIdx++, paginationRequest.getDeviceTypeId());
|
||||
}
|
||||
|
||||
preparedStatement.setInt(parameterIdx++, paginationRequest.getRowCount());
|
||||
preparedStatement.setInt(parameterIdx, paginationRequest.getStartIndex());
|
||||
|
||||
try(ResultSet resultSet = preparedStatement.executeQuery()) {
|
||||
Device device;
|
||||
while(resultSet.next()) {
|
||||
device = new Device();
|
||||
device.setId(resultSet.getInt("DEVICE_ID"));
|
||||
device.setDeviceIdentifier(resultSet.getString("DEVICE_IDENTIFICATION"));
|
||||
device.setName(resultSet.getString("DEVICE_NAME"));
|
||||
device.setType(resultSet.getString("DEVICE_TYPE"));
|
||||
EnrolmentInfo enrolmentInfo = new EnrolmentInfo();
|
||||
enrolmentInfo.setStatus(EnrolmentInfo.Status.valueOf(resultSet.getString("STATUS")));
|
||||
enrolmentInfo.setOwner(resultSet.getString("OWNER"));
|
||||
enrolmentInfo.setOwnership(EnrolmentInfo.OwnerShip.valueOf(resultSet.getString("OWNERSHIP")));
|
||||
enrolmentInfo.setDateOfLastUpdate(resultSet.getTimestamp("DATE_OF_LAST_UPDATE").getTime());
|
||||
device.setEnrolmentInfo(enrolmentInfo);
|
||||
devices.add(device);
|
||||
}
|
||||
}
|
||||
}
|
||||
return devices;
|
||||
} catch (SQLException e) {
|
||||
String msg = "Error occurred while retrieving devices for device ids in: " + deviceIds;
|
||||
log.error(msg, e);
|
||||
throw new DeviceManagementDAOException(msg, e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDeviceCountByDeviceIds(PaginationRequest paginationRequest, List<Integer> deviceIds, int tenantId)
|
||||
throws DeviceManagementDAOException {
|
||||
|
||||
@ -1870,6 +1870,7 @@ public class GenericDeviceDAOImpl extends AbstractDeviceDAOImpl {
|
||||
boolean isDeviceStatusProvided = false;
|
||||
boolean isDeviceNameProvided = false;
|
||||
boolean isDeviceTypeIdProvided = false;
|
||||
|
||||
try {
|
||||
Connection connection = getConnection();
|
||||
String sql = "SELECT e.DEVICE_ID, " +
|
||||
@ -1882,32 +1883,41 @@ public class GenericDeviceDAOImpl extends AbstractDeviceDAOImpl {
|
||||
"e.DATE_OF_LAST_UPDATE " +
|
||||
"FROM DM_DEVICE d " +
|
||||
"INNER JOIN DM_ENROLMENT e " +
|
||||
"ON d.ID = e.DEVICE_ID " +
|
||||
"WHERE d.TENANT_ID = ? " +
|
||||
"AND e.DEVICE_ID IN (" + deviceIdStringList+ ") " +
|
||||
"AND e.STATUS NOT IN ('DELETED', 'REMOVED')";
|
||||
|
||||
if (paginationRequest.getOwner() != null) {
|
||||
sql = sql + " AND e.OWNER LIKE ?";
|
||||
isOwnerProvided = true;
|
||||
}
|
||||
|
||||
if (paginationRequest.getDeviceStatus() != null) {
|
||||
sql = sql + " AND e.STATUS = ?";
|
||||
isDeviceStatusProvided = true;
|
||||
}
|
||||
|
||||
if (paginationRequest.getDeviceName() != null) {
|
||||
sql = sql + " AND d.NAME LIKE ?";
|
||||
isDeviceNameProvided = true;
|
||||
}
|
||||
|
||||
if (paginationRequest.getDeviceTypeId() > 0) {
|
||||
sql = sql + " AND d.DEVICE_TYPE_ID = ?";
|
||||
isDeviceTypeIdProvided = true;
|
||||
}
|
||||
|
||||
sql = sql + " LIMIT ? OFFSET ?";
|
||||
|
||||
try (PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
|
||||
int parameterIdx = 1;
|
||||
preparedStatement.setInt(parameterIdx++, tenantId);
|
||||
|
||||
for (Integer deviceId : deviceIds) {
|
||||
preparedStatement.setInt(parameterIdx++, deviceId);
|
||||
}
|
||||
|
||||
if (isOwnerProvided) {
|
||||
preparedStatement.setString(parameterIdx++, "%" + paginationRequest.getOwner() + "%");
|
||||
}
|
||||
@ -1923,6 +1933,7 @@ public class GenericDeviceDAOImpl extends AbstractDeviceDAOImpl {
|
||||
|
||||
preparedStatement.setInt(parameterIdx++, paginationRequest.getRowCount());
|
||||
preparedStatement.setInt(parameterIdx, paginationRequest.getStartIndex());
|
||||
|
||||
try(ResultSet resultSet = preparedStatement.executeQuery()) {
|
||||
Device device;
|
||||
while(resultSet.next()) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user