Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
419 rajveer 1
package in.shop2020.serving.utils;
2
 
1453 chandransh 3
import in.shop2020.config.ConfigException;
12620 amit.gupta 4
import in.shop2020.model.v1.catalog.ExclusiveAffiliateItemInfo;
3209 vikas 5
import in.shop2020.model.v1.order.LineItem;
6
import in.shop2020.model.v1.order.Order;
6603 anupam.sin 7
import in.shop2020.model.v1.order.RechargeOrderStatus;
6178 anupam.sin 8
import in.shop2020.model.v1.order.RechargePlan;
6135 anupam.sin 9
import in.shop2020.model.v1.order.RechargeType;
3209 vikas 10
import in.shop2020.model.v1.user.Cart;
11
import in.shop2020.model.v1.user.Line;
12620 amit.gupta 12
import in.shop2020.thrift.clients.CatalogClient;
6135 anupam.sin 13
import in.shop2020.thrift.clients.TransactionClient;
1453 chandransh 14
import in.shop2020.thrift.clients.config.ConfigClient;
419 rajveer 15
 
3209 vikas 16
import java.util.ArrayList;
6603 anupam.sin 17
import java.util.Arrays;
6998 amit.gupta 18
import java.util.Collections;
12620 amit.gupta 19
import java.util.Date;
6178 anupam.sin 20
import java.util.HashMap;
3209 vikas 21
import java.util.List;
6135 anupam.sin 22
import java.util.Map;
3209 vikas 23
 
4891 varun.gupt 24
import javax.mail.internet.AddressException;
25
import javax.mail.internet.InternetAddress;
26
 
3209 vikas 27
import org.apache.commons.lang.StringUtils;
28
import org.apache.log4j.Logger;
29
 
