m2u-upass-core / src / my / com / upass / maybank / MaybankFacadeImpl.java @ 60:1cff9a56093f
History | View | Annotate | Download (10.7 KB)
1 | 30:aec0089bb43e | hadi | package my.com.upass.maybank; |
---|---|---|---|
2 | |||
3 | 50:4121579eae5e | hadi | import java.text.ParseException; |
4 | 40:29d3fc38fdee | hadi | import java.util.ArrayList; |
5 | import java.util.Arrays; |
||
6 | 55:275e8875e7c0 | hadi | import java.util.Date; |
7 | 51:74be74b4d46a | hadi | import java.util.HashMap; |
8 | 40:29d3fc38fdee | hadi | import java.util.LinkedList; |
9 | import java.util.List; |
||
10 | import java.util.Map; |
||
11 | |||
12 | 51:74be74b4d46a | hadi | import javax.jws.WebParam; |
13 | import javax.jws.WebResult; |
||
14 | 30:aec0089bb43e | hadi | import javax.jws.WebService; |
15 | |||
16 | 40:29d3fc38fdee | hadi | import my.com.upass.MinimalConstants; |
17 | 33:9d5b4aece71c | hadi | import my.com.upass.UPassControllerV2; |
18 | 40:29d3fc38fdee | hadi | import my.com.upass.UPassException; |
19 | 46:8f67d8567943 | hadi | import my.com.upass.generic.hibernate.GenericDAOHibernate; |
20 | import my.com.upass.generic.hibernate.HibernateUtils; |
||
21 | 37:848f67a9b39c | hadi | import my.com.upass.maybank.entities.IbccUser; |
22 | 40:29d3fc38fdee | hadi | import my.com.upass.maybank.entities.Im2uUser; |
23 | import my.com.upass.maybank.entities.M2uUser; |
||
24 | import my.com.upass.maybank.entities.StockUser; |
||
25 | import my.com.upass.maybank.entities.TicketingUser; |
||
26 | import my.com.upass.maybank.entities.UserProfile; |
||
27 | 42:d32be3a379fb | hadi | import my.com.upass.pojo.ClientApp; |
28 | 37:848f67a9b39c | hadi | import my.com.upass.pojo.MinimalUserBean; |
29 | 40:29d3fc38fdee | hadi | import my.com.upass.pojo.UserAppAccess; |
30 | 52:7d9b71dd008a | hadi | import my.com.upass.util.MapElement; |
31 | import my.com.upass.util.MapWrapper; |
||
32 | 30:aec0089bb43e | hadi | |
33 | 40:29d3fc38fdee | hadi | import org.apache.log4j.Logger; |
34 | import org.hibernate.Session; |
||
35 | 30:aec0089bb43e | hadi | |
36 | 43:78b1d801d083 | hadi | /**
|
37 | * @author Hadi
|
||
38 | *
|
||
39 | */
|
||
40 | 32:d43f37e77545 | hadi | @WebService(
|
41 | serviceName = "MaybankFacade",
|
||
42 | endpointInterface = "my.com.upass.maybank.MaybankFacade")
|
||
43 | //
|
||
44 | public class MaybankFacadeImpl |
||
45 | extends MinimalMaybankFacadeImpl
|
||
46 | implements MaybankFacade {
|
||
47 | 30:aec0089bb43e | hadi | |
48 | 40:29d3fc38fdee | hadi | private static final Logger LOGGER = Logger.getLogger(MaybankFacadeImpl.class); |
49 | |||
50 | 33:9d5b4aece71c | hadi | private final UPassControllerV2 upcV2; |
51 | |||
52 | 40:29d3fc38fdee | hadi | //
|
53 | |||
54 | 33:9d5b4aece71c | hadi | public MaybankFacadeImpl() {
|
55 | upcV2 = new UPassControllerV2();
|
||
56 | } |
||
57 | |||
58 | @Override
|
||
59 | 55:275e8875e7c0 | hadi | public int newIbccAdminUser( |
60 | 39:e450611bea1f | hadi | String appAccessId, String hashedSecretKey, |
61 | 34:420c5039e742 | hadi | String username, String hashedPassword) { |
62 | 39:e450611bea1f | hadi | |
63 | 51:74be74b4d46a | hadi | final MinimalUserBean minUser = new MinimalUserBean(); |
64 | 40:29d3fc38fdee | hadi | minUser.setUsername(username); |
65 | 57:a253181a620a | hadi | minUser.setHashedPassword(hashedPassword); |
66 | 51:74be74b4d46a | hadi | |
67 | 57:a253181a620a | hadi | return newAdminUser(appAccessId, hashedSecretKey, minUser, ClientApp.APP_ID_CCPP);
|
68 | 30:aec0089bb43e | hadi | } |
69 | |||
70 | 51:74be74b4d46a | hadi | @Override
|
71 | 55:275e8875e7c0 | hadi | public int newIbccPublicUser( |
72 | 37:848f67a9b39c | hadi | String appAccessId, String hashedSecretKey, |
73 | String username, String hashedPassword, String panCc) { |
||
74 | |||
75 | 51:74be74b4d46a | hadi | final IbccUser ibccUser = new IbccUser(); |
76 | 37:848f67a9b39c | hadi | ibccUser.setPanCc(panCc); |
77 | |||
78 | 51:74be74b4d46a | hadi | final MinimalUserBean minUser = new MinimalUserBean(); |
79 | 37:848f67a9b39c | hadi | minUser.setUsername(username); |
80 | minUser.setHashedPassword(hashedPassword); |
||
81 | ibccUser.setMinUser(minUser); |
||
82 | |||
83 | return newUser(appAccessId, hashedSecretKey, ibccUser);
|
||
84 | } |
||
85 | |||
86 | 51:74be74b4d46a | hadi | @Override
|
87 | 55:275e8875e7c0 | hadi | public int newOnlineStockUser( |
88 | String appAccessId, String hashedSecretKey, |
||
89 | 58:dd2bc242b7f4 | hadi | String username, String idNo) { |
90 | 55:275e8875e7c0 | hadi | |
91 | StockUser stockUser = new StockUser();
|
||
92 | stockUser.setIdNo(idNo); |
||
93 | |||
94 | MinimalUserBean minUser = new MinimalUserBean();
|
||
95 | minUser.setUsername(username); |
||
96 | stockUser.setMinUser(minUser); |
||
97 | |||
98 | return newUser(appAccessId, hashedSecretKey, stockUser);
|
||
99 | } |
||
100 | |||
101 | @Override
|
||
102 | public int newIm2uUser( |
||
103 | 58:dd2bc242b7f4 | hadi | String appAccessId, String hashedSecretKey, String username, |
104 | 55:275e8875e7c0 | hadi | String wsFlag, String wsIdentCode, String wsMySgId, Date wsRegTimeStamp) { |
105 | |||
106 | Im2uUser im2uUser = new Im2uUser();
|
||
107 | im2uUser.setWsFlag(wsFlag); |
||
108 | im2uUser.setWsIdentCode(wsIdentCode); |
||
109 | im2uUser.setWsMySgId(wsMySgId); |
||
110 | im2uUser.setWsRegTimeStamp(wsRegTimeStamp); |
||
111 | |||
112 | MinimalUserBean minUser = new MinimalUserBean();
|
||
113 | minUser.setUsername(username); |
||
114 | im2uUser.setMinUser(minUser); |
||
115 | |||
116 | return newUser(appAccessId, hashedSecretKey, im2uUser);
|
||
117 | } |
||
118 | |||
119 | @Override
|
||
120 | 51:74be74b4d46a | hadi | public int newTicketingUser( |
121 | 52:7d9b71dd008a | hadi | String appAccessId, String hashedSecretKey, |
122 | String username, String hashedPassword, |
||
123 | 51:74be74b4d46a | hadi | String fullName, String firstName, String lastName, String payeeCode) { |
124 | |||
125 | final TicketingUser ticketingUser = new TicketingUser(); |
||
126 | ticketingUser.setFullName(fullName); |
||
127 | ticketingUser.setFirstName(firstName); |
||
128 | ticketingUser.setLastName(lastName); |
||
129 | ticketingUser.setPayeeCode(payeeCode); |
||
130 | 52:7d9b71dd008a | hadi | |
131 | 51:74be74b4d46a | hadi | final MinimalUserBean minUser = new MinimalUserBean(); |
132 | minUser.setUsername(username); |
||
133 | minUser.setHashedPassword(hashedPassword); |
||
134 | ticketingUser.setMinUser(minUser); |
||
135 | 52:7d9b71dd008a | hadi | |
136 | 51:74be74b4d46a | hadi | return newUser(appAccessId, hashedSecretKey, ticketingUser);
|
137 | } |
||
138 | 52:7d9b71dd008a | hadi | |
139 | 43:78b1d801d083 | hadi | /**
|
140 | * @deprecated
|
||
141 | * @see #lookupUsername(String, String, String)
|
||
142 | */
|
||
143 | @Override
|
||
144 | public Response lookupUsername_internal(
|
||
145 | String appAccessId, String hashedSecretKey, String username) { |
||
146 | |||
147 | throw new java.lang.UnsupportedOperationException(); |
||
148 | } |
||
149 | |||
150 | 33:9d5b4aece71c | hadi | @Override
|
151 | 39:e450611bea1f | hadi | public ResponseElement lookupUsername(
|
152 | 60:1cff9a56093f | hadi | String appAccessId, String hashedSecretKey, |
153 | String username, Integer appId) { |
||
154 | 39:e450611bea1f | hadi | |
155 | 60:1cff9a56093f | hadi | final Response response = super.lookupUsername_internal( |
156 | appAccessId, hashedSecretKey, username, appId); |
||
157 | |||
158 | 39:e450611bea1f | hadi | return new ResponseElement(response); |
159 | } |
||
160 | |||
161 | 43:78b1d801d083 | hadi | /**
|
162 | * @deprecated
|
||
163 | * @see #lookupPublicUsername(String, String, String)
|
||
164 | */
|
||
165 | 40:29d3fc38fdee | hadi | @Override
|
166 | 43:78b1d801d083 | hadi | public Response lookupPublicUsername_internal(
|
167 | 40:29d3fc38fdee | hadi | String appAccessId, String hashedSecretKey, String username) { |
168 | |||
169 | 42:d32be3a379fb | hadi | throw new java.lang.UnsupportedOperationException(); |
170 | 40:29d3fc38fdee | hadi | } |
171 | |||
172 | 39:e450611bea1f | hadi | @Override
|
173 | 42:d32be3a379fb | hadi | public ResponseElement lookupPublicUsername(
|
174 | 40:29d3fc38fdee | hadi | String appAccessId, String hashedSecretKey, String username) { |
175 | 39:e450611bea1f | hadi | |
176 | 42:d32be3a379fb | hadi | final Response response = super.lookupPublicUsername_internal(appAccessId, hashedSecretKey, username); |
177 | return new ResponseElement(response); |
||
178 | } |
||
179 | |||
180 | 43:78b1d801d083 | hadi | /**
|
181 | * @deprecated
|
||
182 | * @see #lookupPan1(String, String, String)
|
||
183 | */
|
||
184 | 42:d32be3a379fb | hadi | @Override
|
185 | public Response lookupPan1_internal(
|
||
186 | String appAccessId, String hashedSecretKey, String pan1) { |
||
187 | |||
188 | throw new java.lang.UnsupportedOperationException(); |
||
189 | } |
||
190 | |||
191 | @Override
|
||
192 | public ResponseElement lookupPan1(
|
||
193 | String appAccessId, String hashedSecretKey, String pan1) { |
||
194 | |||
195 | final Response response = super.lookupPan1_internal(appAccessId, hashedSecretKey, pan1); |
||
196 | return new ResponseElement(response); |
||
197 | } |
||
198 | |||
199 | 43:78b1d801d083 | hadi | /**
|
200 | * @deprecated
|
||
201 | * @see #lookupPan2(String, String, String)
|
||
202 | */
|
||
203 | 42:d32be3a379fb | hadi | @Override
|
204 | public Response lookupPan2_internal(
|
||
205 | String appAccessId, String hashedSecretKey, String pan1) { |
||
206 | |||
207 | throw new java.lang.UnsupportedOperationException(); |
||
208 | } |
||
209 | |||
210 | @Override
|
||
211 | public ResponseElement lookupPan2(
|
||
212 | String appAccessId, String hashedSecretKey, String pan2) { |
||
213 | |||
214 | final Response response = super.lookupPan2_internal(appAccessId, hashedSecretKey, pan2); |
||
215 | return new ResponseElement(response); |
||
216 | } |
||
217 | |||
218 | 43:78b1d801d083 | hadi | /**
|
219 | * @deprecated
|
||
220 | * @see #lookupPanCc(String, String, String)
|
||
221 | */
|
||
222 | 42:d32be3a379fb | hadi | @Override
|
223 | public Response lookupPanCc_internal(
|
||
224 | String appAccessId, String hashedSecretKey, String panCc) { |
||
225 | |||
226 | throw new java.lang.UnsupportedOperationException(); |
||
227 | } |
||
228 | |||
229 | @Override
|
||
230 | public ResponseElement lookupPanCc(
|
||
231 | String appAccessId, String hashedSecretKey, String panCc) { |
||
232 | |||
233 | final Response response = super.lookupPanCc_internal(appAccessId, hashedSecretKey, panCc); |
||
234 | return new ResponseElement(response); |
||
235 | 30:aec0089bb43e | hadi | } |
236 | |||
237 | 33:9d5b4aece71c | hadi | @Override
|
238 | 34:420c5039e742 | hadi | public int deleteUser( |
239 | 39:e450611bea1f | hadi | String appAccessId, String hashedSecretKey, |
240 | 34:420c5039e742 | hadi | String username) {
|
241 | 39:e450611bea1f | hadi | |
242 | 43:78b1d801d083 | hadi | int rc = MinimalConstants.ERR_UNKNOWN;
|
243 | Session session = null;
|
||
244 | try {
|
||
245 | session = HibernateUtils.currentSession(); |
||
246 | session.beginTransaction(); |
||
247 | |||
248 | 44:7a7fb8fcfd6e | hadi | rc = upcV2.deleteUserWithTheProfile(appAccessId, hashedSecretKey, username, session); |
249 | |||
250 | if (rc == MinimalConstants.ERR_SUCCESS)
|
||
251 | session.getTransaction().commit(); |
||
252 | else
|
||
253 | GenericDAOHibernate.rollbackTransactionIfAny(session); |
||
254 | |||
255 | } catch (UPassException e) {
|
||
256 | rc = e.getErrorCode(); |
||
257 | e.printStackTrace(); |
||
258 | GenericDAOHibernate.rollbackTransactionIfAny(session); |
||
259 | 43:78b1d801d083 | hadi | |
260 | } catch (Exception e) { |
||
261 | LOGGER.error(e, e); |
||
262 | GenericDAOHibernate.rollbackTransactionIfAny(session); |
||
263 | |||
264 | } finally {
|
||
265 | GenericDAOHibernate.closeSessionIfAny(session); |
||
266 | } |
||
267 | return rc;
|
||
268 | 30:aec0089bb43e | hadi | } |
269 | |||
270 | 33:9d5b4aece71c | hadi | @Override
|
271 | 40:29d3fc38fdee | hadi | public ResponseListElement searchUserByFilter(
|
272 | 52:7d9b71dd008a | hadi | String appAccessId, String hashedSecretKey, MapWrapper searchFilter) { |
273 | 39:e450611bea1f | hadi | |
274 | 40:29d3fc38fdee | hadi | ResponseListElement res = new ResponseListElement();
|
275 | 52:7d9b71dd008a | hadi | final List<MapWrapper> items = new LinkedList<MapWrapper>(); |
276 | 40:29d3fc38fdee | hadi | |
277 | Session session = null;
|
||
278 | try {
|
||
279 | session = HibernateUtils.currentSession(); |
||
280 | 42:d32be3a379fb | hadi | |
281 | 40:29d3fc38fdee | hadi | List<UserProfile> examples = new ArrayList<UserProfile>(5); |
282 | for (Class<? extends UserProfile> clazz : Arrays.asList( |
||
283 | IbccUser.class, Im2uUser.class, M2uUser.class, StockUser.class, TicketingUser.class)) { |
||
284 | |||
285 | final UserProfile example = clazz.newInstance();
|
||
286 | 52:7d9b71dd008a | hadi | example.mapToProperties(searchFilter.getMap()); |
287 | 40:29d3fc38fdee | hadi | examples.add(example); |
288 | } |
||
289 | 42:d32be3a379fb | hadi | List<UserProfile> profiles = upcV2.listProfilesByExamples(
|
290 | appAccessId, hashedSecretKey, examples, session); |
||
291 | |||
292 | 40:29d3fc38fdee | hadi | for (UserProfile profile : profiles)
|
293 | 52:7d9b71dd008a | hadi | items.add(new MapWrapper(profile.propertiesToMap()));
|
294 | 40:29d3fc38fdee | hadi | |
295 | res.setItems(items); |
||
296 | res.setCode(MinimalConstants.ERR_SUCCESS); |
||
297 | |||
298 | } catch (UPassException e) {
|
||
299 | LOGGER.info(e, e); |
||
300 | res.setCode(e.getErrorCode()); |
||
301 | |||
302 | 50:4121579eae5e | hadi | } catch (ParseException e) { |
303 | LOGGER.error(e, e); |
||
304 | res.setCode(MinimalConstants.ERR_INVALID_INPUT); |
||
305 | |||
306 | 40:29d3fc38fdee | hadi | } catch (Exception e) { |
307 | LOGGER.error(e, e); |
||
308 | res.setCode(MinimalConstants.ERR_UNKNOWN); |
||
309 | |||
310 | } finally {
|
||
311 | GenericDAOHibernate.closeSessionIfAny(session); |
||
312 | } |
||
313 | return res;
|
||
314 | 39:e450611bea1f | hadi | } |
315 | |||
316 | @Override
|
||
317 | public int changeIdNo( |
||
318 | String appAccessId, String hashedSecretKey, |
||
319 | String username, String idNo) { |
||
320 | |||
321 | 40:29d3fc38fdee | hadi | Session session = null;
|
322 | try {
|
||
323 | session = HibernateUtils.currentSession(); |
||
324 | session.beginTransaction(); |
||
325 | |||
326 | UserProfile profile = upcV2.findProfile( |
||
327 | 42:d32be3a379fb | hadi | appAccessId, hashedSecretKey, username, ClientApp.APP_ID_ONLINE_STOCK, session); |
328 | 40:29d3fc38fdee | hadi | |
329 | if (profile instanceof StockUser) { |
||
330 | StockUser stockUser = (StockUser) profile; |
||
331 | stockUser.setIdNo(idNo); |
||
332 | |||
333 | int rc = upcV2.updateProfileShallowly(
|
||
334 | appAccessId, hashedSecretKey, stockUser, session); |
||
335 | |||
336 | 44:7a7fb8fcfd6e | hadi | if (rc == MinimalConstants.ERR_SUCCESS)
|
337 | session.getTransaction().commit(); |
||
338 | else
|
||
339 | GenericDAOHibernate.rollbackTransactionIfAny(session); |
||
340 | |||
341 | 40:29d3fc38fdee | hadi | return rc;
|
342 | |||
343 | } else {
|
||
344 | GenericDAOHibernate.rollbackTransactionIfAny(session); |
||
345 | 42:d32be3a379fb | hadi | return MinimalConstants.ERR_INVALID_INPUT;
|
346 | 40:29d3fc38fdee | hadi | } |
347 | } catch (UPassException e) {
|
||
348 | LOGGER.info(e, e); |
||
349 | GenericDAOHibernate.rollbackTransactionIfAny(session); |
||
350 | return e.getErrorCode();
|
||
351 | |||
352 | } catch (Exception e) { |
||
353 | LOGGER.error(e, e); |
||
354 | GenericDAOHibernate.rollbackTransactionIfAny(session); |
||
355 | return MinimalConstants.ERR_UNKNOWN;
|
||
356 | |||
357 | } finally {
|
||
358 | GenericDAOHibernate.closeSessionIfAny(session); |
||
359 | } |
||
360 | } |
||
361 | |||
362 | 51:74be74b4d46a | hadi | @Override
|
363 | public CountResponseElement getFailedLoginsCount(
|
||
364 | String appAccessId, String hashedSecretKey, String username) { |
||
365 | |||
366 | CountResponse response = super.getFailedLoginsCount(appAccessId, hashedSecretKey, username);
|
||
367 | return new CountResponseElement(response); |
||
368 | } |
||
369 | |||
370 | 40:29d3fc38fdee | hadi | // Helper methods
|
371 | |||
372 | protected int newAdminUser( |
||
373 | 57:a253181a620a | hadi | String appAccessId, String hashedSecretKey, MinimalUserBean adminUser, Integer targetAppId) { |
374 | 40:29d3fc38fdee | hadi | |
375 | int rc = MinimalConstants.ERR_UNKNOWN;
|
||
376 | Session session = null;
|
||
377 | try {
|
||
378 | session = HibernateUtils.currentSession(); |
||
379 | session.beginTransaction(); |
||
380 | |||
381 | rc = upcV2.addUser( |
||
382 | 57:a253181a620a | hadi | appAccessId, hashedSecretKey, |
383 | adminUser, UserAppAccess.TYPE_ADMIN, targetAppId, session, true);
|
||
384 | 40:29d3fc38fdee | hadi | |
385 | 57:a253181a620a | hadi | if (rc == MinimalConstants.ERR_SUCCESS)
|
386 | session.getTransaction().commit(); |
||
387 | else
|
||
388 | 40:29d3fc38fdee | hadi | GenericDAOHibernate.rollbackTransactionIfAny(session); |
389 | |||
390 | } catch (Exception e) { |
||
391 | GenericDAOHibernate.rollbackTransactionIfAny(session); |
||
392 | LOGGER.error(e, e); |
||
393 | |||
394 | } finally {
|
||
395 | GenericDAOHibernate.closeSessionIfAny(session); |
||
396 | } |
||
397 | return rc;
|
||
398 | 30:aec0089bb43e | hadi | } |
399 | } |