SellingManager.java 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package org.django.acquabooks;
  2. import org.apache.commons.lang3.StringUtils;
  3. import org.django.acquabooks.io.Console;
  4. import org.django.acquabooks.pojos.Libro;
  5. import org.slf4j.Logger;
  6. import org.slf4j.LoggerFactory;
  7. import java.util.Scanner;
  8. public class SellingManager {
  9. private static final Logger logger = LoggerFactory.getLogger(CommandLineLauncher.class);
  10. public static String STOP_READING_SEQUENCE = "q";
  11. public static int DEFAULT_OP_AMOUNT = 1;
  12. public static String COMMAND = ":";
  13. private ElasticRESTClient elclient;
  14. public SellingManager(){
  15. elclient = ElasticRESTClient.getInstance("http","localhost", "9200");
  16. }
  17. public SellingManager(ElasticRESTClient client){
  18. elclient = client;
  19. }
  20. public void run(){
  21. String in = null;
  22. Console.welcome(System.out,"ACQUATORPIDA BOOK SHOCKS - SPARA VENDERE");
  23. Scanner sc = new Scanner(System.in);
  24. int opAmount = DEFAULT_OP_AMOUNT;
  25. while (sc.hasNextLine()) {
  26. in = sc.nextLine();
  27. if(STOP_READING_SEQUENCE.equals(in)){
  28. return;
  29. }
  30. if(StringUtils.isEmpty(in)){
  31. continue;
  32. }
  33. if(in.startsWith(COMMAND)){
  34. String[] parts = in.split(COMMAND);
  35. try {
  36. opAmount = Integer.parseInt(parts[1]);
  37. }catch(Throwable e){
  38. Console.genericErr("NUMERO NON VALIDO");
  39. opAmount = DEFAULT_OP_AMOUNT;
  40. }
  41. continue;
  42. }
  43. try {
  44. Libro l = elclient.getDetail(in);
  45. if(l == null){
  46. Console.genericWarn("LIBRO NON TROVATO: " + in);
  47. opAmount = DEFAULT_OP_AMOUNT;
  48. continue;
  49. }
  50. l.incrementaVenduto(opAmount);
  51. boolean r = elclient.index(l, opAmount != 0);
  52. if(!r){
  53. Console.genericErr("Errore in aggiornamento");
  54. }else{
  55. Console.ok(System.out);
  56. Console.detail(l, System.out);
  57. }
  58. opAmount = DEFAULT_OP_AMOUNT;
  59. } catch(Exception e){
  60. logger.error(e.getMessage());
  61. e.printStackTrace();
  62. }
  63. }
  64. }
  65. public void runDetail(){
  66. String in = null;
  67. Console.welcome(System.out,"ACQUATORBIDA BOOK CHOC - SPARA PER IL DETTAGLIO");
  68. Scanner sc = new Scanner(System.in);
  69. int lineNumber = 0;
  70. while (sc.hasNextLine()) {
  71. in = sc.nextLine();
  72. if(STOP_READING_SEQUENCE.equals(in)){
  73. return;
  74. }
  75. if(StringUtils.isEmpty(in)){
  76. continue;
  77. }
  78. try {
  79. Libro l = elclient.getDetail(in);
  80. if(l == null){
  81. Console.genericWarn("LIBRO NON TROVATO: " + in);
  82. }else{
  83. Console.ok(System.out);
  84. System.out.println(l.toString());
  85. }
  86. } catch(Exception e){
  87. e.printStackTrace();
  88. }
  89. }
  90. }
  91. }