Subversion Repositories SmartDukaan

Rev

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