Разбивка на страницы результатов поиска по шаблону LDAP с использованием построителя ldapquery при весенней загрузкеJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Разбивка на страницы результатов поиска по шаблону LDAP с использованием построителя ldapquery при весенней загрузке

Сообщение Anonymous »

Я хочу разбить результаты поиска по шаблону LDAP на страницы, например, по 20 результатов за раз, так как в нашем ldap много пользователей. Вот мой метод API

Код: Выделить всё

@GetMapping("/v8/searchWithDate")
public ResponseEntity userSearchWithDateFilter
(@RequestHeader Map headers, @RequestParam("startDate") @DateTimeFormat(pattern="yyyy-MM-dd") Date startDate, @RequestParam("endDate") @DateTimeFormat(pattern="yyyy-MM-dd") Date endDate, @RequestParam("managerStatus") String managerStatus,  @RequestParam("accountStatus") String accountStatus)
throws JsonProcessingException {

List usersPropsList = null;
String json = null;

String beginDate;
String finalDate;
Format formatter = new SimpleDateFormat("yyyyMMddHHmmss.SSS'Z'");;

beginDate = formatter.format(startDate);
finalDate = formatter.format(endDate);

usersPropsList = ldapClient.searchUserWithDate(null, beginDate, finalDate, managerStatus, accountStatus);

int count = usersPropsList.size();
json = new ObjectMapper().writeValueAsString(usersPropsList);

if (json == null || json.isEmpty()) {
return new ResponseEntity( "{ \"error\": {\"message\": \" Not Found \",\"content\" :"  + json + " }}", HttpStatus.NOT_FOUND);
}
// return new ResponseEntity( "{ \"data\": " + json + " }", HttpStatus.OK);
return new ResponseEntity( "{ \"data\": " + json + ", \"count\": " + count + " }", HttpStatus.OK);

}
Вот моя функция

Код: Выделить всё

    public List searchUserWithDate(String attribPattern, String startDate, String endDate, String managerStatus, String accountStatus) {

if (attribPattern == null) {
attribPattern = "+"; //else: "memberOf"
}

if (Objects.equals(accountStatus, "1")) {
accountStatus = "FALSE";
} else {
accountStatus = "TRUE";
}

List finalList = new ArrayList() ;

try {
String baseDN = buildDNbyCN().get("ldapAccountDN").toString();
// (baseDN == null) ? "" : baseDN
List foundObj = ldapTemplate.search(
LdapQueryBuilder.query().base((baseDN == null) ? "" : baseDN).attributes("*",attribPattern.toString()).where("objectclass").like("*")
.and(LdapQueryBuilder.query()
.where("createTimestamp").gte(startDate)
.and("createTimestamp").lte(endDate)
.and("pwdLockout").is(accountStatus)
.and("employeeType").is(managerStatus))
,
(AttributesMapper) attrs
-> {
SearchResponse searchResponse = getObjectAttrs(attrs);
Map ss = new HashMap();
// NOTE: If UID is not present it will be assigned with APPUID value (assuming appuid is not null)
String uid = "", appuid="";
if (attrs.get("appuid") != null) {
appuid = attrs.get("appuid").get().toString();
} else {
appuid = "";
}
if (attrs.get("uid") != null) {
uid = attrs.get("uid").get().toString();
}

if (uid != null && uid != "") {
finalList.add(searchResponse);
}
ss = searchResponse.getProperties();
return ss;

}
);
} catch (Exception allExc) {
LOG.error("=> (Error )" + allExc.getMessage());
throw new RuntimeException(allExc);
}

return finalList;
}
Как я могу разбить свои результаты на страницы. Я пробовал решение, приведенное здесь. Возвращайте записи ldap в форме с разбивкой на страницы в Springboot, но мне не удалось заставить его работать.>

Подробнее здесь: https://stackoverflow.com/questions/784 ... spring-boo
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»