Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
7283 kshitij.so 1
package in.shop2020.support.controllers;
2
 
7524 kshitij.so 3
import java.io.File;
4
import java.io.IOException;
7365 kshitij.so 5
import java.util.HashMap;
7283 kshitij.so 6
import java.util.List;
7
import java.util.Map;
8
 
9
import javax.servlet.ServletRequest;
10
import javax.servlet.http.HttpServletRequest;
11
 
12
import in.shop2020.model.v1.catalog.Amazonlisted;
13
import in.shop2020.model.v1.catalog.CatalogServiceException;
14
import in.shop2020.model.v1.catalog.Item;
15
import in.shop2020.model.v1.inventory.AmazonInventorySnapshot;
16
import in.shop2020.model.v1.catalog.CatalogService.Client;
17
import in.shop2020.model.v1.inventory.InventoryServiceException;
18
import in.shop2020.thrift.clients.CatalogClient;
19
import in.shop2020.thrift.clients.InventoryClient;
7365 kshitij.so 20
import in.shop2020.thrift.clients.LogisticsClient;
21
import in.shop2020.logistics.DeliveryType;
22
import in.shop2020.logistics.LogisticsInfo;
23
import in.shop2020.logistics.LogisticsServiceException;
24
import in.shop2020.logistics.PickUpType;
7283 kshitij.so 25
 
7524 kshitij.so 26
import org.apache.commons.io.FileUtils;
7365 kshitij.so 27
import org.apache.commons.lang.xwork.StringUtils;
7283 kshitij.so 28
import org.apache.struts2.convention.annotation.Result;
29
import org.apache.struts2.convention.annotation.Results;
30
import org.apache.struts2.interceptor.ServletRequestAware;
31
import org.apache.thrift.TException;
32
import org.slf4j.Logger;
33
import org.slf4j.LoggerFactory;
34
 
35
import com.opensymphony.xwork2.ValidationAwareSupport;
36
 
