Kaynağa Gözat

Update on eula / addition of mobiletranshandler/validation

Pat 7 yıl önce
ebeveyn
işleme
46e3404188

+ 58 - 42
GabonTelMobicashMobileAppHelper/src/main/java/com/psi/gabontel/mobileapp/helper/EulaTransaction.java

@@ -26,48 +26,64 @@ public class EulaTransaction  implements AppManagerFunction  {
 
 	@Override
 	public AppMessage manageTransaction(String refid, String msisdn, String message, Map<String, String> syntax) {	
-		 String ret = null;
-		 String  key = syntax.get("key");	
-		 String  token = syntax.get("token");
-		 Message msg = null;
-		 try {
-		 McomSubscriber originator = McomSubscriber.getMcomSubscriber(msisdn);
-		
-		 if (!originator.isSubscribed()) {
-			 msg =  Messanger.getMessage(MessageId.UNAUTHORISED_ERROR, originator);
-	     }
-		 
-		 if (!"ACTIVE".equalsIgnoreCase(originator.getProperty("STATUS"))) {
-			 msg =  Messanger.getMessage(MessageId.INACTIVE_ERROR, originator);
-	     }
-		 
-		 
-	     msg = TransactionHelper.allowedTransaction(originator, key);
-	     if (msg != null) {
-	            return msg;
-	     }
-	     
-	     DbWrapper.getInstance().QueryUpdate("UPDATE TBLMOBILEACCOUNTINFO SET TOKEN = ? WHERE MSISDN = ? ", new Object[] {token, originator.getMsisdn() });
-	     DbWrapper.getInstance().QueryUpdate("DELETE TBLNONCE WHERE MSISDN = ?", new Object[] { ret });
-	  
-	     msg =  Messanger.getMessage(1014, originator);
-	     
-	     
-	     String type =  DbWrapper.getInstance().QueryScalar("SELECT DECRYPT(TYPE,?,MSISDN)TYPE FROM TBLMOBILEACCOUNTINFO WHERE MSISDN = ? ", "", new Object[] { DbWrapper.getInstance().getCrypt(), msisdn });
-	     String company = DbWrapper.getInstance().QueryScalar("SELECT COMPANY FROM TBLMOBILEACCOUNTINFO WHERE MSISDN = ? ", "", new Object[] { msisdn });
-	     if (type.startsWith("AGNT") || type.startsWith("DLER")  || type.equals("RETA") || type.equals("MERC")  || type.equals("TRAD")) {
-	            ret = "REGIS:" + msg.getId() + ":" + 0 + ":" + originator.getMsisdn() + ":" + originator.getProperty("FIRSTNAME") + ":" + originator.getProperty("LASTNAME") + ":" + 1 + ":" + 2 + ":" + 0 + ":" + company + ":" + originator.getAliasName() + ":" + "Success";
-	            msg =  new Message(0, 0, ret);
-	     }
-	     
-	     ret = msg.getMessage();
-	     msg = new Message(0, 0, ret);
-		 }catch(Exception e) {
-			 log.error("Eula Error|Ref:"+refid +"|",e);
-			    msg =  Messanger.getMessage(MessageId.SYSTEM_BUSY);
-		 }
-		 
-		 return msg;
+	    String ret = null;
+        String  key = syntax.get("key");   
+        String  token = syntax.get("token");
+        Message msg = null;
+        try {
+        McomSubscriber originator = McomSubscriber.getMcomSubscriber(msisdn);
+       
+        if (!originator.isSubscribed()) {
+            msg =  Messanger.getMessage(MessageId.UNAUTHORISED_ERROR, originator);
+        }
+        
+        if (!"ACTIVE".equalsIgnoreCase(originator.getProperty("STATUS"))) {
+            msg =  Messanger.getMessage(MessageId.INACTIVE_ERROR, originator);
+        }
+        
+        
+        msg = TransactionHelper.allowedTransaction(originator, key);
+        if (msg != null) {
+               return msg;
+        }
+        
+        DbWrapper.getInstance().QueryUpdate("UPDATE TBLMOBILEACCOUNTINFO SET TOKEN = ? WHERE MSISDN = ? ", new Object[] {token, originator.getMsisdn() });
+        DbWrapper.getInstance().QueryUpdate("DELETE TBLNONCE WHERE MSISDN = ?", new Object[] { ret });
+     
+        //msg =  Messanger.getMessage(1014, originator);
+        
+        
+        /*String type =  DbWrapper.getInstance().QueryScalar("SELECT DECRYPT(TYPE,?,MSISDN)TYPE FROM TBLMOBILEACCOUNTINFO WHERE MSISDN = ? ", "", new Object[] { DbWrapper.getInstance().getCrypt(), msisdn });
+        String company = DbWrapper.getInstance().QueryScalar("SELECT COMPANY FROM TBLMOBILEACCOUNTINFO WHERE MSISDN = ? ", "", new Object[] { msisdn });
+        if (type.startsWith("AGNT") || type.startsWith("DLER")  || type.equals("RETA") || type.equals("MERC")  || type.equals("TRAD")) {
+               ret = "REGIS:" + msg.getId() + ":" + 0 + ":" + originator.getMsisdn() + ":" + originator.getProperty("FIRSTNAME") + ":" + originator.getProperty("LASTNAME") + ":" + 1 + ":" + 2 + ":" + 0 + ":" + company + ":" + originator.getAliasName() + ":" + "Success";
+               msg =  new Message(0, 0, ret);
+        }*/
+        
+        //ret = msg.getMessage();
+        //msg = new Message(0, 0, ret);
+        
+        msg = Messanger.getMessage(MessageId.SUCCESS_REGISTER_MSISDN,originator,"<value>",originator.getMsisdn(),"<referenceid>",refid);
+        ret = "REGIS:" + msisdn;
+        String company = DbWrapper.getInstance().QueryScalar("SELECT COMPANY FROM TBLMOBILEACCOUNTINFO WHERE MSISDN = ? ", "",  msisdn);
+        ret =  "REGIS:"
+                + msg.getId() + ":"
+                + 0 + ":"
+                + originator.getMsisdn() + ":"
+                + originator.getProperty(McomSubscriber.PROP_FIRSTNAME) + ":"
+                + originator.getProperty(McomSubscriber.PROP_LASTNAME) + ":"
+                + 1 + ":" //mid
+                + 2 + ":" //tid
+                + 0 + ":" //serial
+                + company + ":"
+                + originator.getAliasName() + ":"
+                + "Success";
+        return new Message(0,0,ret);
+        }catch(Exception e) {
+            log.error("Eula Error|Ref:"+refid +"|",e);
+               msg =  Messanger.getMessage(MessageId.SYSTEM_BUSY);
+        }
+        return msg;
 		 
 	}
 }

