Subversion Repositories SmartDukaan

Rev

Rev 30017 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
28371 amit.gupta 1
package com.spice.profitmandi.web.controller;
2
 
3
import java.time.LocalDateTime;
4
import java.util.List;
5
import java.util.Map;
6
import java.util.Optional;
7
import java.util.stream.Collectors;
8
 
9
import javax.servlet.http.HttpServletRequest;
10
import javax.transaction.Transactional;
11
 
12
import org.apache.logging.log4j.LogManager;
13
import org.apache.logging.log4j.Logger;
14
import org.json.JSONObject;
15
import org.springframework.beans.factory.annotation.Autowired;
16
import org.springframework.stereotype.Controller;
17
import org.springframework.ui.Model;
18
import org.springframework.web.bind.annotation.PathVariable;
19
import org.springframework.web.bind.annotation.RequestBody;
20
import org.springframework.web.bind.annotation.RequestMapping;
21
import org.springframework.web.bind.annotation.RequestMethod;
22
import org.springframework.web.bind.annotation.RequestParam;
23
 
24
import com.spice.profitmandi.common.solr.SolrService;
25
import com.spice.profitmandi.common.web.util.ResponseSender;
26
import com.spice.profitmandi.dao.entity.dtr.WebListing;
27
import com.spice.profitmandi.dao.entity.dtr.WebOffer;
28
import com.spice.profitmandi.dao.entity.dtr.WebOfferProduct;
29
import com.spice.profitmandi.dao.entity.dtr.WebProductListing;
30
import com.spice.profitmandi.dao.repository.dtr.WebOfferProductRepository;
31
import com.spice.profitmandi.dao.repository.dtr.WebOfferRepository;
32
 
33
@Controller
34
@Transactional(rollbackOn = Throwable.class)
35
public class WebOffersController {
36
 
37
	private static final Logger LOGGER = LogManager.getLogger(WebOffersController.class);
38
 
39
 
40
	@Autowired
41
	ResponseSender<?> responseSender;
42
 
43
	@Autowired
44
	WebOfferRepository webOfferRepository;
45
 
46
	@Autowired
47
	WebOfferProductRepository webOfferProductRepository;
48
 
49
	@Autowired
50
	SolrService solrService;
51
 
52
	@RequestMapping(value = "/web-offers", method = RequestMethod.GET)
53
	public String getOfferListing(HttpServletRequest request, Model model) {
54
		List<WebOffer> webListing = webOfferRepository.selectAllWebListing(Optional.of(true));
55
		model.addAttribute("webListings", webListing);
56
		return "web-offer";
57
	}
58
 
59
	@RequestMapping(value = "/web-offer/add", method = RequestMethod.POST)
60
	public String addWebListing(HttpServletRequest request, @RequestBody WebOffer webOffer, Model model) {
61
		webOffer.setCreatedDate(LocalDateTime.now());
62
		webOffer.setDetailedText("");
63
		webOfferRepository.persist(webOffer);
64
		return getOfferListing(request, model);
65
	}
66
 
67
	@RequestMapping(value = "/web-offer/{webOfferId}", method = RequestMethod.GET)
68
	public String getWebProductListing(HttpServletRequest request, Model model, @PathVariable int webOfferId)
69
			throws Exception {
70
		List<WebOfferProduct> webOfferProducts = webOfferProductRepository.selectAllByWebOfferId(webOfferId);
71
		if (webOfferProducts.size() > 0) {
72
			Map<Integer, JSONObject> entityMap = solrService.getContentByCatalogIds(
73
					webOfferProducts.stream().map(x -> x.getEntityId()).collect(Collectors.toList()));
74
			webOfferProducts.stream()
75
					.forEach(x -> x.setProductName(entityMap.get(x.getEntityId()).getString("title_s")));
76
		}
77
 
78
		WebOffer webOffer = webOfferRepository.selectById(webOfferId);
79
		model.addAttribute("productListings", webOfferProducts);
80
		model.addAttribute("webListing", webOffer);
81
		return "web-offer-product";
82
	}
83
 
84
	@RequestMapping(value = "/web-offer-product/add", method = RequestMethod.POST)
85
	public String addWebOfferProduct(HttpServletRequest request,
86
			@RequestBody List<WebOfferProduct> webOfferProducts, Model model) throws Exception {
87
		webOfferProducts.stream().forEach(webOfferProduct -> {
88
			boolean exists = webOfferProductRepository.isExists(webOfferProduct.getWebOfferId(),
89
					webOfferProduct.getEntityId());
90
			if (!exists) {
91
				webOfferProductRepository.persist(webOfferProduct);
92
			}
93
 
94
		});
95
		return getWebProductListing(request, model, webOfferProducts.get(0).getWebOfferId());
96
	}
97
 
98
	@RequestMapping(value = "/web-offer-product/remove", method = RequestMethod.DELETE)
99
	public String addWebOfferProduct(HttpServletRequest request,
100
			@RequestParam int webOfferProductId, Model model) throws Exception {
101
		WebOfferProduct webOfferProduct = webOfferProductRepository.selectById(webOfferProductId);
102
		webOfferProductRepository.delete(webOfferProduct);
103
		return getWebProductListing(request, model, webOfferProduct.getWebOfferId());
104
	}
105
 
106
 
107
/*	@RequestMapping(value = "/web-listing/order/{webListingId}", method = RequestMethod.POST)
108
	public String orderWebProductListing(HttpServletRequest request, Model model, @PathVariable int webListingId,
109
			@RequestBody List<Integer> webListingProductIds) throws Exception {
110
		List<WebProductListing> productListings = webProductListingRepository.selectAllByWebListingId(webListingId);
111
 
112
		productListings.forEach(productListing -> {
113
			productListing.setRank(webListingProductIds.indexOf(productListing.getId()) + 1);
114
		});
115
		return getWebProductListing(request, model, webListingId);
116
	}
117
 
118
	@RequestMapping(value = "/web-listing/order-listing", method = RequestMethod.POST)
119
	public String orderWebListing(HttpServletRequest request, Model model, @RequestBody List<Integer> webListingIds)
120
			throws Exception {
121
		LOGGER.info("webListingId" + webListingIds);
122
		List<WebListing> webListings = webListingRepository.selectByIds(webListingIds);
123
		webListings.forEach(webListing -> {
124
			webListing.setRank(webListingIds.indexOf(webListing.getId()) + 1);
125
		});
126
		return getWebListing(request, model);
127
	}*/
128
 
129
 
130
 
131
}