Subversion Repositories SmartDukaan

Rev

Rev 27025 | Rev 27030 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 27025 Rev 27028
Line 1... Line 1...
1
package com.spice.profitmandi.web.controller;
1
package com.spice.profitmandi.web.controller;
2
 
2
 
-
 
3
import java.io.StringWriter;
3
import java.time.LocalDateTime;
4
import java.time.LocalDateTime;
4
import java.time.LocalTime;
5
import java.time.LocalTime;
5
import java.util.ArrayList;
6
import java.util.ArrayList;
6
import java.util.Arrays;
7
import java.util.Arrays;
7
import java.util.Comparator;
8
import java.util.Comparator;
Line 11... Line 12...
11
import java.util.Map;
12
import java.util.Map;
12
import java.util.Optional;
13
import java.util.Optional;
13
import java.util.Set;
14
import java.util.Set;
14
import java.util.stream.Collectors;
15
import java.util.stream.Collectors;
15
 
16
 
-
 
17
import javax.mail.internet.InternetAddress;
-
 
18
import javax.mail.internet.MimeMessage;
16
import javax.servlet.http.HttpServletRequest;
19
import javax.servlet.http.HttpServletRequest;
17
 
20
 
18
import org.apache.commons.lang3.StringUtils;
21
import org.apache.commons.lang3.StringUtils;
19
import org.apache.http.conn.HttpHostConnectException;
22
import org.apache.http.conn.HttpHostConnectException;
20
import org.apache.logging.log4j.LogManager;
23
import org.apache.logging.log4j.LogManager;
21
import org.apache.logging.log4j.Logger;
24
import org.apache.logging.log4j.Logger;
-
 
25
import org.apache.velocity.Template;
-
 
26
import org.apache.velocity.VelocityContext;
-
 
27
import org.apache.velocity.app.VelocityEngine;
22
import org.json.JSONArray;
28
import org.json.JSONArray;
23
import org.json.JSONObject;
29
import org.json.JSONObject;
24
import org.springframework.beans.factory.annotation.Autowired;
30
import org.springframework.beans.factory.annotation.Autowired;
25
import org.springframework.beans.factory.annotation.Value;
31
import org.springframework.beans.factory.annotation.Value;
26
import org.springframework.cache.annotation.Cacheable;
32
import org.springframework.cache.annotation.Cacheable;
27
import org.springframework.http.MediaType;
33
import org.springframework.http.MediaType;
28
import org.springframework.http.ResponseEntity;
34
import org.springframework.http.ResponseEntity;
-
 
35
import org.springframework.mail.javamail.JavaMailSender;
-
 
36
import org.springframework.mail.javamail.MimeMessageHelper;
29
import org.springframework.stereotype.Controller;
37
import org.springframework.stereotype.Controller;
30
import org.springframework.transaction.annotation.Transactional;
38
import org.springframework.transaction.annotation.Transactional;
31
import org.springframework.web.bind.annotation.GetMapping;
39
import org.springframework.web.bind.annotation.GetMapping;
32
import org.springframework.web.bind.annotation.PathVariable;
40
import org.springframework.web.bind.annotation.PathVariable;
33
import org.springframework.web.bind.annotation.PostMapping;
41
import org.springframework.web.bind.annotation.PostMapping;
Line 184... Line 192...
184
	private WebProductListingRepository webProductListingRepository;
192
	private WebProductListingRepository webProductListingRepository;
185
 
193
 
186
	@Autowired
194
	@Autowired
187
	private RoleManager roleManagerService;
195
	private RoleManager roleManagerService;
188
 
196
 
-
 
197
	@Autowired
-
 
198
	private VelocityEngine velocityEngine;
-
 
199
 
-
 
200
	@Autowired
-
 
201
	JavaMailSender mailSender;
-
 
202
 
189
	List<String> filterableParams = Arrays.asList("brand");
203
	List<String> filterableParams = Arrays.asList("brand");
190
 
204
 
191
	@ApiImplicitParams({
205
	@ApiImplicitParams({
192
			@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })
206
			@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })
193
	@RequestMapping(value = "/store/fofo", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
207
	@RequestMapping(value = "/store/fofo", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
Line 439... Line 453...
439
		});
453
		});
440
		CartResponse cr = this.validateCart(storeId, cartItems);
454
		CartResponse cr = this.validateCart(storeId, cartItems);
441
		if (cr.getCartMessageChanged() > 0 || cr.getTotalAmount() != createPendingOrderRequest.getTotalAmount()) {
455
		if (cr.getCartMessageChanged() > 0 || cr.getTotalAmount() != createPendingOrderRequest.getTotalAmount()) {
442
			return responseSender.badRequest("Invalid request");
456
			return responseSender.badRequest("Invalid request");
443
		}
457
		}
-
 
