Subversion Repositories SmartDukaan

Rev

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

Rev 36889 Rev 36890
Line 5... Line 5...
5
import com.spice.profitmandi.common.enumuration.ContentType;
5
import com.spice.profitmandi.common.enumuration.ContentType;
6
import com.spice.profitmandi.common.enumuration.MessageType;
6
import com.spice.profitmandi.common.enumuration.MessageType;
7
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
7
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
8
import com.spice.profitmandi.common.model.*;
8
import com.spice.profitmandi.common.model.*;
9
import com.spice.profitmandi.common.web.util.ResponseSender;
9
import com.spice.profitmandi.common.web.util.ResponseSender;
-
 
10
import com.spice.profitmandi.dao.entity.ContactUs;
10
import com.spice.profitmandi.dao.entity.StoreSalesTarget;
11
import com.spice.profitmandi.dao.entity.StoreSalesTarget;
11
import com.spice.profitmandi.dao.entity.auth.AuthUser;
12
import com.spice.profitmandi.dao.entity.auth.AuthUser;
12
import com.spice.profitmandi.dao.entity.catalog.Item;
13
import com.spice.profitmandi.dao.entity.catalog.Item;
13
import com.spice.profitmandi.dao.entity.catalog.Scheme;
14
import com.spice.profitmandi.dao.entity.catalog.Scheme;
14
import com.spice.profitmandi.dao.entity.catalog.TagListing;
15
import com.spice.profitmandi.dao.entity.catalog.TagListing;
Line 26... Line 27...
26
import com.spice.profitmandi.dao.enumuration.fofo.Milestone;
27
import com.spice.profitmandi.dao.enumuration.fofo.Milestone;
27
import com.spice.profitmandi.dao.enumuration.transaction.OrderStatus;
28
import com.spice.profitmandi.dao.enumuration.transaction.OrderStatus;
28
import com.spice.profitmandi.dao.model.SamsungUpgradeOfferModel;
29
import com.spice.profitmandi.dao.model.SamsungUpgradeOfferModel;
29
import com.spice.profitmandi.dao.model.*;
30
import com.spice.profitmandi.dao.model.*;
30
import com.spice.profitmandi.dao.model.warehouse.LMSGraphRequest;
31
import com.spice.profitmandi.dao.model.warehouse.LMSGraphRequest;
-
 
32
import com.spice.profitmandi.dao.repository.ContactUsRepository;
31
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
33
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
32
import com.spice.profitmandi.dao.repository.catalog.*;
34
import com.spice.profitmandi.dao.repository.catalog.*;
33
import com.spice.profitmandi.dao.repository.cs.*;
35
import com.spice.profitmandi.dao.repository.cs.*;
34
import com.spice.profitmandi.dao.repository.dtr.*;
36
import com.spice.profitmandi.dao.repository.dtr.*;
35
import com.spice.profitmandi.dao.repository.fofo.*;
37
import com.spice.profitmandi.dao.repository.fofo.*;
Line 191... Line 193...
191
 
193
 
192
    @Autowired
194
    @Autowired
193
    private MVCResponseSender mvcResponseSender;
195
    private MVCResponseSender mvcResponseSender;
194
 
196
 
195
    @Autowired
197
    @Autowired
-
 
198
    private ContactUsRepository contactUsRepository;
-
 
199
 
-
 
200
    @Autowired
196
    private ReporticoCacheTableRepository reporticoCacheTableRepository;
201
    private ReporticoCacheTableRepository reporticoCacheTableRepository;
197
 
202
 
198
    @Autowired
203
    @Autowired
199
    private TransactionService transactionService;
204
    private TransactionService transactionService;
200
 
205
 
Line 1784... Line 1789...
1784
        model.addAttribute("branditemSales", branditemSales);
1789
        model.addAttribute("branditemSales", branditemSales);
1785
        model.addAttribute("warehouseMap", warehouseMap);
