Browse Source

Много изменений...

Alec 4 years ago
parent
commit
28fc5d0b22

+ 124 - 0
.idea/uiDesigner.xml

@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Palette2">
+    <group name="Swing">
+      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
+      </item>
+      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
+        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
+        <initial-values>
+          <property name="text" value="Button" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="RadioButton" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="CheckBox" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
+        <initial-values>
+          <property name="text" value="Label" />
+        </initial-values>
+      </item>
+      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+          <preferred-size width="150" height="-1" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+          <preferred-size width="150" height="50" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+          <preferred-size width="200" height="200" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+      </item>
+      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
+      </item>
+      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
+          <preferred-size width="-1" height="20" />
+        </default-constraints>
+      </item>
+      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
+        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
+      </item>
+      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
+        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
+      </item>
+    </group>
+  </component>
+</project>

BIN
out/production/ExampleJavaList/com/company/Bank.class


BIN
out/production/ExampleJavaList/com/company/Bill.class


BIN
out/production/ExampleJavaList/com/company/Client$1.class


BIN
out/production/ExampleJavaList/com/company/Client.class


BIN
out/production/ExampleJavaList/com/company/Main.class


BIN
out/production/ExampleJavaList/com/company/UserMessage.class


BIN
out/production/ExampleJavaList/com/company/UserMessageType.class


+ 157 - 13
src/com/company/Bank.java

@@ -1,9 +1,16 @@
 package com.company;
 