37
@SuppressWarnings("serial")
38
@Results({
7524 kshitij.so 39
	@Result(name = "redirect", location = "${url}", type = "redirect"),
40
	@Result(name="authsuccess", type="redirectAction", params = {"actionName" , "reports"})
41
})
42
public class AmazonListController extends ValidationAwareSupport implements ServletRequestAware {
7283 kshitij.so 43
 
44
	private static Logger logger = LoggerFactory.getLogger(AmazonListController.class);
45
 
46
	private ServletRequest request;
47
	private String url;
48
	private String id;
49
	private String itemId;
50
	private String isFba;
51
	private String isNonFba;
52
	private String isInventoryOverride;
53
	private String fbaPrice;
54
	private String sellingPrice;
55
	private String saholicPrice;
7365 kshitij.so 56
	private String isTime;
57
	private String handlingTime;
58
	private String customHandlingTime;
7461 kshitij.so 59
	private String holdInventory;
60
	private String defaultInventory;
7524 kshitij.so 61
	private String fileUploadFileName;
62
	private String fileUploadContentType;
63
	private File file;
7283 kshitij.so 64
 
65
	public String index() {
66
		return "index";
67
	}
68
 
69
 
70
	public List<Amazonlisted> fetchItems() throws TException {
7408 kshitij.so 71
		Client CatalogClient = new CatalogClient("catalog_service_server_host_amazon","catalog_service_server_port").getClient();
7283 kshitij.so 72
		return CatalogClient.getAllAmazonListedItems();
73
	}
74
 
7408 kshitij.so 75
	public Amazonlisted fetchItemDetail() throws NumberFormatException, TException {
76
		Client CatalogClient = new CatalogClient("catalog_service_server_host_amazon","catalog_service_server_port").getClient();
7283 kshitij.so 77
		return CatalogClient.getAmazonItemDetails(Long.valueOf(id));
78
	}
79
 
7408 kshitij.so 80
	public Item getSaholicItem(String id) throws NumberFormatException, CatalogServiceException, TException {
81
		Client CatalogClient = new CatalogClient("catalog_service_server_host_amazon","catalog_service_server_port").getClient();
7283 kshitij.so 82
		return CatalogClient.getItem(Long.valueOf(id));
83
	}
7365 kshitij.so 84
 
85
 
86
 
7283 kshitij.so 87
	public String update() throws NumberFormatException, TException{
7408 kshitij.so 88
		Client CatalogClient = new CatalogClient("catalog_service_server_host_amazon","catalog_service_server_port").getClient();
7283 kshitij.so 89
		if ( Double.valueOf(fbaPrice) > Double.valueOf(saholicPrice) || Double.valueOf(sellingPrice) > Double.valueOf(saholicPrice) ) {
7365 kshitij.so 90
			addActionError("Failed To Do Changes");
7283 kshitij.so 91
		}
92
		else {
7365 kshitij.so 93
			boolean flag=false;
94
			long delay = Long.valueOf(handlingTime);
95
			if ( Boolean.valueOf(isTime)) {
96
				flag = true;
97
				delay = Long.valueOf(customHandlingTime);
98
			}
7461 kshitij.so 99
			changeItemInventory();
7365 kshitij.so 100
			CatalogClient.updateAmazonItemDetails(Long.valueOf(itemId),Double.valueOf(fbaPrice),Double.valueOf(sellingPrice),Boolean.valueOf(isFba),Boolean.valueOf(isNonFba),Boolean.valueOf(isInventoryOverride),delay,flag);
7283 kshitij.so 101
		}
102
		setUrl("/amazon-list/");
103
		return "redirect";
104
 
105
	}
106
 
7524 kshitij.so 107
	public String upload() throws IOException {
108
		File fileToCreate = new File("/tmp/", "Amazon-shipping.xls");
109
		FileUtils.copyFile(this.file, fileToCreate);
110
		return "authsuccess";
111
	}
112
 
7461 kshitij.so 113
	private void changeItemInventory() throws NumberFormatException, TException {
114
		Client CatalogClient = new CatalogClient("catalog_service_server_host_amazon","catalog_service_server_port").getClient();
7524 kshitij.so 115
 
7461 kshitij.so 116
		if (StringUtils.isEmpty(holdInventory)) {
117
			holdInventory = "0";
118
		}
119
		if (StringUtils.isEmpty(defaultInventory)) {
120
			defaultInventory = "0";
121
		}
7524 kshitij.so 122
 
7461 kshitij.so 123
		CatalogClient.updateItemInventory(Long.valueOf(itemId),Long.valueOf(holdInventory),Long.valueOf(defaultInventory));
124
	}
125
 
126
 
7283 kshitij.so 127
	public Map<Long, Long> getAvailableItemInventory(String itemId) throws NumberFormatException, InventoryServiceException, TException{
128
		InventoryClient inventoryServiceClient = new InventoryClient();
129
		in.shop2020.model.v1.inventory.InventoryService.Client inventoryClient = inventoryServiceClient.getClient();
130
		in.shop2020.model.v1.inventory.ItemInventory thriftItemInventory = inventoryClient.getItemInventoryByItemId(Long.valueOf(itemId));
131
		return thriftItemInventory.getAvailability();
132
 
133
	}
134
 
135
	public Map<Long, Long> getReservedItemInventory(String itemId) throws NumberFormatException, InventoryServiceException, TException{
136
		InventoryClient inventoryServiceClient = new InventoryClient();
137
		in.shop2020.model.v1.inventory.InventoryService.Client inventoryClient = inventoryServiceClient.getClient();
138
		in.shop2020.model.v1.inventory.ItemInventory thriftItemInventory = inventoryClient.getItemInventoryByItemId(Long.valueOf(itemId));
139
		return thriftItemInventory.getReserved();
140
 
141
	}
142
 
143
	public String getWarehouseName(String warehouseId) throws NumberFormatException, TException { 
144
		InventoryClient inventoryServiceClient = new InventoryClient();
145
		return inventoryServiceClient.getClient().getWarehouseName(Long.valueOf(warehouseId));
146
	}
147
 
148
	public AmazonInventorySnapshot getInventoryForAmazonItem(String itemId) throws NumberFormatException, TException {
149
		InventoryClient inventoryServiceClient = new InventoryClient();
7365 kshitij.so 150
		try { 
151
			return inventoryServiceClient.getClient().getAmazonInventoryForItem(Long.valueOf(itemId));
152
		}
153
		catch (Exception e){
154
			return null;
155
		}
7283 kshitij.so 156
	}
157
 
7365 kshitij.so 158
	public Long getTimetoShip(String itemId) throws LogisticsServiceException, TException{
159
		LogisticsClient logisticsClient = new LogisticsClient();
160
		return logisticsClient.getClient().getLogisticsInfo("110001", Long.valueOf(itemId), DeliveryType.COD, PickUpType.COURIER).getShippingTime();
161
 
162
	}
163
 
164
	public  Map<Long, String> getAliveItemMap() throws TException{
7408 kshitij.so 165
		Client CatalogClient = new CatalogClient("catalog_service_server_host_amazon","catalog_service_server_port").getClient();
7365 kshitij.so 166
		List<Item> itemList = CatalogClient.getAllAliveItems();
167
		Map<Long, String> itemMap = new HashMap<Long, String>();
168
		for (Item o : itemList) {
169
			itemMap.put((Long) o.getId(), (String) o.getBrand()+" "+o.getModelName()+" "+o.getModelNumber()+" "+o.getColor());
170
		}
171
		return itemMap;
172
	}
173
 
7283 kshitij.so 174
	public String edit() {
175
		return "edit";
176
	}
177
 
178
	public String show() {
179
		return "show";
180
	}
181
 
182
	public String editNew() {
183
		return "editNew";
184
	}
185
 
186
	public void setId(String id) {
187
		this.id = id;
188
	}
189
 
190
	public void setUrl(String url) {
191
		this.url = url;
192
	}
193
 
194
	public String getUrl() {
195
		return url;
196
	}
197
 
198
	public String getId() {
199
		return id;
200
	}
201
 
202
	public void setItemId(String itemId) {
203
		this.itemId = itemId;
204
	}
205
 
206
	public String getItemId() {
207
		return itemId;
208
	}
209
 
210
	public void setIsFba(String isFba) {
211
		this.isFba = isFba;
212
	}
213
 
214
	public String getIsFba() {
215
		return isFba;
216
	}
217
 
218
	public void setIsNonFba(String isNonFba) {
219
		this.isNonFba = isNonFba;
220
	}
221
 
222
	public String getIsNonFba() {
223
		return isNonFba;
224
	}
225
 
226
	public void setIsInventoryOverride(String isInventoryOverride) {
227
		this.isInventoryOverride = isInventoryOverride;
228
	}
229
 
230
	public String getIsInventoryOverride() {
231
		return isInventoryOverride;
232
	}
233
 
234
	public void setSellingPrice(String sellingPrice) {
235
		this.sellingPrice = sellingPrice;
236
	}
237
 
238
	public String getSellingPrice() {
239
		return sellingPrice;
240
	}
241
 
242
	public void setFbaPrice(String fbaPrice) {
243
		this.fbaPrice = fbaPrice;
244
	}
245
 
246
	public String getFbaPrice() {
247
		return fbaPrice;
248
	}
7365 kshitij.so 249
 
7283 kshitij.so 250
	public void setSaholicPrice(String saholicPrice) {
251
		this.saholicPrice = saholicPrice;
252
	}
253
 
254
	public String getSaholicPrice() {
255
		return saholicPrice;
256
	}
257
 
7365 kshitij.so 258
	public void setIsTime(String isTime){
259
		this.isTime = isTime;
260
	}
261
 
7461 kshitij.so 262
	public String getIsTime(){
7365 kshitij.so 263
		return isTime;
264
	}
265
 
266
	public void setHandlingTime(String handlingTime){
267
		this.handlingTime = handlingTime;
268
	}
269
 
7461 kshitij.so 270
	public String getHandlingTime(){
7365 kshitij.so 271
		return handlingTime;
272
	}
273
 
274
	public void setCustomHandlingTime(String customHandlingTime){
275
		this.customHandlingTime = customHandlingTime;
276
	}
277
 
7461 kshitij.so 278
	public String getCustomHandlingTime(){
7365 kshitij.so 279
		return customHandlingTime;
280
	}
7524 kshitij.so 281
 
7461 kshitij.so 282
	public void setHoldInventory(String holdInventory){
283
		this.holdInventory = holdInventory;
284
	}
7365 kshitij.so 285
 
7461 kshitij.so 286
	public String getHoldInventory(){
287
		return holdInventory;
288
	}
7524 kshitij.so 289
 
7461 kshitij.so 290
	public void setDefaultInventory(String defaultInventory){
291
		this.defaultInventory = defaultInventory;
292
	}
293
 
294
	public String getDefaultInventory(){
295
		return defaultInventory;
296
	}
297
 
7524 kshitij.so 298
	public File getFile() {
299
		return file;
300
	}
301
 
302
	public void setFile(File file) {
303
		this.file = file;
304
	}
305
 
306
	public String getFileUploadContentType() {
307
		return fileUploadContentType;
308
	}
309
 
310
	public void setFileUploadContentType(String fileUploadContentType) {
311
		this.fileUploadContentType = fileUploadContentType;
312
	}
313
 
314
	public String getFileUploadFileName() {
315
		return fileUploadFileName;
316
	}
317
 
318
	public void setFileUploadFileName(String fileUploadFileName) {
319
		this.fileUploadFileName = fileUploadFileName;
320
	}
321
 
7283 kshitij.so 322
	@Override
323
	public void setServletRequest(HttpServletRequest request) {
324
		this.request = request;
325
 
326
	}
327
 
328
	public static void main(String[] args) throws NumberFormatException, InventoryServiceException, TException {
329
		AmazonListController call = new AmazonListController();
7365 kshitij.so 330
		System.out.println(call.getInventoryForAmazonItem("5"));
7283 kshitij.so 331
	}
332
}