458
 
444
		return responseSender.ok(this.pendingOrderService.createPendingOrder(createPendingOrderRequest, cr));
459
		Map<String, String> returnMap = this.pendingOrderService.createPendingOrder(createPendingOrderRequest, cr);
-
 
460
		Customer customer = customerRepository.selectById(createPendingOrderRequest.getCustomerId());
-
 
461
		Template t = velocityEngine.getTemplate("sms.vm");
-
 
462
		VelocityContext context = new VelocityContext();
-
 
463
 
-
 
464
		context.put("customer", customer.getFirstName());
-
 
465
		context.put("invoiceNumber", returnMap.get("poid"));
-
 
466
		StringWriter writer = new StringWriter();
-
 
467
		t.merge(context, writer);
-
 
468
		sendMailWithAttachments("Order Confirmation", writer.toString());
-
 
469
		return responseSender.ok(returnMap);
-
 
470
 
-
 
471
	}
-
 
472
 
-
 
473
	private void sendMailWithAttachments(String subject, String messageText) throws Exception {
-
 
474
		MimeMessage message = mailSender.createMimeMessage();
-
 
475
		MimeMessageHelper helper = new MimeMessageHelper(message, true);
-
 
476
		String[] email = { "tejbeer.kaur@shop2020.in" };
-
 
477
		helper.setSubject(subject);
-
 
478
		helper.setText(messageText, true);
-
 
479
		helper.setTo(email);
-
 
480
		InternetAddress senderAddress = new InternetAddress("noreply@smartdukaan.com", "Smartdukaan Alerts");
-
 
481
		helper.setFrom(senderAddress);
-
 
482
		mailSender.send(message);
445
 
483
 
446
	}
484
	}
447
 
485
 
448
	@RequestMapping(value = "/store/address", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
486
	@RequestMapping(value = "/store/address", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
449
	@ApiImplicitParams({
487
	@ApiImplicitParams({
Line 766... Line 804...
766
		return dealResponse;
804
		return dealResponse;
767
 
805
 
768
	}
806
	}
769
 
807
 
770
	@GetMapping(value = "store/order-status/{pendingOrderId}")
808
	@GetMapping(value = "store/order-status/{pendingOrderId}")
771
	public ResponseEntity<?> orderStatus(HttpServletRequest request, @PathVariable int pendingOrderId) throws Exception {
809
	public ResponseEntity<?> orderStatus(HttpServletRequest request, @PathVariable int pendingOrderId)
-
 
810
			throws Exception {
772
		PendingOrder pendingOrder = pendingOrderRepository.selectById(pendingOrderId);
811
		PendingOrder pendingOrder = pendingOrderRepository.selectById(pendingOrderId);
773
		List<PendingOrderItem> pendingOrderItems = pendingOrderItemRepository.selectByOrderId(pendingOrder.getId());
812
		List<PendingOrderItem> pendingOrderItems = pendingOrderItemRepository.selectByOrderId(pendingOrder.getId());
774
		List<Integer> catalogIds = new ArrayList<>();
813
		List<Integer> catalogIds = new ArrayList<>();
775
		for(PendingOrderItem pendingOrderItem: pendingOrderItems) {
814
		for (PendingOrderItem pendingOrderItem : pendingOrderItems) {
776
			Item item = itemRepository.selectById(pendingOrderItem.getItemId());
815
			Item item = itemRepository.selectById(pendingOrderItem.getItemId());
777
			pendingOrderItem.setItemName(item.getItemDescription());
816
			pendingOrderItem.setItemName(item.getItemDescription());
778
			catalogIds.add(item.getCatalogItemId());
817
			catalogIds.add(item.getCatalogItemId());
779
		}
818
		}
780
		Map<Integer, JSONObject> contentMap = commonSolrService.getContentByCatalogIds(catalogIds);
819
		Map<Integer, JSONObject> contentMap = commonSolrService.getContentByCatalogIds(catalogIds);
781
		for(PendingOrderItem pendingOrderItem: pendingOrderItems) {
820
		for (PendingOrderItem pendingOrderItem : pendingOrderItems) {
782
			Item item = itemRepository.selectById(pendingOrderItem.getItemId());
821
			Item item = itemRepository.selectById(pendingOrderItem.getItemId());
783
			JSONObject jsonObj = contentMap.get(item.getCatalogItemId());
822
			JSONObject jsonObj = contentMap.get(item.getCatalogItemId());
784
			pendingOrderItem.setImgUrl(jsonObj.getString("imageUrl_s"));
823
			pendingOrderItem.setImgUrl(jsonObj.getString("imageUrl_s"));
785
		}
824
		}
786
		pendingOrder.setPendingOrderItems(pendingOrderItems);
825
		pendingOrder.setPendingOrderItems(pendingOrderItems);