У меня есть объекты Proposal [id, name, date] и ProposalVote [id, user, voice].Когда я получу заполненный массив предложений, я хочу показать каждую запись Предложения с общим количеством голосов, которые у него есть.Я звоню в свой сервис и получаю ProposalVote, но теперь мне нужно показать их вместе в моем component.html ...
Какая структура данных лучше всего подходит для этого?
Proposal: 1 TotalProposalVotes: 123
Proposal: 2 TotalProposalVote: 456
Учтите, что следующее, что мне нужно, это добавить итоговые баллы USERProposal (и другие вещи, которые будут добавлены далее)
Proposal: 1 TotalProposalVotes: 123 totalUSERProposalVotes: 3
Proposal: 2 TotalProposalVote: 456 totalUSERProposalVotes: 4
Я думаю, что могу изменить модель предложения, но это выглядит как грязный вариант.HashMap отлично подходит для первого случая, но не для второго.
ПРЕДЛОЖЕНИЯ
import { Moment } from 'moment';
import { IVoteProposal } from 'app/shared/model/vote-proposal.model';
export const enum ProposalType {
STUDY = 'STUDY',
APPROVED = 'APPROVED',
DEVELOPMENT = 'DEVELOPMENT',
PRODUCTION = 'PRODUCTION'
}
export const enum ProposalRole {
USER = 'USER',
ORGANIZER = 'ORGANIZER',
MANAGER = 'MANAGER',
ADMIN = 'ADMIN'
}
export interface IProposal {
id?: number;
creationDate?: Moment;
proposalName?: string;
proposalType?: ProposalType;
proposalRole?: ProposalRole;
releaseDate?: Moment;
isOpen?: boolean;
isAccepted?: boolean;
isPaid?: boolean;
voteProposals?: IVoteProposal[];
proposalUserId?: number;
postId?: number;
}
export class Proposal implements IProposal {
constructor(
public id?: number,
public creationDate?: Moment,
public proposalName?: string,
public proposalType?: ProposalType,
public proposalRole?: ProposalRole,
public releaseDate?: Moment,
public isOpen?: boolean,
public isAccepted?: boolean,
public isPaid?: boolean,
public voteProposals?: IVoteProposal[],
public proposalUserId?: number,
public postId?: number
) {
this.isOpen = this.isOpen || false;
this.isAccepted = this.isAccepted || false;
this.isPaid = this.isPaid || false;
}
}
И ГОЛОСОВАНИЯ:
import { Moment } from 'moment';
export interface IVoteProposal {
id?: number;
creationDate?: Moment;
votePoints?: number;
proposalId?: number;
proposalUserId?: number;
}
export class VoteProposal implements IVoteProposal {
constructor(
public id?: number,
public creationDate?: Moment,
public votePoints?: number,
public proposalId?: number,
public proposalUserId?: number
) {}
}
Спасибо за вашу помощь.Пожалуйста, объясните ваше решение как можно больше.