質問編集履歴
2
ソースコードの修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,7 +7,6 @@
|
|
7
7
|
package registration.business_logic;
|
8
8
|
|
9
9
|
import java.util.ArrayList;
|
10
|
-
import java.util.List;
|
11
10
|
import java.util.Random;
|
12
11
|
|
13
12
|
import registration.dao.PreUserDAO;
|
@@ -16,42 +15,98 @@
|
|
16
15
|
|
17
16
|
public class RegistrationBusinessLogic {
|
18
17
|
PreUserDAO dao = null;
|
19
|
-
public void gettingPreUserIdFromDatabase()
|
18
|
+
public void gettingPreUserIdFromDatabase() {
|
20
19
|
try {
|
21
|
-
|
20
|
+
PreUserEntity getPreUserIdList = null;
|
22
21
|
boolean duplicateFlag = true;
|
23
22
|
int duplicateCount = 0;
|
24
23
|
ArrayList<String> getPreUserList = new ArrayList<>();
|
25
24
|
|
26
25
|
//まず仮会員IDを発番する
|
27
26
|
String id = null;
|
27
|
+
//TODO Logger.debug("ビジネスロジック処理開始", "処理={}", "generateIssuePreId");
|
28
28
|
dao = new PreUserDAO();
|
29
29
|
getPreUserIdList = dao.findAllPreUserId();
|
30
|
-
|
31
30
|
while(duplicateFlag){
|
32
31
|
if(duplicateCount >= 3){
|
33
32
|
//TODO Logger.warn("仮会員ID発行失敗");
|
34
|
-
//throw new RestaurantDaoException(
|
33
|
+
//throw new RestaurantDaoException();
|
34
|
+
System.out.println("仮会員ID発行失敗");
|
35
35
|
break;
|
36
36
|
}
|
37
37
|
id = generateUserId();
|
38
|
-
|
39
38
|
if (!getPreUserList.contains(id)) {
|
40
39
|
break;
|
41
40
|
}
|
42
|
-
//TODO Logger.debug("
|
41
|
+
//TODO Logger.debug("ID重複", "retryCount={}", i)
|
43
42
|
id = null;
|
44
43
|
duplicateCount++;
|
45
44
|
}
|
46
|
-
} catch (
|
45
|
+
} catch (RestaurantDaoException e){ //独自例外として宣言したい
|
47
46
|
//TODO ログ出力
|
48
47
|
//Logger.error("DB検索失敗")
|
49
|
-
|
48
|
+
e.printStackTrace();
|
50
49
|
} finally {
|
51
50
|
//TODO Logger.debug("ビジネスロジック処理終了", "処理={}", "generateIssuePreId");
|
52
51
|
dao.close();
|
53
52
|
}
|
54
53
|
}
|
54
|
+
|
55
|
+
// 8桁の仮ユーザIDを発行する
|
56
|
+
private String generateUserId() {
|
57
|
+
//TODO Logger.debug("仮会員ID発行処理開始")
|
58
|
+
Random rd = new Random();
|
59
|
+
StringBuilder sb = new StringBuilder();
|
60
|
+
int getNumber = 0;
|
61
|
+
int alphabetNumber = 0;
|
62
|
+
char getAlphabetCharacter = '\u0000';
|
63
|
+
|
64
|
+
//カウント数をプロパティから取得する(今後ID不足で桁数が増えても大丈夫なように)
|
65
|
+
|
66
|
+
for (int loopCount = 0; loopCount < 8; loopCount++) {
|
67
|
+
int getParseNumber = rd.nextInt(4); // 0〜3の乱数を取得する
|
68
|
+
switch (getParseNumber) {
|
69
|
+
case 0:// 大文字を取得
|
70
|
+
alphabetNumber = 65;
|
71
|
+
getNumber = rd.nextInt(26);
|
72
|
+
alphabetNumber = alphabetNumber + getNumber;
|
73
|
+
getAlphabetCharacter = (char) alphabetNumber;
|
74
|
+
sb.append(String.valueOf(getAlphabetCharacter));
|
75
|
+
break;
|
76
|
+
case 1:// 小文字を取得
|
77
|
+
alphabetNumber = 97;
|
78
|
+
getNumber = rd.nextInt(26);
|
79
|
+
alphabetNumber = alphabetNumber + getNumber;
|
80
|
+
getAlphabetCharacter = (char) alphabetNumber;
|
81
|
+
sb.append(String.valueOf(getAlphabetCharacter));
|
82
|
+
break;
|
83
|
+
case 2:// 数値を取得
|
84
|
+
getNumber = rd.nextInt(10);
|
85
|
+
sb.append(String.valueOf(getNumber));
|
86
|
+
break;
|
87
|
+
case 3:// 大文字を取得
|
88
|
+
alphabetNumber = 65;
|
89
|
+
getNumber = rd.nextInt(26);
|
90
|
+
alphabetNumber = alphabetNumber + getNumber;
|
91
|
+
getAlphabetCharacter = (char) alphabetNumber;
|
92
|
+
sb.append(String.valueOf(getAlphabetCharacter));
|
93
|
+
break;
|
94
|
+
case 4:// 小文字を取得
|
95
|
+
alphabetNumber = 97;
|
96
|
+
getNumber = rd.nextInt(26);
|
97
|
+
alphabetNumber = alphabetNumber + getNumber;
|
98
|
+
getAlphabetCharacter = (char) alphabetNumber;
|
99
|
+
sb.append(String.valueOf(getAlphabetCharacter));
|
100
|
+
break;
|
101
|
+
case 5:// 数値を取得
|
102
|
+
getNumber = rd.nextInt(10);
|
103
|
+
sb.append(String.valueOf(getNumber));
|
104
|
+
break;
|
105
|
+
}
|
106
|
+
}
|
107
|
+
//TODO Logger.debug("仮会員ID発行処理終了")
|
108
|
+
return sb.toString();
|
109
|
+
}
|
55
110
|
}
|
56
111
|
```
|
57
112
|
|
@@ -60,7 +115,6 @@
|
|
60
115
|
package registration.dao;
|
61
116
|
|
62
117
|
import java.io.Closeable;
|
63
|
-
import java.util.List;
|
64
118
|
|
65
119
|
import javax.persistence.EntityManager;
|
66
120
|
import javax.persistence.EntityTransaction;
|
@@ -89,14 +143,15 @@
|
|
89
143
|
* 検索結果
|
90
144
|
* DB検索とDB接続失敗のみを確認する
|
91
145
|
*/
|
92
|
-
public
|
146
|
+
public PreUserEntity findAllPreUserId() throws RestaurantDaoException {
|
93
147
|
|
94
148
|
EntityManager em = null;
|
95
149
|
try {
|
96
150
|
// Logger.debug("仮会員テーブル検索開始")
|
151
|
+
System.out.println("仮会員テーブル検索開始");
|
97
152
|
em = EmProvider.getInstance().getEntityManagerFactory().createEntityManager();
|
98
153
|
TypedQuery<PreUserEntity> query = em.createNamedQuery(SQL_FIND_ALL_PRE_USER_ID, PreUserEntity.class);
|
99
|
-
|
154
|
+
PreUserEntity entity = query.getSingleResult();
|
100
155
|
|
101
156
|
// Logger.debug("仮会員テーブル検索終了")
|
102
157
|
return entity;
|
@@ -120,16 +175,6 @@
|
|
120
175
|
em.close();
|
121
176
|
}
|
122
177
|
}
|
123
|
-
|
124
|
-
@Override
|
125
|
-
public void insert(String primaryKey1, String PrimaryKey2) {
|
126
|
-
//TODO 未実装
|
127
|
-
}
|
128
|
-
|
129
|
-
@Override
|
130
|
-
public void findByPk() {
|
131
|
-
//TODO 未実装
|
132
|
-
}
|
133
178
|
}
|
134
179
|
```
|
135
180
|
独自例外クラス
|
1
ソースコードを修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -96,7 +96,7 @@
|
|
96
96
|
// Logger.debug("仮会員テーブル検索開始")
|
97
97
|
em = EmProvider.getInstance().getEntityManagerFactory().createEntityManager();
|
98
98
|
TypedQuery<PreUserEntity> query = em.createNamedQuery(SQL_FIND_ALL_PRE_USER_ID, PreUserEntity.class);
|
99
|
-
List<PreUserEntity> entity = query.
|
99
|
+
List<PreUserEntity> entity = query.getSingleResult();
|
100
100
|
|
101
101
|
// Logger.debug("仮会員テーブル検索終了")
|
102
102
|
return entity;
|