Subversion Repositories SmartDukaan

Rev

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

Rev 23366 Rev 23419
Line 44... Line 44...
44
import com.spice.profitmandi.dao.entity.fofo.CustomerAddress;
44
import com.spice.profitmandi.dao.entity.fofo.CustomerAddress;
45
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
45
import com.spice.profitmandi.dao.entity.fofo.FofoOrder;
46
import com.spice.profitmandi.dao.entity.fofo.FofoOrderItem;
46
import com.spice.profitmandi.dao.entity.fofo.FofoOrderItem;
47
import com.spice.profitmandi.dao.entity.fofo.FofoOrderPaymentOption;
47
import com.spice.profitmandi.dao.entity.fofo.FofoOrderPaymentOption;
48
import com.spice.profitmandi.dao.entity.fofo.PaymentOption;
48
import com.spice.profitmandi.dao.entity.fofo.PaymentOption;
-
 
49
import com.spice.profitmandi.dao.entity.fofo.PrebookingOrderItem;
49
import com.spice.profitmandi.dao.entity.user.Address;
50
import com.spice.profitmandi.dao.entity.user.Address;
50
import com.spice.profitmandi.dao.repository.dtr.InsurancePolicyRepository;
51
import com.spice.profitmandi.dao.repository.dtr.InsurancePolicyRepository;
51
import com.spice.profitmandi.dao.repository.dtr.InsuranceProviderRepository;
52
import com.spice.profitmandi.dao.repository.dtr.InsuranceProviderRepository;
52
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
53
import com.spice.profitmandi.dao.repository.dtr.RetailerRegisteredAddressRepository;
53
import com.spice.profitmandi.dao.repository.fofo.CustomerAddressRepository;
54
import com.spice.profitmandi.dao.repository.fofo.CustomerAddressRepository;
Line 55... Line 56...
55
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
56
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
56
import com.spice.profitmandi.dao.repository.fofo.FofoOrderPaymentOptionRepository;
57
import com.spice.profitmandi.dao.repository.fofo.FofoOrderPaymentOptionRepository;
57
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
58
import com.spice.profitmandi.dao.repository.fofo.FofoOrderRepository;
58
import com.spice.profitmandi.dao.repository.fofo.FofoPartnerPaymentOptionRepository;
59
import com.spice.profitmandi.dao.repository.fofo.FofoPartnerPaymentOptionRepository;
59
import com.spice.profitmandi.dao.repository.fofo.PaymentOptionRepository;
60
import com.spice.profitmandi.dao.repository.fofo.PaymentOptionRepository;
-
 
61
import com.spice.profitmandi.dao.repository.fofo.PrebookingOrderItemRepository;
60
import com.spice.profitmandi.dao.repository.user.AddressRepository;
62
import com.spice.profitmandi.dao.repository.user.AddressRepository;
61
import com.spice.profitmandi.service.order.OrderService;
63
import com.spice.profitmandi.service.order.OrderService;
62
import com.spice.profitmandi.service.pricing.PricingService;
64
import com.spice.profitmandi.service.pricing.PricingService;
63
import com.spice.profitmandi.web.model.LoginDetails;
65
import com.spice.profitmandi.web.model.LoginDetails;
64
import com.spice.profitmandi.web.util.CookiesProcessor;
66
import com.spice.profitmandi.web.util.CookiesProcessor;
Line 110... Line 112...
110
	
112
	
111
	@Autowired
113
	@Autowired
112
	private FofoPartnerPaymentOptionRepository fofoPartnerPaymentOptionRepository;
114
	private FofoPartnerPaymentOptionRepository fofoPartnerPaymentOptionRepository;
113
	
115
	
114
	@Autowired
116
	@Autowired
-
 
117
	private PrebookingOrderItemRepository prebookingOrderItemRepository;
-
 
118
	
-
 
119
	@Autowired
115
	private ResponseSender<?> responseSender;
120
	private ResponseSender<?> responseSender;
116
	
121
	
117
	@RequestMapping(value = "/order")
122
	@RequestMapping(value = "/order")
118
	public String orderIndex(HttpServletRequest request, @RequestParam(name = "cartData") String cartData, Model model) throws ProfitMandiBusinessException{
123
	public String orderIndex(HttpServletRequest request, @RequestParam(name = "cartData") String cartData, Model model) throws ProfitMandiBusinessException{
119
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);;
124
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);;
Line 158... Line 163...
158
		customerAddress.setPhoneNumber(customer.getMobileNumber());
163
		customerAddress.setPhoneNumber(customer.getMobileNumber());
159
		List<FofoOrderPaymentOption> fofoOrderPaymentOptions = fofoOrderPaymentOptionRepository.selectByFofoOrderId(fofoOrder.getId());
164
		List<FofoOrderPaymentOption> fofoOrderPaymentOptions = fofoOrderPaymentOptionRepository.selectByFofoOrderId(fofoOrder.getId());
160
		Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap = this.paymentOptionIdPaymentOptionMap(fofoOrderPaymentOptions);
165
		Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap = this.paymentOptionIdPaymentOptionMap(fofoOrderPaymentOptions);
