Subversion Repositories SmartDukaan

Rev

Rev 11038 | Rev 12154 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
9269 amit.gupta 1
package in.shop2020.mobileapi.serving.utils;
9103 anupam.sin 2
 
3
import in.shop2020.config.ConfigException;
4
import in.shop2020.model.v1.order.LineItem;
5
import in.shop2020.model.v1.order.Order;
6
import in.shop2020.model.v1.order.RechargeOrderStatus;
7
import in.shop2020.model.v1.order.RechargePlan;
8
import in.shop2020.model.v1.order.RechargeType;
9
import in.shop2020.model.v1.user.Cart;
10
import in.shop2020.model.v1.user.Line;
11
import in.shop2020.thrift.clients.TransactionClient;
12
import in.shop2020.thrift.clients.config.ConfigClient;
13
 
14
import java.util.ArrayList;
15
import java.util.Arrays;
16
import java.util.Collections;
17
import java.util.HashMap;
18
import java.util.List;
19
import java.util.Map;
20
 
21
import javax.mail.internet.AddressException;
22
import javax.mail.internet.InternetAddress;
23
 
24
import org.apache.commons.lang.StringUtils;
25
import org.apache.log4j.Logger;
26
 
27
public class Utils {
28
    private static Logger logger = Logger.getLogger(Utils.class);
29
 
30
	public static final String EXPORT_ENTITIES_PATH = getExportPath();
31
	public static final String EXPORT_JAVASCRIPT_CONTENT_PATH = "/var/lib/tomcat6/webapps/export/javascripts/";
11038 amit.gupta 32
	public static final String STATIC_SERVER_PATH = "http://static1.saholic.com/images/mobileapi/";
9103 anupam.sin 33
	public static final long ROOT_CATEGORY = 10000;
34
	public static final long MOBILE_PHONES_CATEGORY = 10001;
35
	public static final long MOBILE_ACCESSORIES_CATEGORY = 10011;
36
	public static final long TABLETS_CATEGORY = 10010;
37
    public static final long LAPTOPS_CATEGORY = 10050;
38
    public static final long CAMERAS_CATEGORY = 11001;
39
 
40
    static Map<Long, String> providersMap;
41
    static Map<Long, String> mobileProvidersMap;
42
    static Map<Long, String> dthProvidersMap;
43
    static Map<Long, List<RechargePlan>> operatorPlanMap = new HashMap<Long, List<RechargePlan>>(); 
44
    private static Map<String, Map<String, String>> uriOperatorMap = new HashMap<String, Map<String,String>>();
45
 
46
    public static final List<RechargeOrderStatus> refundableRechargeStatusList = new ArrayList<RechargeOrderStatus>(Arrays.asList(new RechargeOrderStatus[] 
47
                                                                                                                                                     {RechargeOrderStatus.RECHARGE_FAILED, 
48
                                                                                                                                                      RechargeOrderStatus.RECHARGE_FAILED_REFUNDED}));
49
 
50
    public static Map<RechargeOrderStatus, String> statusMap = new HashMap<RechargeOrderStatus, String>();
51
 
52
    //public static final List<String> multiValuedFacet = Arrays.asList("F_50006");
53
 
9269 amit.gupta 54
    public static final  List<String>rootfacetDefIDs = Arrays.asList("F_50010","F_50011", "F_50001", "F_50028");
9103 anupam.sin 55
    public static final  String availabilityFacet = "F_50028";
56
	public static final Map<String, String> FACET_LABEL_MAP = Collections.unmodifiableMap(
57
			new HashMap<String, String>(){
58
				/**
59
				 * 
60
				 */
61
				private static final long serialVersionUID = 1L;
62
 
63
				{
64
					put("F_50010","Category");
65
					put("F_50011","Sub Category");
66
					put("F_50002","Price");
67
					put("F_50001","Brand");
68
					put("F_50006","Data Connectivity");
69
					put("F_50007","Camera Resolution");
70
					put("F_50012","Display");
71
					put("F_50013","Operating System");
72
					put("F_50014","RAM");
73
					put("F_50015","Storage Capacity");
74
					put("F_50017","Processor");
75
					put("F_50018","Capacity");
76
					put("F_50019","Class");
77
					put("F_50020","Capacity");
78
					put("F_50021","Capacity");
79
					put("F_50022","Type");
80
					put("F_50023","Interface");
81
					//Resolution for Composite
82
					put("F_50024","Resolution");
83
					put("F_50025","Optical Zoom");
84
					put("F_50026","Display Size");
85
					//Resolution for DSLR
86
					put("F_50027","Resolution");
87
					put("F_50028","Availability");
88
					put("F_50031","Operating System");
89
					put("F_50032","Screen Size");	//Screen size for mobiles
90
					put("F_50033","Screen Size");	//Screen size for laptop
91
					put("F_50034","Screen Size"); 	//Screen size for tablets
92
					put("F_50035","Operating System"); 	//Screen size for tablets
93
					put("F_50036","Camera Resolution"); 	//Screen size for tablets
94
					put("F_50037","Voice Call Facility"); 	//Screen size for tablets
95
					put("F_50028","Availability");
9475 amit.gupta 96
					put("F_50038","Mobile Type");
12151 amit.gupta 97
					put("F_50039", "Your Deals");
9103 anupam.sin 98
				}
99
		});
100
 
101
    static {
102
        statusMap.put(RechargeOrderStatus.PAYMENT_FAILED, "Payment Unsuccessful");
103
        statusMap.put(RechargeOrderStatus.PAYMENT_SUCCESSFUL, "Processing Recharge");
104
        statusMap.put(RechargeOrderStatus.RECHARGE_FAILED, "Recharge Failed");
105
        statusMap.put(RechargeOrderStatus.RECHARGE_FAILED_REFUNDED, "Recharge Failed");
106
        statusMap.put(RechargeOrderStatus.RECHARGE_SUCCESSFUL, "Recharge Successful");
107
        statusMap.put(RechargeOrderStatus.REFUNDED, "Amount Refunded");
108
        statusMap.put(RechargeOrderStatus.PARTIALLY_REFUNDED, "Amount Refunded");
109
 
110
        TransactionClient tcl;
111
        try {
112
            tcl = new TransactionClient();
113
            mobileProvidersMap = tcl.getClient().getServiceProviders(RechargeType.MOBILE, true);
114
            dthProvidersMap = tcl.getClient().getServiceProviders(RechargeType.DTH, true);
115
//            providersMap.putAll(mobileProvidersMap);
116
//            providersMap.putAll(dthProvidersMap);
117
            for (Long operatorId : mobileProvidersMap.keySet()) {
118
                List<RechargePlan> plans = tcl.getClient().getPlansForOperator(operatorId);
119
                if (!plans.isEmpty()) {
120
                    operatorPlanMap.put(operatorId, plans);
121
                }
122
            }
123
            for (Long operatorId : mobileProvidersMap.keySet()) {
124
            	Map<String,String> valueMap = new HashMap<String,String>();
125
            	valueMap.put("Id", operatorId+"");
126
                valueMap.put("Name", mobileProvidersMap.get(operatorId)+"");
127
                valueMap.put("ServiceType", "1");
128
                valueMap.put("ServiceName", "Prepaid Mobile");
129
                uriOperatorMap.put(mobileProvidersMap.get(operatorId).toLowerCase().trim().replace(" ", "-")+"-online-recharge", valueMap);
130
            }
131
            for (Long operatorId : dthProvidersMap.keySet()) {
132
            	Map<String,String> valueMap = new HashMap<String,String>();
133
            	valueMap.put("Id", operatorId+"");
134
            	valueMap.put("Name", dthProvidersMap.get(operatorId)+"");
135
                valueMap.put("ServiceType", "2");
136
                valueMap.put("ServiceName", "DTH TV");
137
                uriOperatorMap.put(dthProvidersMap.get(operatorId).toLowerCase().trim().replace(" ", "-")+"-online-recharge", valueMap);
138
            }
139
 
140
            Map<String,String> valueMap = new HashMap<String,String>();
141
            valueMap.put("Id", "0");
142
	    	valueMap.put("Name", "Mobile and DTH");
143
	        valueMap.put("ServiceType", "1");
144
	        valueMap.put("ServiceName", "");
145
	        uriOperatorMap.put("recharge", valueMap);
146
//            providersMap.putAll(tcl.getClient().getServiceProviders(RechargeType.DTH));
147
 
148
 
149
        } catch (Exception e) {
150
            logger.error("Could not get providers", e);
151
        }
152
    }
153
 
154
 
155
 
156
	private static String getExportPath(){
157
		String exportPath=null;
158
		ConfigClient client = ConfigClient.getClient();
159
		try{
160
			exportPath = client.get("export_entities_path");
161
		}catch(ConfigException ce){
162
			logger.error("Unable to read export path from the config client: ", ce);
163
			logger.warn("Setting the default export path");
164
			exportPath = "/var/lib/tomcat6/webapps/export/html/entities/";
165
		}
166
		return exportPath;
167
	}
168
 
169
	public static boolean validatePin(String pincode) {
170
		int pin;
171
		try {
172
			pin = Integer.parseInt(pincode);
173
		}
174
		catch (NumberFormatException e) {
175
			return false;
176
		}
177
 
178
		if (pin < 100000 || pin > 999999) {
179
			return false;
180
		}
181
		return true;
182
	}
183
 
184
	public static boolean isValidEmail(String emailAddress)	{
185
 
186
		if(emailAddress == null || emailAddress.isEmpty())	{
187
			return false;
188
		}
189
		try {
190
			InternetAddress address = new InternetAddress(emailAddress, true);
191
			address.validate();
192
			return true;
193
 
194
		} catch (AddressException e) {
195
			logger.error(emailAddress + " is not valid email address ", e);
196
			return false;
197
		}
198
	}
199
 
200
	public static boolean validatePhone(String phone) {
201
		long iPhone;
202
		try {
203
    		iPhone = Long.parseLong(phone);
204
		}
205
		catch (NumberFormatException e) {
206
			return false;
207
		}
208
 
209
		if (iPhone < 1000000000l || iPhone > 9999999999l) {
210
			return false;
211
		}
212
		return true;
213
	}
214
 
215
	public static String getItemIdStringInCart(Cart cart) {
216
	    List<String> itemIds = new ArrayList<String>();
217
        for (Line line : cart.getLines()) {
218
            itemIds.add(Long.toString(line.getItemId()));
219
        }
220
        return StringUtils.join(itemIds, '_');
221
    }
222
 
223
	public static String getItemIdStringFromOrders(List<Order> orders) {
224
        List<String> itemIds = new ArrayList<String>();
225
        if (orders != null) {
226
            for (Order order : orders) {
227
                for (LineItem lItem : order.getLineitems()) {
228
                    itemIds.add(Long.toString(lItem.getItem_id()));
229
                }
230
            }
231
        }
232
        return StringUtils.join(itemIds, '_');
233
    }
234
 
235
 
236
 
237
	public static String getRechargeProviderName(long providerId) {
238
            return providersMap.get(providerId);
239
	}
240
 
241
    public static Map<Long, String> getMobileProvidersMap() {
242
        return mobileProvidersMap;
243
    }
244
 
245
    public static Map<Long, String> getDthProvidersMap() {
246
        return dthProvidersMap;
247
    }
248
 
249
    public static Map<Long, List<RechargePlan>> getOperatorPlanMap() {
250
        return operatorPlanMap;
251
    }
252
 
253
    public static Map<String, Map<String, String>> getUriOperatorMap(){
254
    	return uriOperatorMap;
255
	}
256
 
257
    public static Map<String, String> getOperatorByUri(String uri){
258
    	return uriOperatorMap.get(uri);
259
	}
260
}