+ 62 - 0
GabonTelMobicashMobileAppHelper/src/main/java/com/psi/gabontel/mobileapp/helper/MobileTransactionHandler.java

@@ -0,0 +1,62 @@
+package com.psi.gabontel.mobileapp.helper;
+
+import java.util.Map;
+
+import javax.ejb.Remote;
+import javax.ejb.Stateless;
+
+import org.jboss.logging.Logger;
+
+import com.psi.applicationmanager.AppManagerFunction;
+import com.psi.applicationmanager.AppMessage;
+import com.psi.common.transactions.McomSubscriber;
+import com.psi.common.transactions.Message;
+import com.psi.common.transactions.MessageId;
+import com.psi.common.transactions.Messanger;
+
+@Stateless
+@Remote(AppManagerFunction.class)
+public class MobileTransactionHandler implements AppManagerFunction {
+    
+    private static final Logger log = Logger.getLogger(MobileTransactionHandler.class);
+    @Override
+    public String processTransaction(String refid, String msisdn, String message, Map<String, String> syntax) {
+        return manageTransaction(refid, msisdn, message, syntax).getMessage();
+    }
+    
+    @Override
+    public AppMessage manageTransaction(String refid, String msisdn, String message, Map<String, String> syntax) {
+        String ret = null;
+        String key = syntax.get("key");
+        String type = syntax.get("type");
+        String version = syntax.get("version");
+        String language = syntax.get("language");
+        Message msg = Messanger.getMessage(MessageId.SYSTEM_BUSY, msisdn, "<refid>", refid);
+        ret = key + ":99:" + refid + ":" + msg.getMessage().toString();
+        try {
+            ValidateMobileTransaction validate = new ValidateMobileTransaction();
+            McomSubscriber originator = McomSubscriber.getMcomSubscriber(msisdn);
+            if(!originator.isSubscribed()) {
+                ret = key + ":99:" + refid + ":" + Messanger.getMessage(MessageId.UNAUTHORISED_ERROR, originator).toString();
+                return new Message(0,0,ret);
+            }
+            if(!"ACTIVE".equalsIgnoreCase(originator.getProperty("STATUS"))) {
+                ret = key + ":99:" + refid + ":" + Messanger.getMessage(MessageId.INACTIVE_ERROR, originator).toString();
+                return new Message(0,0,ret);
+            }
+            if(!validate.isValidVersion(version)) {
+                ret = key + ":98:" + refid + ":La version n'est pas mise a jour";
+                return new Message(0,0,ret);
+            }
+            if(!validate.isValidTransaction(type, originator.getProperty(McomSubscriber.PROP_TYPE))) {
+                ret = key + ":97:" + refid + ":Vous n'etes pas autorise";
+                return new Message(0,0,ret);
+            }
+            ret = key + ":0:" + refid + ":Procéder";
+            return new Message(0,0,ret);
+        }catch (Exception e) {
+            log.error("MobileHandler : error" + msisdn, e);
+            return new Message(0,0,ret);
+        }
+    }
+}

+ 23 - 0
GabonTelMobicashMobileAppHelper/src/main/java/com/psi/gabontel/mobileapp/helper/ValidateMobileTransaction.java

@@ -0,0 +1,23 @@
+package com.psi.gabontel.mobileapp.helper;
+
+import com.psi.common.db.DataRowCollection;
+import com.psi.common.db.DbWrapper;
+
+public class ValidateMobileTransaction {
+    private static final DbWrapper db = DbWrapper.getInstance();
+    public boolean isValidTransaction(String type, String accounttype) {
+        DataRowCollection row = db.QueryDataRows("SELECT * FROM TBLMOBILEALLOWEDTYPE WHERE STATUS = 1 AND MEDIUM = ? AND ACCTTYPE = ?", type, accounttype);
+        if(row.size() > 0) {
+            return true;
+        }
+        return false;
+    }
+    
+    public boolean isValidVersion(String version) {
+        String row = db.QueryScalar("SELECT MVERSION FROM TBLSYSTEMINFO","0");
+        if(row.equals(version)) {
+            return true;
+        }
+        return false;
+    }
+}