Blame | Last modification | View Log | RSS feed
package in.shop2020.serving.controllers;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import in.shop2020.model.v1.order.EmiScheme;import in.shop2020.model.v1.order.TransactionService.Client;import in.shop2020.thrift.clients.TransactionClient;import org.apache.log4j.Logger;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;public class EmiInfoController extends BaseController{/****/private static final long serialVersionUID = 1L;private static Logger log = Logger.getLogger(Class.class);private TransactionClient transactionClient = null;private Client client;private static List<EmiScheme> emiSchemes = null;private static JSONObject emiTableObj = null;public String index() throws JSONException {HashMap<String, List<EmiScheme>> emiMap = null;if (emiSchemes==null){log.info("Fetching emi schemes from db");try {transactionClient = new TransactionClient();client = transactionClient.getClient();emiSchemes = client.getAvailableEmiSchemes();emiMap = new HashMap<String,List<EmiScheme>>();for (EmiScheme scheme : emiSchemes){if (emiMap.containsKey(scheme.getBankName())) {List<EmiScheme> listScheme = emiMap.get(scheme.getBankName());listScheme.add(scheme);emiMap.put(scheme.getBankName(), listScheme);}else{List<EmiScheme> listScheme = new ArrayList<EmiScheme>();listScheme.add(scheme);emiMap.put(scheme.getBankName(), listScheme);}}} catch (Exception e) {log.error("Unable to initialize the tranaction service client or unable to get emi schemes", e);}emiTableObj = new JSONObject();JSONArray arr = new JSONArray();for (String set : emiMap.keySet()){JSONObject obj = new JSONObject();obj.put("Bank", set);for (EmiScheme scheme :emiMap.get(set)){obj.put("T"+scheme.getTenureDescription().replace(" ", ""), scheme.getInterestRate());}arr.put(obj);}emiTableObj.put("BankCharges", arr);JSONArray arr1 = new JSONArray();for (String set : emiMap.keySet()){JSONObject obj = new JSONObject();obj.put("Bank", set);for (EmiScheme scheme :emiMap.get(set)){obj.put("T"+scheme.getTenureDescription().replace(" ", ""), getEmiAmount(scheme));}arr1.put(obj);}emiTableObj.put("Value", arr1);}return "index";}public double getEmiAmount(EmiScheme scheme){double interestRate = scheme.getInterestRate()/12/100;double emiAmount = 10000*interestRate*Math.pow((1+interestRate), scheme.getTenure())/(Math.pow((1+interestRate), scheme.getTenure())-1);return Math.ceil(emiAmount);}public String getEmiDetailsInJson() {return EmiInfoController.emiTableObj.toString();}public static void main(String[] args) throws JSONException{EmiInfoController obj = new EmiInfoController();obj.index();}}