+import java.io.*;
+import java.util.ArrayList;
+
 /**
  * Класс реализующий "банк"
  */
 public class Bank {
+    /**
+     * Список клиентов банка
+     */
+    private static ArrayList<User> users = new ArrayList<>();
     /**
      * Голова списка счетов банка
      */
@@ -19,6 +26,132 @@ public class Bank {
      */
     private static String name;
 
+    /**
+     * Сохранить в файл список всех зарегистрированных клиентов
+     */
+    public static void saveClients() {
+        try {
+            FileOutputStream fos = new FileOutputStream("clients.bin");
+
+            ObjectOutputStream objectOutputStream = new ObjectOutputStream(fos);
+
+            objectOutputStream.writeObject(users);
+            objectOutputStream.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * Загрузить из файла список всех зарегистрированных клиентов
+     */
+    public static void loadClients() {
+
+        try {
+            FileInputStream fos = new FileInputStream("clients.bin");
+
+            ObjectInputStream objectOutputStream = new ObjectInputStream(fos);
+
+            Object o = objectOutputStream.readObject();
+
+            ArrayList<?> array;
+            if (o instanceof ArrayList<?>) {
+                array = (ArrayList<?>) o;
+
+                for (Object object : array) {
+                    if (object instanceof User) {
+                        User user = (User) object;
+                        users.add(user);
+                    }
+                }
+            }
+
+            for (User u : users) {
+                System.out.println(u.getUuid());
+            }
+
+            objectOutputStream.close();
+        } catch (IOException | ClassNotFoundException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * Сохранить список всех счетов в файл
+     */
+    public static void saveBills() {
+
+        // Пересчитать количество счетов
+        count = 0;
+
+        Bill current = head;
+        while (current != null) {
+            count++;
+            current = current.next;
+        }
+
+        current = head;
+
+        Bill[] bills = new Bill[count];
+
+        count = 0;
+
+        while (current != null) {
+            bills[count++] = current;
+            current = current.next;
+        }
+
+        try {
+            FileOutputStream fos = new FileOutputStream("bills.bin");
+
+            ObjectOutputStream objectOutputStream = new ObjectOutputStream(fos);
+
+            objectOutputStream.writeObject(bills);
+            objectOutputStream.close();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * Загрузить из файла список всех счетов
+     */
+    public static void loadBills() {
+        try {
+            FileInputStream fos = new FileInputStream("bills.bin");
+
+            ObjectInputStream objectInputStream = new ObjectInputStream(fos);
+
+            Object o = objectInputStream.readObject();
+
+            if (o instanceof Bill[]) {
+                Bill[] bills = (Bill[]) o;
+
+                Bill current = head;
+                count = 0;
+
+                for (Object object : bills) {
+                    if (object instanceof Bill) {
+                        Bill bill = (Bill) object;
+
+                        if (count == 0) {
+                            head = bill;
+                            current = head;
+                            count++;
+                        } else {
+                            current.next = bill;
+                            current = current.next;
+                        }
+                    }
+                }
+            }
+
+            objectInputStream.close();
+        } catch (IOException | ClassNotFoundException e) {
+            e.printStackTrace();
+        }
+    }
+
     /**
      * Возвращает количество клиентов
      *
@@ -28,6 +161,20 @@ public class Bank {
         return count;
     }
 
+    public static void registerUser(User user) {
+        users.add(user);
+    }
+
+    public static boolean authorizedUser(String login, String password) {
+        for (User u : users) {
+            if (u.check(login, password)) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
     /**
      * Возвращает наименование банка
      *
@@ -72,13 +219,12 @@ public class Bank {
     /**
      * Вставить новый элемент в конец списока (открытие нового счёта)
      *
-     * @param passport серия и номер паспорта
-     * @param phone    мобильный телефон
-     * @param name     фамилия и имя клиента
-     * @param balance  начальный баланс
+     * @param user    пользователь, открывающий счёт
+     * @param balance начальный баланс
+     * @return регистрационные данные
      */
-    public static SecretData insert(String passport, String phone, String name, double balance) {
-        Bill newBill = new Bill(balance, passport, phone, name, count);
+    public static SecretData insert(User user, double balance) {
+        Bill newBill = new Bill(user.getUuid(), balance, count);
 
         if (head == null) {
             head = newBill;
@@ -100,14 +246,12 @@ public class Bank {
     /**
      * Вставить новый элемент после указанного indexAfter (открытие ранее удалённого счёта)
      *
-     * @param indexAfter индекс элемента, после которого будет вставлен новый
-     * @param passport   серия и номер паспорта клиента
-     * @param phone      мобильный телефон
-     * @param name       фамилия и имя клиента
+     * @param user       пользователь, открывающий счёт
+     * @param indexAfter индекс элемента, после которого будет вставлен новыйа
      * @param balance    начальный баланс
      */
-    public static void insertAt(int indexAfter, String passport, String phone, String name, double balance) {
-        Bill newBill = new Bill(balance, passport, phone, name, count);
+    public static void insertAt(User user, int indexAfter, double balance) {
+        Bill newBill = new Bill(user.getUuid(), balance, count);
 
         Bill current = head;
         if (indexAfter > count) {
@@ -135,7 +279,7 @@ public class Bank {
 
         System.out.println("\nStart client list info:");
         while (current != null) {
-            System.out.printf("Bill number: %s; Client: %s; Passport: %s; Phone: %s; Balance: %.2f;\n", current.getNumber(), current.getName(), current.getPassport(), current.getPhone(), current.getBalance());
+            System.out.printf("Bill number: %s; Balance: %.2f;\n", current.getNumber(), current.getBalance());
             current = current.next;
         }
         System.out.println("End client list info.\n");

+ 9 - 2
src/com/company/Bill.java

@@ -1,8 +1,10 @@
 package com.company;
 
+import java.io.Serializable;
 import java.util.Random;
+import java.util.UUID;
 
-public class Bill {
+public class Bill implements Serializable {
     /**
      * Ссылка на следующий элемент списка или null
      */
@@ -20,6 +22,10 @@ public class Bill {
      * Пин-код для авторизации. Генерируется рандомно при открытии счёта.
      */
     private String pincode;
+    /**
+     * Уникальный идентификатор пользователя, к которому принадлежит данный счёт.
+     */
+    private UUID uuid;
 
     /**
      * Конструктор. Открытие нового счёта.
@@ -27,8 +33,9 @@ public class Bill {
      * @param balance первоначальный баланс
      * @param num     порядковый номер нового клиента
      */
-    public Bill(double balance, int num) {
+    public Bill(UUID userUUID, double balance, int num) {
         this.balance = balance;
+        this.uuid = userUUID;
 
         // Генерация пин-кода
         Random random = new Random(System.currentTimeMillis());

+ 83 - 43
src/com/company/Client.java

@@ -16,7 +16,9 @@ public class Client extends Thread {
     private Socket socket;
     private InputStream is;
     private OutputStream os;
-    private boolean authorized;
+    private boolean authorizedCard;
+    private boolean isAuthorized;
+    private User user;
 
     /**
      * @param socket сокет клиента
@@ -25,7 +27,8 @@ public class Client extends Thread {
         this.socket = socket;
         this.is = this.socket.getInputStream();
         this.os = this.socket.getOutputStream();
-        authorized = false;
+        authorizedCard = false;
+        isAuthorized = false;
     }
 
     @Override
@@ -37,53 +40,90 @@ public class Client extends Thread {
             ObjectOutputStream objectOutputStream = new ObjectOutputStream(os);
 
             while (!isInterrupted()) {
-                UserMessage userMessage = (UserMessage) objectInputStream.readObject();
-                switch (userMessage.TYPE) {
-                    case AUTHORIZATION:
-                        System.out.println("Авторизация");
-                        authorized = Bank.authorization(userMessage.BILL_NUMBER, userMessage.PIN);
-                        break;
-                    case SIGN_CONTRACT:
-                        System.out.println("Открытие счёта");
-                        SecretData secretData = Bank.insert(userMessage.PASSPORT, userMessage.PHONE, userMessage.FULLNAME, userMessage.BALANCE);
-                        objectOutputStream.writeObject(secretData);
-                        objectOutputStream.flush();
-                        continue;
-                    case BREAK_CONTRACT:
-                        System.out.println("Закрытие счёта");
-                        if (!authorized) {
-                            System.out.println("Для совершения операций со счётом необходимо авторизоваться");
-                            objectOutputStream.writeObject(new SendMessage("Действие не выполнено! Необходимо авторизоваться."));
-                            objectOutputStream.flush();
-                            continue;
-                        }
-                        Bank.delete(userMessage.BILL_NUMBER);
-                        break;
-                    case DEPOSIT:
-                        System.out.println("Пополнение");
-                        if (!authorized) {
-                            System.out.println("Для совершения операций со счётом необходимо авторизоваться");
-                            objectOutputStream.writeObject(new SendMessage("Действие не выполнено! Необходимо авторизоваться."));
-                            objectOutputStream.flush();
-                            continue;
+
+                Header header = (Header) objectInputStream.readObject();
+
+                switch (header.Type) {
+                    case USER:
+                        if (header.Data instanceof UserTransport) {
+                            UserTransport ut = (UserTransport) header.Data;
+
+                            switch (ut.Type) {
+                                case AUTHORIZATION:
+                                    isAuthorized = Bank.authorizedUser(ut.Login, ut.Password);
+                                    System.out.println(String.format("Пользователь %s авторизовался", ut.Login));
+                                    objectOutputStream.writeObject(new SendMessage("С возвращением!"));
+                                    objectOutputStream.flush();
+                                    objectOutputStream.reset();
+                                    continue;
+                                case REGISTRATION:
+                                    Bank.registerUser(new User(ut.Name, ut.Phone, ut.Login, ut.Password));
+                                    objectOutputStream.writeObject(new SendMessage("Поздравляем! Вы успешно зарегистрировались!"));
+                                    objectOutputStream.flush();
+                                    objectOutputStream.reset();
+                                    continue;
+                            }
                         }
-                        Bank.deposit(userMessage.BALANCE, userMessage.BILL_NUMBER);
                         break;
-                    case WITHDRAW:
-                        System.out.println("Снятие");
-                        if (!authorized) {
-                            System.out.println("Для совершения операций со счётом необходимо авторизоваться");
-                            objectOutputStream.writeObject(new SendMessage("Действие не выполнено! Необходимо авторизоваться."));
-                            objectOutputStream.flush();
-                            continue;
+                    case BILL:
+                        if (header.Data instanceof BillTransport) {
+                            BillTransport bt = (BillTransport) header.Data;
+
+                            switch (bt.TYPE) {
+                                case AUTHORIZATION:
+                                    System.out.println("Авторизация");
+                                    authorizedCard = Bank.authorization(bt.BILL_NUMBER, bt.PIN);
+                                    if (authorizedCard) {
+                                        objectOutputStream.writeObject(new SendMessage("Авторизация карты успешно"));
+                                    } else {
+                                        objectOutputStream.writeObject(new SendMessage("В авторизации отказано"));
+                                    }
+                                    objectOutputStream.flush();
+                                    objectOutputStream.reset();
+                                    continue;
+                                case SIGN_CONTRACT:
+                                    System.out.println("Открытие счёта");
+                                    SecretData secretData = Bank.insert(user, bt.BALANCE);
+                                    objectOutputStream.writeObject(secretData);
+                                    objectOutputStream.flush();
+                                    continue;
+                                case BREAK_CONTRACT:
+                                    System.out.println("Закрытие счёта");
+                                    if (!authorizedCard) {
+                                        System.out.println("Для совершения операций со счётом необходимо авторизоваться");
+                                        objectOutputStream.writeObject(new SendMessage("Действие не выполнено! Необходимо авторизоваться."));
+                                        objectOutputStream.flush();
+                                        continue;
+                                    }
+                                    Bank.delete(bt.BILL_NUMBER);
+                                    break;
+                                case DEPOSIT:
+                                    System.out.println("Пополнение");
+                                    if (!authorizedCard) {
+                                        System.out.println("Для совершения операций со счётом необходимо авторизоваться");
+                                        objectOutputStream.writeObject(new SendMessage("Действие не выполнено! Необходимо авторизоваться."));
+                                        objectOutputStream.flush();
+                                        continue;
+                                    }
+                                    Bank.deposit(bt.BALANCE, bt.BILL_NUMBER);
+                                    break;
+                                case WITHDRAW:
+                                    System.out.println("Снятие");
+                                    if (!authorizedCard) {
+                                        System.out.println("Для совершения операций со счётом необходимо авторизоваться");
+                                        objectOutputStream.writeObject(new SendMessage("Действие не выполнено! Необходимо авторизоваться."));
+                                        objectOutputStream.flush();
+                                        continue;
+                                    }
+                                    Bank.withdraw(bt.BALANCE, bt.BILL_NUMBER);
+                                    break;
+                            }
                         }
-                        Bank.withdraw(userMessage.BALANCE, userMessage.BILL_NUMBER);
                         break;
-                }
 
-                // Посылаем ответ с результатом работы для не обработанных действий
+                }
 
-                objectOutputStream.writeObject(new SendMessage("Действие успешно выполнено"));
+                objectOutputStream.writeObject(new SendMessage("Нет действий..."));
                 objectOutputStream.flush();
             }
         } catch (ClassNotFoundException | IOException exception) {

+ 64 - 0
src/com/company/Header.java

@@ -0,0 +1,64 @@
+package com.company;
+
+import java.io.Serializable;
+
+public class Header implements Serializable {
+    public REQUEST_TYPE Type;
+    public Object Data;
+}
+
+enum REQUEST_TYPE {
+    USER,
+    BILL,
+}
+
+class UserTransport {
+    public USER_TRANSPORT_TYPE Type = USER_TRANSPORT_TYPE.DEFAULT;
+    public String Login;
+    public String Password;
+    public String Name;
+    public String Phone;
+}
+
+enum USER_TRANSPORT_TYPE {
+    DEFAULT,
+    REGISTRATION,
+    AUTHORIZATION,
+}
+
+class BillTransport {
+    public BILL_TRANSPORT_TYPE TYPE = BILL_TRANSPORT_TYPE.DEFAULT;
+    public String BILL_NUMBER;
+    public String PIN;
+    public String FULLNAME;
+    public String PHONE;
+    public String PASSPORT;
+    public double BALANCE;
+}
+
+/**
+ * Типы сообщений операций со счётом
+ */
+enum BILL_TRANSPORT_TYPE {
+    DEFAULT,
+    /**
+     * Пополнить баланс
+     */
+    DEPOSIT,
+    /**
+     * Снять с счёта
+     */
+    WITHDRAW,
+    /**
+     * Прекратить действие договора
+     */
+    BREAK_CONTRACT,
+    /**
+     * Открыть новый счёт
+     */
+    SIGN_CONTRACT,
+    /**
+     * Авторизация в системе (ввод номера счёта и пин-кода)
+     */
+    AUTHORIZATION,
+}

+ 4 - 0
src/com/company/Main.java

@@ -6,6 +6,10 @@ public class Main {
 
     public static void main(String[] args) throws Throwable {
         Bank.setName("Сберыч");
+//        Bank.saveClients();
+        Bank.loadClients();
+//        Bank.saveBills();
+        Bank.loadBills();
 
         Task task = new Task();
         task.start();

+ 30 - 0
src/com/company/User.java

@@ -0,0 +1,30 @@
+package com.company;
+
+import java.io.Serializable;
+import java.util.UUID;
+
+public class User implements Serializable {
+    private UUID uuid;
+    private String name;
+    private String phone;
+
+    private String login;
+    private String password;
+
+    public User(String name, String phone, String login, String password) {
+        this.name = name;
+        this.phone = phone;
+        this.login = login;
+        this.password = password;
+
+        this.uuid = UUID.randomUUID();
+    }
+
+    public UUID getUuid() {
+        return uuid;
+    }
+
+    public boolean check(String login, String password) {
+        return (this.login.equals(login) && this.password.equals(password));
+    }
+}

+ 0 - 13
src/com/company/UserMessage.java

@@ -1,13 +0,0 @@
-package com.company;
-
-import java.io.Serializable;
-
-public class UserMessage implements Serializable {
-    public UserMessageType TYPE = UserMessageType.DEFAULT;
-    public String BILL_NUMBER;
-    public String PIN;
-    public String FULLNAME;
-    public String PHONE;
-    public String PASSPORT;
-    public double BALANCE;
-}

+ 0 - 28
src/com/company/UserMessageType.java

@@ -1,28 +0,0 @@
-package com.company;
-
-/**
- * Типы сообщений клиента
- */
-public enum UserMessageType {
-    DEFAULT,
-    /**
-     * Пополнить баланс
-     */
-    DEPOSIT,
-    /**
-     * Снять с счёта
-     */
-    WITHDRAW,
-    /**
-     * Прекратить действие договора
-     */
-    BREAK_CONTRACT,
-    /**
-     * Открыть новый счёт
-     */
-    SIGN_CONTRACT,
-    /**
-     * Авторизация в системе (ввод номера счёта и пин-кода)
-     */
-    AUTHORIZATION,
-}