1790
        model.addAttribute("warehouseMap", warehouseMap);
1786
        return "warehouse_accessories_itemwsie_sale";
1791
        return "warehouse_accessories_itemwsie_sale";
1787
    }
1792
    }
1788
 
1793
 
-
 
1794
    // Users allowed to add / edit / delete contact-us entries.
-
 
1795
    private static final Set<String> CONTACT_US_EDITORS = new HashSet<>(Arrays.asList(
-
 
1796
            "kangan.monga@smartdukaan.com",
-
 
1797
            "neha.sharma@smartdukaan.com",
-
 
1798
            "gaurav.mathur1@smartdukaan.com"));
-
 
1799
 
-
 
1800
    private boolean isContactUsEditor(LoginDetails loginDetails) {
-
 
1801
        return loginDetails != null && loginDetails.getEmailId() != null
-
 
1802
                && CONTACT_US_EDITORS.contains(loginDetails.getEmailId().trim().toLowerCase());
-
 
1803
    }
-
 
1804
 
1789
    @RequestMapping(value = "/contactUs", method = RequestMethod.GET)
1805
    @RequestMapping(value = "/contactUs", method = RequestMethod.GET)
1790
    public String contactUs(HttpServletRequest request, Model model) throws Throwable {
1806
    public String contactUs(HttpServletRequest request, Model model) throws Throwable {
-
 
1807
        LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
1791
        model.addAttribute("appContextPath", request.getContextPath());
1808
        model.addAttribute("appContextPath", request.getContextPath());
-
 
1809
        // Defensive: never let a DB hiccup turn the contact page into a 500.
-
 
1810
        // The table is provisioned by ContactUsTableBootstrap, but if a query
-
 
1811
        // still fails we render the page with empty lists rather than crashing.
-
 
1812
        try {
-
 
1813
            model.addAttribute("mainContacts", contactUsRepository.findActiveBySection(ContactUs.SECTION_MAIN));
-
 
1814
            model.addAttribute("escalationContacts", contactUsRepository.findActiveBySection(ContactUs.SECTION_ESCALATION));
-
 
1815
        } catch (Exception e) {
-
 
1816
            LOGGER.error("Failed loading contact_us data; rendering empty contact list", e);
-
 
1817
            model.addAttribute("mainContacts", java.util.Collections.emptyList());
-
 
1818
            model.addAttribute("escalationContacts", java.util.Collections.emptyList());
-
 
1819
        }
-
 
1820
        model.addAttribute("contactUsEditor", isContactUsEditor(loginDetails));
1792
        return "contact-us";
1821
        return "contact-us";
1793
    }
1822
    }
1794
 
1823
 
-
 
1824
    @RequestMapping(value = "/contactUs/save", method = RequestMethod.POST)
-
 
1825
    @ResponseBody
-
 
