質問編集履歴

2

ソースコードの修正

2017/07/16 23:14

投稿

Linkey
Linkey

スコア77

test CHANGED
File without changes
test CHANGED
@@ -16,8 +16,6 @@
16
16
 
17
17
  import java.util.ArrayList;
18
18
 
19
- import java.util.List;
20
-
21
19
  import java.util.Random;
22
20
 
23
21
 
@@ -34,11 +32,11 @@
34
32
 
35
33
  PreUserDAO dao = null;
36
34
 
37
- public void gettingPreUserIdFromDatabase() throws RestaurantDaoException {
35
+ public void gettingPreUserIdFromDatabase() {
38
36
 
39
37
  try {
40
38
 
41
- List<PreUserEntity> getPreUserIdList = null;
39
+ PreUserEntity getPreUserIdList = null;
42
40
 
43
41
  boolean duplicateFlag = true;
44
42
 
@@ -52,19 +50,21 @@
52
50
 
53
51
  String id = null;
54
52
 
53
+ //TODO Logger.debug("ビジネスロジック処理開始", "処理={}", "generateIssuePreId");
54
+
55
55
  dao = new PreUserDAO();
56
56
 
57
57
  getPreUserIdList = dao.findAllPreUserId();
58
58
 
59
-
60
-
61
59
  while(duplicateFlag){
62
60
 
63
61
  if(duplicateCount >= 3){
64
62
 
65
63
  //TODO Logger.warn("仮会員ID発行失敗");
66
64
 
67
- //throw new RestaurantDaoException("仮会員IDの発行に失敗しました", e);
65
+ //throw new RestaurantDaoException();
66
+
67
+ System.out.println("仮会員ID発行失敗");
68
68
 
69
69
  break;
70
70
 
@@ -72,15 +72,13 @@
72
72
 
73
73
  id = generateUserId();
74
74
 
75
-
76
-
77
75
  if (!getPreUserList.contains(id)) {
78
76
 
79
77
  break;
80
78
 
81
79
  }
82
80
 
83
- //TODO Logger.debug("仮会員ID重複", "retryCount={}", i)
81
+ //TODO Logger.debug("ID重複", "retryCount={}", i)
84
82
 
85
83
  id = null;
86
84
 
@@ -88,13 +86,13 @@
88
86
 
89
87
  }
90
88
 
91
- } catch (Exception e){ //独自例外として宣言したい
89
+ } catch (RestaurantDaoException e){ //独自例外として宣言したい
92
90
 
93
91
  //TODO ログ出力
94
92
 
95
93
  //Logger.error("DB検索失敗")
96
94
 
97
- throw new RestaurantDaoException("予期せぬエラーが発生しました。", e);
95
+ e.printStackTrace();
98
96
 
99
97
  } finally {
100
98
 
@@ -106,6 +104,118 @@
106
104
 
107
105
  }
108
106
 
107
+
108
+
109
+ // 8桁の仮ユーザIDを発行する
110
+
111
+ private String generateUserId() {
112
+
113
+ //TODO Logger.debug("仮会員ID発行処理開始")
114
+
115
+ Random rd = new Random();
116
+
117
+ StringBuilder sb = new StringBuilder();
118
+
119
+ int getNumber = 0;
120
+
121
+ int alphabetNumber = 0;
122
+
123
+ char getAlphabetCharacter = '\u0000';
124
+
125
+
126
+
127
+ //カウント数をプロパティから取得する(今後ID不足で桁数が増えても大丈夫なように)
128
+
129
+
130
+
131
+ for (int loopCount = 0; loopCount < 8; loopCount++) {
132
+
133
+ int getParseNumber = rd.nextInt(4); // 0〜3の乱数を取得する
134
+
135
+ switch (getParseNumber) {
136
+
137
+ case 0:// 大文字を取得
138
+
139
+ alphabetNumber = 65;
140
+
141
+ getNumber = rd.nextInt(26);
142
+
143
+ alphabetNumber = alphabetNumber + getNumber;
144
+
145
+ getAlphabetCharacter = (char) alphabetNumber;
146
+
147
+ sb.append(String.valueOf(getAlphabetCharacter));
148
+
149
+ break;
150
+
151
+ case 1:// 小文字を取得
152
+
153
+ alphabetNumber = 97;
154
+
155
+ getNumber = rd.nextInt(26);
156
+
157
+ alphabetNumber = alphabetNumber + getNumber;
158
+
159
+ getAlphabetCharacter = (char) alphabetNumber;
160
+
161
+ sb.append(String.valueOf(getAlphabetCharacter));
162
+
163
+ break;
164
+
165
+ case 2:// 数値を取得
166
+
167
+ getNumber = rd.nextInt(10);
168
+
169
+ sb.append(String.valueOf(getNumber));
170
+
171
+ break;
172
+
173
+ case 3:// 大文字を取得
174
+
175
+ alphabetNumber = 65;
176
+
177
+ getNumber = rd.nextInt(26);
178
+
179
+ alphabetNumber = alphabetNumber + getNumber;
180
+
181
+ getAlphabetCharacter = (char) alphabetNumber;
182
+
183
+ sb.append(String.valueOf(getAlphabetCharacter));
184
+
185
+ break;
186
+
187
+ case 4:// 小文字を取得
188
+
189
+ alphabetNumber = 97;
190
+
191
+ getNumber = rd.nextInt(26);
192
+
193
+ alphabetNumber = alphabetNumber + getNumber;
194
+
195
+ getAlphabetCharacter = (char) alphabetNumber;
196
+
197
+ sb.append(String.valueOf(getAlphabetCharacter));
198
+
199
+ break;
200
+
201
+ case 5:// 数値を取得
202
+
203
+ getNumber = rd.nextInt(10);
204
+
205
+ sb.append(String.valueOf(getNumber));
206
+
207
+ break;
208
+
209
+ }
210
+
211
+ }
212
+
213
+ //TODO Logger.debug("仮会員ID発行処理終了")
214
+
215
+ return sb.toString();
216
+
217
+ }
218
+
109
219
  }
110
220
 
111
221
  ```
@@ -122,8 +232,6 @@
122
232
 
123
233
  import java.io.Closeable;
124
234
 
125
- import java.util.List;
126
-
127
235
 
128
236
 
129
237
  import javax.persistence.EntityManager;
@@ -180,7 +288,7 @@
180
288
 
181
289
  */
182
290
 
183
- public List<PreUserEntity> findAllPreUserId() throws RestaurantDaoException {
291
+ public PreUserEntity findAllPreUserId() throws RestaurantDaoException {
184
292
 
185
293
 
186
294
 
@@ -190,11 +298,13 @@
190
298
 
191
299
  // Logger.debug("仮会員テーブル検索開始")
192
300
 
301
+ System.out.println("仮会員テーブル検索開始");
302
+
193
303
  em = EmProvider.getInstance().getEntityManagerFactory().createEntityManager();
194
304
 
195
305
  TypedQuery<PreUserEntity> query = em.createNamedQuery(SQL_FIND_ALL_PRE_USER_ID, PreUserEntity.class);
196
306
 
197
- List<PreUserEntity> entity = query.getSingleResult();
307
+ PreUserEntity entity = query.getSingleResult();
198
308
 
199
309
 
200
310
 
@@ -242,26 +352,6 @@
242
352
 
243
353
  }
244
354
 
245
-
246
-
247
- @Override
248
-
249
- public void insert(String primaryKey1, String PrimaryKey2) {
250
-
251
- //TODO 未実装
252
-
253
- }
254
-
255
-
256
-
257
- @Override
258
-
259
- public void findByPk() {
260
-
261
- //TODO 未実装
262
-
263
- }
264
-
265
355
  }
266
356
 
267
357
  ```

1

ソースコードを修正

2017/07/16 23:14

投稿

Linkey
Linkey

スコア77

test CHANGED
File without changes
test CHANGED
@@ -194,7 +194,7 @@
194
194
 
195
195
  TypedQuery<PreUserEntity> query = em.createNamedQuery(SQL_FIND_ALL_PRE_USER_ID, PreUserEntity.class);
196
196
 
197
- List<PreUserEntity> entity = query.getResultList();
197
+ List<PreUserEntity> entity = query.getSingleResult();
198
198
 
199
199
 
200
200