161
		List<InsurancePolicy> insurancePolicies = insurancePolicyRepository.selectByRetailerIdInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
166
		List<InsurancePolicy> insurancePolicies = insurancePolicyRepository.selectByRetailerIdInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
162
		this.addInsuranceProvider(insurancePolicies);
167
		this.addInsuranceProvider(insurancePolicies);
-
 
168
		List<PrebookingOrderItem> prebookingOrderItems = prebookingOrderItemRepository.selectByOrderId(orderId);
-
 
169
		Map<Integer, PrebookingOrderItem> itemIdPrebookingOrderItemMap = this.prebookingOrderItemToItemIdPrebookingOrderItem(prebookingOrderItems);
163
		model.addAttribute("fofoOrder", fofoOrder);
170
		model.addAttribute("fofoOrder", fofoOrder);
164
		model.addAttribute("fofoLineItems", fofoLineItems);
171
		model.addAttribute("fofoLineItems", fofoLineItems);
165
		model.addAttribute("customerBillingAddress", orderService.getBillingAddress(customerAddress));
172
		model.addAttribute("customerBillingAddress", orderService.getBillingAddress(customerAddress));
166
		model.addAttribute("customerBillingAddressObj", customerAddress);
173
		model.addAttribute("customerBillingAddressObj", customerAddress);
167
		model.addAttribute("fofoOrderPaymentOptions", fofoOrderPaymentOptions);
174
		model.addAttribute("fofoOrderPaymentOptions", fofoOrderPaymentOptions);
168
		model.addAttribute("paymentOptionIdPaymentOptionMap", paymentOptionIdPaymentOptionMap);
175
		model.addAttribute("paymentOptionIdPaymentOptionMap", paymentOptionIdPaymentOptionMap);
169
		model.addAttribute("insurancePolicies", insurancePolicies);
176
		model.addAttribute("insurancePolicies", insurancePolicies);
-
 
177
		model.addAttribute("itemIdPrebookingOrderItemMap", itemIdPrebookingOrderItemMap);
170
		return "order-details";
178
		return "order-details";
171
	}
179
	}
172
	
180
	
-
 
181
	@RequestMapping(value = "/generateOtp", method = RequestMethod.POST)
-
 
182
	public ResponseEntity<?> generateOtp(@RequestBody Map<Integer, Float> itemIdAdvanceAmount, @RequestParam(name = ProfitMandiConstants.CUSTOMER_EMAIL_ID) String customerEmailId, @RequestParam(name = ProfitMandiConstants.CUSTOMER_MOBILE_NUMBER) String customerMobileNumber)
-
 
183
			throws ProfitMandiBusinessException{
-
 
184
			
-
 
185
		int response = orderService.generatePrebookingOrdersOtp(customerEmailId, customerMobileNumber, itemIdAdvanceAmount);
-
 
186
		
-
 
187
		return responseSender.ok(response);
-
 
188
	}
-
 
189
	
-
 
190
	@RequestMapping(value = "/validateOtp", method = RequestMethod.GET)
-
 
191
	public ResponseEntity<?> validateOtp(@RequestParam(name = ProfitMandiConstants.CUSTOMER_EMAIL_ID) String customerEmailId,
-
 
192
			@RequestParam(name = ProfitMandiConstants.CUSTOMER_MOBILE_NUMBER) String customerMobileNumber,
-
 
193
			@RequestParam("otpId") int otpId, @RequestParam("otpValue") String otpValue)
-
 
194
			throws ProfitMandiBusinessException{
-
 
195
			
-
 
196
		String responseString = orderService.validateOtp(customerEmailId, customerMobileNumber, otpId, otpValue);
-
 
197
		
-
 
198
		return responseSender.ok(responseString);
-
 
199
	}
-
 
200
	
-
 
201
	