1826
    public Map<String, Object> saveContactUs(HttpServletRequest request,
-
 
1827
                                             @RequestParam(name = "id", defaultValue = "0") int id,
-
 
1828
                                             @RequestParam(name = "section") String section,
-
 
1829
                                             @RequestParam(name = "area", defaultValue = "") String area,
-
 
1830
                                             @RequestParam(name = "baseArea", defaultValue = "") String baseArea,
-
 
1831
                                             @RequestParam(name = "name", defaultValue = "") String name,
-
 
1832
                                             @RequestParam(name = "designation", defaultValue = "") String designation,
-
 
1833
                                             @RequestParam(name = "mobile", defaultValue = "") String mobile,
-
 
1834
                                             @RequestParam(name = "email", defaultValue = "") String email) throws Exception {
-
 
1835
        Map<String, Object> response = new HashMap<>();
-
 
1836
        LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
-
 
1837
        if (!isContactUsEditor(loginDetails)) {
-
 
1838
            response.put("success", false);
-
 
1839
            response.put("message", "You are not authorised to edit contacts.");
-
 
1840
            return response;
-
 
1841
        }
-
 
1842
 
-
 
1843
        if (!ContactUs.SECTION_MAIN.equals(section) && !ContactUs.SECTION_ESCALATION.equals(section)) {
-
 
1844
            response.put("success", false);
-
 
1845
            response.put("message", "Invalid section.");
-
 
1846
            return response;
-
 
1847
        }
-
 
1848
        if (name == null || name.trim().isEmpty()) {
-
 
1849
            response.put("success", false);
-
 
1850
            response.put("message", "Name is required.");
-
 
1851
            return response;
-
 
1852
        }
-
 
1853
 
-
 
1854
        ContactUs contact;
-
 
1855
        if (id > 0) {
-
 
1856
            contact = contactUsRepository.selectById(id);
-
 
1857
            if (contact == null || !contact.isActive()) {
-
 
1858
                response.put("success", false);
-
 
1859
                response.put("message", "Contact not found.");
-
 
1860
                return response;
-
 
1861
            }
-
 
1862
        } else {
-
 
1863
            contact = new ContactUs();
-
 
1864
            contact.setSection(section);
-
 
1865
            contact.setSortOrder(contactUsRepository.maxSortOrder(section) + 10);
-
 
1866
        }
-
 
1867
        contact.setArea(area == null ? "" : area.trim());
-
 
1868
        contact.setBaseArea(baseArea == null ? "" : baseArea.trim());
-
 
1869
        contact.setName(name.trim());
-
 
1870
        contact.setDesignation(designation == null ? "" : designation.trim());
-
 
1871
        contact.setMobile(mobile == null || mobile.trim().isEmpty() ? "-" : mobile.trim());
-
 
1872
        contact.setEmail(email == null ? "" : email.trim());
-
 
1873
        contactUsRepository.persist(contact);
-
 
1874
 
-
 
1875
        response.put("success", true);
-
 
1876
        return response;
-
 
1877
    }
-
 
1878
 
-
 
1879
    @RequestMapping(value = "/contactUs/delete", method = RequestMethod.POST)
-
 
1880
    @ResponseBody
-
 
1881
    public Map<String, Object> deleteContactUs(HttpServletRequest request,
-
 
1882
                                               @RequestParam(name = "id") int id) throws Exception {
-
 
1883
        Map<String, Object> response = new HashMap<>();
-
 
1884
        LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
-
 
1885
        if (!isContactUsEditor(loginDetails)) {
-
 
1886
            response.put("success", false);
-
 
1887
            response.put("message", "You are not authorised to edit contacts.");
-
 
1888
            return response;
-
 
1889
        }
-
 
1890
        ContactUs contact = contactUsRepository.selectById(id);
-
 
1891
        if (contact == null) {
-
 
1892
            response.put("success", false);
-
 
1893
            response.put("message", "Contact not found.");
-
 
1894
            return response;
-
 
1895
        }
-
 
1896
        contact.setActive(false);
-
 
1897
        contactUsRepository.persist(contact);
-
 
1898
        response.put("success", true);
-
 
1899
        return response;
-
 
1900
    }
-
 
1901
 
1795
    @RequestMapping(value = "/notifications", method = RequestMethod.GET)
1902
    @RequestMapping(value = "/notifications", method = RequestMethod.GET)
1796
    public String getNotificationsWithType(HttpServletRequest request, @RequestParam(required = false) MessageType
1903
    public String getNotificationsWithType(HttpServletRequest request, @RequestParam(required = false) MessageType
1797
            messageType, @RequestParam(name = "offset", defaultValue = "0") int offset,
1904
            messageType, @RequestParam(name = "offset", defaultValue = "0") int offset,
1798
                                           @RequestParam(name = "limit", defaultValue = "20") int limit, Model model) throws Exception {
1905
                                           @RequestParam(name = "limit", defaultValue = "20") int limit, Model model) throws Exception {
1799
        LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
1906
        LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);