Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
24026 tejbeer 1
package com.spice.profitmandi.web.controller;
2
 
3
import java.util.List;
4
import java.util.Map;
5
import java.util.stream.Collectors;
6
 
7
import javax.servlet.http.HttpServletRequest;
8
 
9
import org.apache.logging.log4j.LogManager;
10
import org.apache.logging.log4j.Logger;
11
import org.springframework.beans.factory.annotation.Autowired;
12
import org.springframework.stereotype.Controller;
13
import org.springframework.transaction.annotation.Transactional;
14
import org.springframework.ui.Model;
15
import org.springframework.web.bind.annotation.RequestBody;
16
import org.springframework.web.bind.annotation.RequestMapping;
17
import org.springframework.web.bind.annotation.RequestMethod;
18
 
19
import com.spice.profitmandi.common.model.CustomRetailer;
20
import com.spice.profitmandi.common.model.SendMessageModel;
21
import com.spice.profitmandi.common.util.Utils;
22
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
23
import com.spice.profitmandi.service.user.RetailerService;
24
import com.spice.profitmandi.web.util.MVCResponseSender;
25
 
26
@Controller
27
@Transactional(rollbackFor = Throwable.class)
28
public class MessageController {
29
 
30
	@Autowired
31
	FofoStoreRepository fofoStoreRepository;
32
 
33
	@Autowired
34
	private RetailerService retailerService;
35
 
36
	@Autowired
37
	private MVCResponseSender mvcResponseSender;
38
 
39
	private static final Logger Logger = LogManager.getLogger(NotificationController.class);
40
 
41
	@RequestMapping(value = "/sendMessagingPanel", method = RequestMethod.GET)
42
	public String sendMessagingPanel(HttpServletRequest request, Model model) {
43
 
44
		List<Integer> fofoIds = fofoStoreRepository.selectAll().stream().map(x -> x.getId())
45
				.collect(Collectors.toList());
30426 tejbeer 46
 
47
		Map<Integer, CustomRetailer> customRetailerMap = retailerService.getAllFofoRetailers();
48
 
49
		Map<Integer, CustomRetailer> customRetailersMap = fofoIds.stream().map(x -> customRetailerMap.get(x))
50
				.filter(x -> x != null).collect(Collectors.toList()).stream()
51
				.collect(Collectors.toMap(x -> x.getPartnerId(), x -> x));
24026 tejbeer 52
		model.addAttribute("customRetailersMap", customRetailersMap);
53
		return "send-message";
54
	}
55
 
56
	@RequestMapping(value = "/sendMessage", method = RequestMethod.POST)
57
	public String sendMessage(HttpServletRequest request, @RequestBody SendMessageModel sendMessageModel, Model model)
58
			throws Exception {
59
 
60
		List<Integer> retailerIds = sendMessageModel.getUserIds();
30426 tejbeer 61
		Map<Integer, CustomRetailer> customRetailerMap = retailerService.getAllFofoRetailers();
24026 tejbeer 62
 
30426 tejbeer 63
		Map<Integer, CustomRetailer> customRetailersMap = retailerIds.stream().map(x -> customRetailerMap.get(x))
64
				.filter(x -> x != null).collect(Collectors.toList()).stream()
65
				.collect(Collectors.toMap(x -> x.getPartnerId(), x -> x));
66
 
24026 tejbeer 67
		for (Integer retailerId : retailerIds) {
68
 
69
			CustomRetailer customRetailer = customRetailersMap.get(retailerId);
70
			String phone = customRetailer.getMobileNumber();
71
			String msg = java.text.MessageFormat.format("{0}", sendMessageModel.getMessageText());
72
			Utils.sendSms(msg, phone);
73
		}
74
		model.addAttribute("response", mvcResponseSender.createResponseString(true));
75
		return "response";
76
	}
77
 
78
}