Initial commit

This commit is contained in:
Kayashov.SM
2025-03-12 17:54:16 +04:00
commit b6d8a3cebd
254 changed files with 29963 additions and 0 deletions

View File

@@ -0,0 +1,179 @@
package ru.kayashov.bar.schedule;
import javax.transaction.Transactional;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
import ru.kayashov.bar.model.api.translate.Translate;
import ru.kayashov.bar.model.entity.CocktailEntity;
import ru.kayashov.bar.model.entity.IngredientEntity;
import ru.kayashov.bar.model.entity.ReceiptEntity;
import ru.kayashov.bar.model.entity.TypeEntity;
import ru.kayashov.bar.model.entity.Unit;
import ru.kayashov.bar.model.entity.UnitRepository;
import ru.kayashov.bar.repository.CocktailRepository;
import ru.kayashov.bar.repository.IngredientRepository;
import ru.kayashov.bar.repository.ReceiptRepository;
import ru.kayashov.bar.repository.TypeRepository;
import ru.kayashov.bar.service.integration.translate.TranslateService;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import static ru.kayashov.bar.service.integration.translate.TranslateService.translate;
@Slf4j
@Component
@RequiredArgsConstructor
public class Repairer {
private final IngredientRepository ingredientRepository;
private final TypeRepository tagRepository;
private final CocktailRepository cocktailRepository;
private final ReceiptRepository receiptRepository;
private final UnitRepository unitRepository;
// @Transactional
// @EventListener(ContextRefreshedEvent.class)
public void repair() {
unitRepository.findAll().stream()
.peek(u -> u.setName(TranslateService.softTranslate(u.getName())))
.forEach(unitRepository::save);
log.info("repaired");
}
private Float convertValue(String value) {
if (value.contains("-") || value.contains("/")) {
float f;
if (value.contains("-")) {
f = average(value);
} else if (value.contains("/")) {
f = drob(value);
} else {
f = Float.parseFloat(value);
}
return f;
}
try {
return Float.parseFloat(value);
} catch (NumberFormatException e) {
return null;
}
}
// @Transactional
// @EventListener(ContextRefreshedEvent.class)
public void repairAllowed() {
List<CocktailEntity> cocktailEntities = cocktailRepository.findAll();
for (CocktailEntity cocktail : cocktailEntities) {
List<ReceiptEntity> receipts = cocktail.getReceipt();
// if(receipts.stream().allMatch(r -> r.getIngredient().getIsHave())) {
// cocktail.setIsAllowed(true);
// } else {
// cocktail.setIsAllowed(false);
// }
cocktailRepository.save(cocktail);
}
log.info("Cocktails have been repaired");
}
@Transactional
// @EventListener(ContextRefreshedEvent.class)
public void repairReceipts() {
// List<ReceiptEntity> receipts = receiptRepository.findAll()
// .stream()
// .filter(r -> r.getMeasureText() != null && r.getMeasure() == null)
// .filter(r -> r.getMeasureText().contains("Slice"))
// .filter(r -> r.getMeasureText().split(" ").length == 2)
// .toList();
// for (ReceiptEntity receipt : receipts) {
// String[] split = receipt.getMeasureText().split(" ");
// if (split[1].equalsIgnoreCase("Slice")) {
// receipt.setUnitText(split[1]);
// } else {
// continue;
// }
// log.info("convert {} - {}", receipt.getId(), receipt.getMeasureText());
//
// String measure = split[0];
// Float f;
// if (measure.contains("-")) {
// f = average(measure);
// } else if (measure.contains("/")) {
// f = drob(measure);
// } else {
// f = Float.parseFloat(measure);
// }
//
// receipt.setMeasure(f == 0 ? null : f);
// receiptRepository.save(receipt);
// }
log.info("repaired");
}
private Float average(String s) {
String[] split = s.split("-");
float sum = 0f;
for (String str : split) {
if (str.contains("/")) {
sum += drob(str);
} else {
sum += Float.parseFloat(str);
}
}
return sum / split.length;
}
private Float drob(String s) {
String[] split = s.split("/");
return Float.parseFloat(split[0]) / Float.parseFloat(split[1]);
}
// @Transactional
// @EventListener(ContextRefreshedEvent.class)
public void repairEnTag() {
List<TypeEntity> tagEntities = tagRepository.findAll()
.stream()
.filter(t -> t.getName() == null)
.toList();
for (TypeEntity tagEntity : tagEntities) {
tagEntity.setName(translate(tagEntity.getEnName()));
tagRepository.save(tagEntity);
log.info("tag {} saved", tagEntity.getName());
}
log.info("repaired");
}
public void repairEnIngredients() {
List<IngredientEntity> ingredients = ingredientRepository.findAll().stream()
.filter(i -> i.getName() == null)
// .filter(i -> i.getDescription() == null && i.getEnDescription() != null && !i.getEnDescription().isEmpty())
.toList();
for (IngredientEntity i : ingredients) {
boolean needSave = false;
if (i.getName() == null) {
String s = translate(i.getEnName());
i.setName(s);
needSave = true;
}
if (i.getDescription() == null) {
// String s = translate(i.getEnDescription());
// i.setDescription(s);
needSave = true;
}
if (needSave) {
ingredientRepository.save(i);
log.info("Ingredient {} saved", i.getName());
}
}
}
}