419 rajveer 30
public class Utils {
2942 chandransh 31
    private static Logger logger = Logger.getLogger(Utils.class);
32
 
4892 varun.gupt 33
	public static final String EXPORT_ENTITIES_PATH = getExportPath();
5084 phani.kuma 34
	public static final String EXPORT_JAVASCRIPT_CONTENT_PATH = "/var/lib/tomcat6/webapps/export/javascripts/";
2306 vikas 35
	public static final long ROOT_CATEGORY = 10000;
36
	public static final long MOBILE_PHONES_CATEGORY = 10001;
37
	public static final long MOBILE_ACCESSORIES_CATEGORY = 10011;
3656 mandeep.dh 38
	public static final long TABLETS_CATEGORY = 10010;
39
    public static final long LAPTOPS_CATEGORY = 10050;
5873 amit.gupta 40
    public static final long CAMERAS_CATEGORY = 11001;
6135 anupam.sin 41
 
42
    static Map<Long, String> providersMap;
6178 anupam.sin 43
    static Map<Long, String> mobileProvidersMap;
44
    static Map<Long, String> dthProvidersMap;
12620 amit.gupta 45
    static Map<Long, ExclusiveAffiliateItemInfo> exclusiveAffiliateItems = null;
6178 anupam.sin 46
    static Map<Long, List<RechargePlan>> operatorPlanMap = new HashMap<Long, List<RechargePlan>>(); 
6204 rajveer 47
    private static Map<String, Map<String, String>> uriOperatorMap = new HashMap<String, Map<String,String>>();
12620 amit.gupta 48
    static long fifteenMinsCounter = 0l; 
6204 rajveer 49
 
6603 anupam.sin 50
    public static final List<RechargeOrderStatus> refundableRechargeStatusList = new ArrayList<RechargeOrderStatus>(Arrays.asList(new RechargeOrderStatus[] 
51
                                                                                                                                                     {RechargeOrderStatus.RECHARGE_FAILED, 
8932 anupam.sin 52
                                                                                                                                                      RechargeOrderStatus.RECHARGE_FAILED_REFUNDED}));
6603 anupam.sin 53
 
54
    public static Map<RechargeOrderStatus, String> statusMap = new HashMap<RechargeOrderStatus, String>();
55
 
6998 amit.gupta 56
    //public static final List<String> multiValuedFacet = Arrays.asList("F_50006");
6887 amit.gupta 57
 
6998 amit.gupta 58
    public static final  List<String>rootfacetDefIDs = Arrays.asList("F_50010","F_50011","F_50002", "F_50001", "F_50028");
8878 amit.gupta 59
    public static final  String availabilityFacet = "F_50028";
13425 amit.gupta 60
    @SuppressWarnings("serial")
61
	public static final Map<String, String> NET_BANKING_CODES_MAP = Collections.unmodifiableMap(
62
    		new HashMap<String, String>(){
63
	    		{
64
	    			put("1004","AXIB");
65
	    			put("1127","CITNB");
66
	    			put("1135","CRPB");
67
	    			put("1029","FEDB");
68
	    			put("1007","HDFB");
69
	    			put("1016","ICIB");
70
	    			put("1147","CBIB");
71
	    			put("1146","YESB");
72
	    			put("1214","BOIB");
73
	    			put("1215","CUBB");
74
	    			put("1216","UNIB");
75
	    			put("1224","CABB");
76
	    			/*put("1154","");
77
	    			put("1210","");
78
	    			put("1148","");
79
	    			put("1273","");*/
80
	    			put("1015","JAKB");
81
	    			put("1133","KRKB");
82
	    			put("1032","SBIB");
83
	    			put("1034","SBHB");
84
	    			put("1038","SBMB");
85
	    			put("1039","SBTB");
86
	    			put("1143","INDB");
87
	    			put("1212","UBIB");
88
	    			put("1213","INOB");
89
	    			put("1229","BOMB");
90
	    		}
91
    		});
6998 amit.gupta 92
	public static final Map<String, String> FACET_LABEL_MAP = Collections.unmodifiableMap(
93
			new HashMap<String, String>(){
94
				/**
95
				 * 
96
				 */
97
				private static final long serialVersionUID = 1L;
98
 
99
				{
100
					put("F_50010","Category");
101
					put("F_50011","Sub Category");
102
					put("F_50002","Price");
103
					put("F_50001","Brand");
104
					put("F_50006","Data Connectivity");
105
					put("F_50007","Camera Resolution");
12111 amit.gupta 106
					put("F_50039","");
6998 amit.gupta 107
					put("F_50012","Display");
108
					put("F_50013","Operating System");
109
					put("F_50014","RAM");
110
					put("F_50015","Storage Capacity");
111
					put("F_50017","Processor");
112
					put("F_50018","Capacity");
113
					put("F_50019","Class");
114
					put("F_50020","Capacity");
115
					put("F_50021","Capacity");
116
					put("F_50022","Type");
117
					put("F_50023","Interface");
118
					//Resolution for Composite
119
					put("F_50024","Resolution");
120
					put("F_50025","Optical Zoom");
121
					put("F_50026","Display Size");
122
					//Resolution for DSLR
123
					put("F_50027","Resolution");
124
					put("F_50028","Availability");
125
					put("F_50031","Operating System");
126
					put("F_50032","Screen Size");	//Screen size for mobiles
127
					put("F_50033","Screen Size");	//Screen size for laptop
128
					put("F_50034","Screen Size"); 	//Screen size for tablets
7132 amit.gupta 129
					put("F_50035","Operating System"); 	//Screen size for tablets
130
					put("F_50036","Camera Resolution"); 	//Screen size for tablets
8880 amit.gupta 131
					put("F_50037","Voice Call Facility"); 	//Screen size for tablets
9472 amit.gupta 132
					put("F_50038","Mobile Type"); 	//Mobile Type
8880 amit.gupta 133
					put("F_50028","Availability");
6998 amit.gupta 134
				}
135
		});
6135 anupam.sin 136
 
137
    static {
6603 anupam.sin 138
        statusMap.put(RechargeOrderStatus.PAYMENT_FAILED, "Payment Unsuccessful");
139
        statusMap.put(RechargeOrderStatus.PAYMENT_SUCCESSFUL, "Processing Recharge");
140
        statusMap.put(RechargeOrderStatus.RECHARGE_FAILED, "Recharge Failed");
141
        statusMap.put(RechargeOrderStatus.RECHARGE_FAILED_REFUNDED, "Recharge Failed");
142
        statusMap.put(RechargeOrderStatus.RECHARGE_SUCCESSFUL, "Recharge Successful");
143
        statusMap.put(RechargeOrderStatus.REFUNDED, "Amount Refunded");
144
        statusMap.put(RechargeOrderStatus.PARTIALLY_REFUNDED, "Amount Refunded");
145
 
6135 anupam.sin 146
        TransactionClient tcl;
147
        try {
148
            tcl = new TransactionClient();
6206 rajveer 149
            mobileProvidersMap = tcl.getClient().getServiceProviders(RechargeType.MOBILE, true);
150
            dthProvidersMap = tcl.getClient().getServiceProviders(RechargeType.DTH, true);
6178 anupam.sin 151
//            providersMap.putAll(mobileProvidersMap);
152
//            providersMap.putAll(dthProvidersMap);
153
            for (Long operatorId : mobileProvidersMap.keySet()) {
154
                List<RechargePlan> plans = tcl.getClient().getPlansForOperator(operatorId);
155
                if (!plans.isEmpty()) {
156
                    operatorPlanMap.put(operatorId, plans);
157
                }
158
            }
6204 rajveer 159
            for (Long operatorId : mobileProvidersMap.keySet()) {
160
            	Map<String,String> valueMap = new HashMap<String,String>();
161
            	valueMap.put("Id", operatorId+"");
162
                valueMap.put("Name", mobileProvidersMap.get(operatorId)+"");
163
                valueMap.put("ServiceType", "1");
164
                valueMap.put("ServiceName", "Prepaid Mobile");
165
                uriOperatorMap.put(mobileProvidersMap.get(operatorId).toLowerCase().trim().replace(" ", "-")+"-online-recharge", valueMap);
166
            }
167
            for (Long operatorId : dthProvidersMap.keySet()) {
168
            	Map<String,String> valueMap = new HashMap<String,String>();
169
            	valueMap.put("Id", operatorId+"");
170
            	valueMap.put("Name", dthProvidersMap.get(operatorId)+"");
171
                valueMap.put("ServiceType", "2");
172
                valueMap.put("ServiceName", "DTH TV");
173
                uriOperatorMap.put(dthProvidersMap.get(operatorId).toLowerCase().trim().replace(" ", "-")+"-online-recharge", valueMap);
174
            }
6603 anupam.sin 175
 
6204 rajveer 176
            Map<String,String> valueMap = new HashMap<String,String>();
177
            valueMap.put("Id", "0");
178
	    	valueMap.put("Name", "Mobile and DTH");
179
	        valueMap.put("ServiceType", "1");
180
	        valueMap.put("ServiceName", "");
181
	        uriOperatorMap.put("recharge", valueMap);
6178 anupam.sin 182
//            providersMap.putAll(tcl.getClient().getServiceProviders(RechargeType.DTH));
6603 anupam.sin 183
 
184
 
6135 anupam.sin 185
        } catch (Exception e) {
186
            logger.error("Could not get providers", e);
187
        }
188
    }
189
 
190
 
191
 
1453 chandransh 192
	private static String getExportPath(){
1457 chandransh 193
		String exportPath=null;
1453 chandransh 194
		ConfigClient client = ConfigClient.getClient();
195
		try{
196
			exportPath = client.get("export_entities_path");
197
		}catch(ConfigException ce){
2942 chandransh 198
			logger.error("Unable to read export path from the config client: ", ce);
199
			logger.warn("Setting the default export path");
1475 chandransh 200
			exportPath = "/var/lib/tomcat6/webapps/export/html/entities/";
1453 chandransh 201
		}
202
		return exportPath;
203
	}
204
 
12620 amit.gupta 205
 
206
	public static Map<Long, ExclusiveAffiliateItemInfo> getExclusiveAffiliateItems(){
207
		try{
208
			CatalogClient client = new CatalogClient();
12626 amit.gupta 209
			Long currentTime = new Date().getTime();
210
			if(exclusiveAffiliateItems == null || fifteenMinsCounter < currentTime) {
12620 amit.gupta 211
				exclusiveAffiliateItems = client.getClient().getExAffiliateItemInfo();
212
				fifteenMinsCounter = new Date().getTime() + 15*60000;
213
			}
214
		}catch(Exception ce){
215
			logger.error("Unable to fetch exclusive items from catalog", ce);
216
		}
217
		return exclusiveAffiliateItems;
218
	}
219
 
822 vikas 220
	public static boolean validatePin(String pincode) {
221
		int pin;
222
		try {
223
			pin = Integer.parseInt(pincode);
224
		}
225
		catch (NumberFormatException e) {
226
			return false;
227
		}
228
 
229
		if (pin < 100000 || pin > 999999) {
230
			return false;
231
		}
232
		return true;
233
	}
4891 varun.gupt 234
 
235
	public static boolean isValidEmail(String emailAddress)	{
236
 
237
		if(emailAddress == null || emailAddress.isEmpty())	{
238
			return false;
239
		}
240
		try {
241
			InternetAddress address = new InternetAddress(emailAddress, true);
242
			address.validate();
243
			return true;
244
 
245
		} catch (AddressException e) {
246
			logger.error(emailAddress + " is not valid email address ", e);
247
			return false;
248
		}
249
	}
822 vikas 250
 
251
	public static boolean validatePhone(String phone) {
839 vikas 252
		long iPhone;
822 vikas 253
		try {
839 vikas 254
    		iPhone = Long.parseLong(phone);
822 vikas 255
		}
256
		catch (NumberFormatException e) {
257
			return false;
258
		}
839 vikas 259
 
260
		if (iPhone < 1000000000l || iPhone > 9999999999l) {
261
			return false;
262
		}
822 vikas 263
		return true;
264
	}
3209 vikas 265
 
266
	public static String getItemIdStringInCart(Cart cart) {
267
	    List<String> itemIds = new ArrayList<String>();
268
        for (Line line : cart.getLines()) {
269
            itemIds.add(Long.toString(line.getItemId()));
270
        }
271
        return StringUtils.join(itemIds, '_');
272
    }
273
 
274
	public static String getItemIdStringFromOrders(List<Order> orders) {
275
        List<String> itemIds = new ArrayList<String>();
276
        if (orders != null) {
277
            for (Order order : orders) {
278
                for (LineItem lItem : order.getLineitems()) {
279
                    itemIds.add(Long.toString(lItem.getItem_id()));
280
                }
281
            }
282
        }
283
        return StringUtils.join(itemIds, '_');
6135 anupam.sin 284
    }
285
 
286
 
287
 
288
	public static String getRechargeProviderName(long providerId) {
289
            return providersMap.get(providerId);
290
	}
6178 anupam.sin 291
 
292
    public static Map<Long, String> getMobileProvidersMap() {
293
        return mobileProvidersMap;
294
    }
295
 
296
    public static Map<Long, String> getDthProvidersMap() {
297
        return dthProvidersMap;
298
    }
299
 
300
    public static Map<Long, List<RechargePlan>> getOperatorPlanMap() {
301
        return operatorPlanMap;
302
    }
6204 rajveer 303
 
6208 rajveer 304
    public static Map<String, Map<String, String>> getUriOperatorMap(){
305
    	return uriOperatorMap;
306
	}
307
 
6204 rajveer 308
    public static Map<String, String> getOperatorByUri(String uri){
309
    	return uriOperatorMap.get(uri);
310
	}
4891 varun.gupt 311
}