Дизайн модели Front side Для объединения Java Объект для отображения таблицы спереди angular - PullRequest
0 голосов
/ 21 февраля 2020

У меня проблема с дизайном. У меня есть эти 3 Java классы, перечисленные обратно для объекта Company:

public class Company {
    int id;
    String label;
    String siren;
    List<Contact> contactList;
}

public class Contact {
    int id;
    String name;
    String lastName;
    List<Addresse> addresseList;

}

public class Addresse {
    int id;
    String street;
    String city;
    String country;
    int codePostal;
}

Я хочу отобразить следующую таблицу на лицевой стороне:

|     Label     | SIREN | Contact Name   | Contact lastName  | Street | Postal Code | City | Country  |
-------------------------------------------------------------------------------------------------------
|               |       | Contact1       | xxxxxx            | rue1   | 75111       | Paris | France  |
|      BNP      | 21451 | Contact2       | yyyyyy            | rue2   | 92222       | Nante | France  |
|               |       | Contact2       | yyyyyy            | rue3   | 93222       | Lyon  | France  |
-------------------------------------------------------------------------------------------------------

Итак, как вы можете см для BNP, у него есть список из 2 контактов. и для contact1 у меня есть список адресов, который содержит только один адрес, а для contact2 у меня есть список адресов, который содержит два адреса

Так что это мое решение, которое я принял на лицевой стороне (Angular), но оно не очень чистый:

export  class Company{
    id: number;
    label: string;
    siren: string;
    contactList: Contact[];
    addresseList: Addresse[]; // I added the address list in the company object
}

и в коде, когда я получаю список компаний, я каждый раз выполняю следующую процедуру, которая не является чистой и эффективной (поскольку содержит несколько циклов):

this.companylist.forEach(societe => {
    let addresseListTmp: Adresse[] = [];
    societe.contactList.forEach(contact => {
        contact.addresseList.forEach(addresse => {  // to fill in the contact data in addressTmp
             addresse['name'] = contact.name;
            addresse['lastName'] = contact.lastName;
            addresseListTmp.push(addresse);
        }
    }
    societe.addresseList = addresseListTmp;
}

это мое решение, которое позволяет мне хорошо отображать таблицу, поэтому я хотел найти другое решение, потому что оно не очень эффективно. заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...