MobileAppThirdPartyHelper.java 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. package com.psi.gabontel.mobileapp.thirdparty.helper;
  2. import java.util.Arrays;
  3. import java.util.Hashtable;
  4. import java.util.Iterator;
  5. import java.util.List;
  6. import java.util.Map;
  7. import javax.ejb.EJB;
  8. import javax.ejb.Remote;
  9. import javax.ejb.Stateless;
  10. import javax.lang.model.element.ModuleElement.UsesDirective;
  11. import javax.naming.Context;
  12. import javax.naming.InitialContext;
  13. import org.jboss.logging.Logger;
  14. import com.psi.applicationmanager.AppManagerFunction;
  15. import com.psi.applicationmanager.AppMessage;
  16. import com.psi.common.db.DataRow;
  17. import com.psi.common.db.DataRowCollection;
  18. import com.psi.common.db.DbWrapper;
  19. import com.psi.common.transactions.Message;
  20. import com.psi.common.transactions.MessageId;
  21. import com.psi.common.transactions.Messanger;
  22. import com.psi.gabontel.mobileapp.helper.GetMobileAppExternalData;
  23. import com.psi.ussd.interfaces.UssdReceiverFunction;
  24. @Stateless
  25. @Remote(AppManagerFunction.class)
  26. public class MobileAppThirdPartyHelper implements AppManagerFunction {
  27. private static final Logger log = Logger.getLogger(MobileAppThirdPartyHelper.class);
  28. private static Hashtable<String,String> ussdgwmenuejb = new Hashtable<String,String>();
  29. static {
  30. DbWrapper db = new DbWrapper("java:jboss/datasources/UssdDbClient");
  31. DbWrapper.setInstance(db);
  32. // LOAD EJB
  33. DataRowCollection rows = db.QueryDataRows("SELECT PARAMNAME,EJBNAME FROM TBLUSSDGWMENUEJB WHERE STATUS = 1");
  34. Iterator iterator = rows.iterator();
  35. while(iterator.hasNext()) {
  36. DataRow row = (DataRow) iterator.next();
  37. String paramname = row.getString("PARAMNAME");
  38. String ejbname = row.getString("EJBNAME");
  39. ussdgwmenuejb.put(paramname, ejbname);
  40. }
  41. }
  42. @Override
  43. public String processTransaction(String refid, String msisdn, String message, Map<String, String> syntax) {
  44. return manageTransaction(refid, msisdn, message, syntax).getMessage();
  45. }
  46. @Override
  47. public AppMessage manageTransaction(String refid, String msisdn, String message, Map<String, String> syntax) {
  48. // TODO Auto-generated method stub
  49. try {
  50. String method = syntax.get("method");
  51. UssdReceiverFunction clazz = null;
  52. if(ussdgwmenuejb.containsKey(method)) {
  53. Object obj = InitialContext.doLookup(ussdgwmenuejb.get(method));
  54. clazz = (UssdReceiverFunction)obj;
  55. String[] paramarr = syntax.get("param").split("\\|");
  56. List<String> listarr = Arrays.asList(paramarr);
  57. //SPECIAL CASE
  58. if(method.equals("postpaidinvoices")){
  59. String arisreturn = clazz.requestFunc(listarr);
  60. obj = InitialContext.doLookup(ussdgwmenuejb.get("displayinvoices"));
  61. clazz = (UssdReceiverFunction)obj;
  62. listarr = Arrays.asList(arisreturn);
  63. clazz.requestFunc(listarr);
  64. return new Message(0,0,new JsonResponse(0,clazz.requestFunc(listarr)).toString());
  65. }
  66. return new Message(0,0,new JsonResponse(0,clazz.requestFunc(listarr)).toString());
  67. }else {
  68. return new Message(99,0,new JsonResponse(99,"System is busy").toString());
  69. }
  70. }catch(Exception e) {
  71. log.error("Error: Refid:"+refid+"|" ,e);
  72. }
  73. return new Message(99,0,new JsonResponse(99,"System is busy").toString());
  74. }
  75. }