173
	private Map<Integer, InsuranceProvider> toInsuranceProviderIdInsuranceProvider(List<InsuranceProvider> insuranceProviders){
202
	private Map<Integer, InsuranceProvider> toInsuranceProviderIdInsuranceProvider(List<InsuranceProvider> insuranceProviders){
174
		Map<Integer, InsuranceProvider> insuranceProviderIdInsuranceProviderMap = new HashMap<>();
203
		Map<Integer, InsuranceProvider> insuranceProviderIdInsuranceProviderMap = new HashMap<>();
175
		for(InsuranceProvider insuranceProvider : insuranceProviders){
204
		for(InsuranceProvider insuranceProvider : insuranceProviders){
176
			insuranceProviderIdInsuranceProviderMap.put(insuranceProvider.getId(), insuranceProvider);
205
			insuranceProviderIdInsuranceProviderMap.put(insuranceProvider.getId(), insuranceProvider);
177
		}
206
		}
Line 204... Line 233...
204
		CustomerAddress customerAddress = customerAddressRepository.selectById(fofoOrder.getCustomerAddressId());
233
		CustomerAddress customerAddress = customerAddressRepository.selectById(fofoOrder.getCustomerAddressId());
205
		List<FofoOrderPaymentOption> fofoOrderPaymentOptions = fofoOrderPaymentOptionRepository.selectByFofoOrderId(fofoOrder.getId());
234
		List<FofoOrderPaymentOption> fofoOrderPaymentOptions = fofoOrderPaymentOptionRepository.selectByFofoOrderId(fofoOrder.getId());
206
		Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap = this.paymentOptionIdPaymentOptionMap(fofoOrderPaymentOptions);
235
		Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap = this.paymentOptionIdPaymentOptionMap(fofoOrderPaymentOptions);
207
		List<InsurancePolicy> insurancePolicies = insurancePolicyRepository.selectByRetailerIdInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
236
		List<InsurancePolicy> insurancePolicies = insurancePolicyRepository.selectByRetailerIdInvoiceNumber(fofoOrder.getFofoId(), fofoOrder.getInvoiceNumber());
208
		this.addInsuranceProvider(insurancePolicies);
237
		this.addInsuranceProvider(insurancePolicies);
-
 
238
		List<PrebookingOrderItem> prebookingOrderItems = prebookingOrderItemRepository.selectByOrderId(orderId);
-
 
239
		Map<Integer, PrebookingOrderItem> itemIdPrebookingOrderItemMap = this.prebookingOrderItemToItemIdPrebookingOrderItem(prebookingOrderItems);
209
		model.addAttribute("fofoOrder", fofoOrder);
240
		model.addAttribute("fofoOrder", fofoOrder);
210
		model.addAttribute("fofoLineItems", fofoLineItems);
241
		model.addAttribute("fofoLineItems", fofoLineItems);
211
		model.addAttribute("customerBillingAddress", orderService.getBillingAddress(customerAddress));
242
		model.addAttribute("customerBillingAddress", orderService.getBillingAddress(customerAddress));
212
		model.addAttribute("customerBillingAddressObj", customerAddress);
243
		model.addAttribute("customerBillingAddressObj", customerAddress);
213
		model.addAttribute("fofoOrderPaymentOptions", fofoOrderPaymentOptions);
244
		model.addAttribute("fofoOrderPaymentOptions", fofoOrderPaymentOptions);
214
		model.addAttribute("paymentOptionIdPaymentOptionMap", paymentOptionIdPaymentOptionMap);
245
		model.addAttribute("paymentOptionIdPaymentOptionMap", paymentOptionIdPaymentOptionMap);
215
		model.addAttribute("insurancePolicies", insurancePolicies);
246
		model.addAttribute("insurancePolicies", insurancePolicies);
-
 
247
		model.addAttribute("itemIdPrebookingOrderItemMap", itemIdPrebookingOrderItemMap);
216
		return "sale-details";
248
		return "sale-details";
217
	}
249
	}
218
	
250
	
219
	private Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap(List<FofoOrderPaymentOption> fofoOrderPaymentOptions){
251
	private Map<Integer, PaymentOption> paymentOptionIdPaymentOptionMap(List<FofoOrderPaymentOption> fofoOrderPaymentOptions){
220
		Set<Integer> paymentOptionIds = new HashSet<>();
252
		Set<Integer> paymentOptionIds = new HashSet<>();
Line 227... Line 259...
227
			paymentOptionIdPaymentOptionMap.put(paymentOption.getId(), paymentOption);
259
			paymentOptionIdPaymentOptionMap.put(paymentOption.getId(), paymentOption);
228
		}
260
		}
229
		return paymentOptionIdPaymentOptionMap;
261
		return paymentOptionIdPaymentOptionMap;
230
	}
262
	}
231
	
263
	
-
 
264
	private Map<Integer, PrebookingOrderItem> prebookingOrderItemToItemIdPrebookingOrderItem(List<PrebookingOrderItem> prebookingOrderItems){
-
 
265
		Map<Integer, PrebookingOrderItem> itemIdPrebookingOrderItem = new HashMap<>();
-
 
266
		for(PrebookingOrderItem prebookingOrderItem : prebookingOrderItems) {
-
 
267
			itemIdPrebookingOrderItem.put(prebookingOrderItem.getItemId(), prebookingOrderItem);
-
 
268
		}
-
 
269
		return itemIdPrebookingOrderItem;
-
 
270
	}
-
 
271
	
232
 
272
 
233
	@RequestMapping(value = "/create-order", method = RequestMethod.POST)
273
	@RequestMapping(value = "/create-order", method = RequestMethod.POST)
234
	public String createOrder(HttpServletRequest request, @RequestBody CreateOrderRequest createOrderRequest, Model model)  throws ProfitMandiBusinessException{
274
	public String createOrder(HttpServletRequest request, @RequestBody CreateOrderRequest createOrderRequest, Model model)  throws ProfitMandiBusinessException{
235
		LOGGER.info("request at uri {} body {}", request.getRequestURI(), createOrderRequest);
275
		LOGGER.info("request at uri {} body {}", request.getRequestURI(), createOrderRequest);
236
		LoginDetails fofoDetails = cookiesProcessor.getCookiesObject(request);
276
		LoginDetails fofoDetails = cookiesProcessor.getCookiesObject(request);