feat: add classement match system
This commit is contained in:
@@ -45,6 +45,12 @@ public class CategoryModel {
|
||||
|
||||
String liceName = "1";
|
||||
|
||||
@Column(nullable = false, columnDefinition = "boolean default false")
|
||||
boolean treeAreClassement = false;
|
||||
|
||||
@Column(nullable = false, columnDefinition = "boolean default false")
|
||||
boolean fullClassement = false;
|
||||
|
||||
@ManyToOne(fetch = FetchType.EAGER)
|
||||
@JoinColumn(name = "id_preset", referencedColumnName = "id")
|
||||
CatPresetModel preset;
|
||||
|
||||
@@ -109,6 +109,22 @@ public class MatchModel {
|
||||
return sum;
|
||||
}
|
||||
|
||||
public CombModel getC1() {
|
||||
if (this.c1_id != null)
|
||||
return this.c1_id;
|
||||
if (this.c1_guest != null)
|
||||
return this.c1_guest;
|
||||
return null;
|
||||
}
|
||||
|
||||
public CombModel getC2() {
|
||||
if (this.c2_id != null)
|
||||
return this.c2_id;
|
||||
if (this.c2_guest != null)
|
||||
return this.c2_guest;
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isC1(Object comb) {
|
||||
if (this.c1_guest != null && this.c1_guest.isInTeam(comb))
|
||||
return true;
|
||||
|
||||
@@ -40,6 +40,14 @@ public class TreeModel {
|
||||
@JoinColumn(referencedColumnName = "id")
|
||||
TreeModel right;
|
||||
|
||||
public TreeModel(Long category, Integer level, MatchModel match) {
|
||||
this.category = category;
|
||||
this.level = level;
|
||||
this.match = match;
|
||||
this.left = null;
|
||||
this.right = null;
|
||||
}
|
||||
|
||||
public List<TreeModel> flat() {
|
||||
List<TreeModel> out = new ArrayList<>();
|
||||
this.flat(out);
|
||||
@@ -55,4 +63,44 @@ public class TreeModel {
|
||||
if (this.left != null)
|
||||
this.left.flat(out);
|
||||
}
|
||||
|
||||
public int death() {
|
||||
int dg = 0;
|
||||
int dd = 0;
|
||||
|
||||
if (this.right != null)
|
||||
dg = this.right.death();
|
||||
|
||||
if (this.left != null)
|
||||
dg = this.left.death();
|
||||
|
||||
return 1 + Math.max(dg, dd);
|
||||
}
|
||||
|
||||
public int getMaxChildrenAtDepth(int death, int current) {
|
||||
if (current == death)
|
||||
return 1;
|
||||
|
||||
int tmp = 0;
|
||||
if (this.right != null)
|
||||
tmp += this.right.getMaxChildrenAtDepth(death, current + 1);
|
||||
|
||||
if (this.left != null)
|
||||
tmp += this.left.getMaxChildrenAtDepth(death, current + 1);
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
public void getChildrenAtDepth (int death, int current, List<TreeModel> out) {
|
||||
if (current == death) {
|
||||
out.add(this);
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.right != null)
|
||||
this.right.getChildrenAtDepth(death, current + 1, out);
|
||||
|
||||
if (this.left != null)
|
||||
this.left.getChildrenAtDepth(death, current + 1, out);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,9 @@ public class MatchRepository implements PanacheRepositoryBase<MatchModel, Long>
|
||||
}
|
||||
|
||||
public Uni<Void> create(List<MatchModel> matchModel) {
|
||||
if (matchModel.isEmpty())
|
||||
return Uni.createFrom().voidItem();
|
||||
|
||||
matchModel.forEach(model -> model.setSystem(CompetitionSystem.INTERNAL));
|
||||
return Panache.withTransaction(() -> this.persist(matchModel)
|
||||
.call(__ -> this.flush())
|
||||
|
||||
Reference in New Issue
Block a user