Subversion Repositories SmartDukaan

Rev

Rev 24026 | Rev 31238 | Go to most recent revision | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.spice.profitmandi.web.controller;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

import javax.servlet.http.HttpServletRequest;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.spice.profitmandi.common.model.CustomRetailer;
import com.spice.profitmandi.common.model.SendMessageModel;
import com.spice.profitmandi.common.util.Utils;
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
import com.spice.profitmandi.service.user.RetailerService;
import com.spice.profitmandi.web.util.MVCResponseSender;

@Controller
@Transactional(rollbackFor = Throwable.class)
public class MessageController {

        @Autowired
        FofoStoreRepository fofoStoreRepository;

        @Autowired
        private RetailerService retailerService;

        @Autowired
        private MVCResponseSender mvcResponseSender;

        private static final Logger Logger = LogManager.getLogger(NotificationController.class);

        @RequestMapping(value = "/sendMessagingPanel", method = RequestMethod.GET)
        public String sendMessagingPanel(HttpServletRequest request, Model model) {

                List<Integer> fofoIds = fofoStoreRepository.selectAll().stream().map(x -> x.getId())
                                .collect(Collectors.toList());

                Map<Integer, CustomRetailer> customRetailerMap = retailerService.getAllFofoRetailers();

                Map<Integer, CustomRetailer> customRetailersMap = fofoIds.stream().map(x -> customRetailerMap.get(x))
                                .filter(x -> x != null).collect(Collectors.toList()).stream()
                                .collect(Collectors.toMap(x -> x.getPartnerId(), x -> x));
                model.addAttribute("customRetailersMap", customRetailersMap);
                return "send-message";
        }

        @RequestMapping(value = "/sendMessage", method = RequestMethod.POST)
        public String sendMessage(HttpServletRequest request, @RequestBody SendMessageModel sendMessageModel, Model model)
                        throws Exception {

                List<Integer> retailerIds = sendMessageModel.getUserIds();
                Map<Integer, CustomRetailer> customRetailerMap = retailerService.getAllFofoRetailers();

                Map<Integer, CustomRetailer> customRetailersMap = retailerIds.stream().map(x -> customRetailerMap.get(x))
                                .filter(x -> x != null).collect(Collectors.toList()).stream()
                                .collect(Collectors.toMap(x -> x.getPartnerId(), x -> x));

                for (Integer retailerId : retailerIds) {

                        CustomRetailer customRetailer = customRetailersMap.get(retailerId);
                        String phone = customRetailer.getMobileNumber();
                        String msg = java.text.MessageFormat.format("{0}", sendMessageModel.getMessageText());
                        Utils.sendSms(msg, phone);
                }
                model.addAttribute("response", mvcResponseSender.createResponseString(true));
                return "response";
        }

}