Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
35289 amit 1
package com.spice.profitmandi.web.controller;
2
 
3
import com.spice.profitmandi.common.model.ProfitMandiConstants;
35340 aman 4
import com.spice.profitmandi.common.web.util.ResponseSender;
35360 aman 5
import com.spice.profitmandi.dao.entity.auth.AuthUser;
35340 aman 6
import com.spice.profitmandi.dao.entity.fofo.TrialBrandPotential;
35289 amit 7
import com.spice.profitmandi.dao.entity.fofo.TrialForm;
35360 aman 8
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
9
import com.spice.profitmandi.dao.repository.cs.CsService;
35340 aman 10
import com.spice.profitmandi.dao.repository.fofo.TrialBrandPotentialRepository;
35289 amit 11
import com.spice.profitmandi.dao.repository.trialOnboarding.TrialFormRepository;
35360 aman 12
import com.spice.profitmandi.dao.service.TrialService;
35289 amit 13
import org.apache.logging.log4j.LogManager;
14
import org.apache.logging.log4j.Logger;
15
import org.springframework.beans.factory.annotation.Autowired;
35340 aman 16
import org.springframework.http.ResponseEntity;
35289 amit 17
import org.springframework.stereotype.Controller;
18
import org.springframework.ui.Model;
19
import org.springframework.web.bind.annotation.PathVariable;
20
import org.springframework.web.bind.annotation.RequestMapping;
21
import org.springframework.web.bind.annotation.RequestMethod;
35360 aman 22
import org.springframework.web.bind.annotation.ResponseBody;
35289 amit 23
 
24
import javax.servlet.http.HttpServletRequest;
25
import javax.transaction.Transactional;
35360 aman 26
import java.time.LocalDateTime;
27
import java.util.Collections;
35289 amit 28
import java.util.List;
35360 aman 29
import java.util.Set;
30
import java.util.stream.Collectors;
35289 amit 31
 
32
@Controller
33
@Transactional(rollbackOn = Throwable.class)
34
public class TrialController {
35
 
35360 aman 36
    private static final Logger LOGGER = LogManager.getLogger(TrialController.class);
35340 aman 37
    @Autowired
38
    TrialBrandPotentialRepository trialBrandPotentialRepository;
39
 
40
    @Autowired
41
    ResponseSender responseSender;
42
 
35289 amit 43
    @Autowired
35360 aman 44
    CsService csService;
45
 
46
    @Autowired
35289 amit 47
    TrialFormRepository trialFormRepository;
48
 
35360 aman 49
    @Autowired
50
    TrialService trialService;
51
 
35289 amit 52
    @RequestMapping(value = "/trial/pending", method = RequestMethod.GET)
53
    public String getTrialPending(HttpServletRequest request, Model model) throws Exception {
54
        List<TrialForm> trialForms = trialFormRepository.selectAllByStatus(ProfitMandiConstants.Status.PENDING);
55
        LOGGER.info("trialForms {}", trialForms.size());
35360 aman 56
        Set<AuthUser> bmAuthUsers = csService.getAuthUserIds(ProfitMandiConstants.TICKET_CATEGORY_SALES, Collections.singletonList(EscalationType.L2)).stream().filter(x -> x.isActive()).collect(Collectors.toSet());
57
        Set<AuthUser> asmAuthUsers = csService.getAuthUserIds(ProfitMandiConstants.TICKET_CATEGORY_SALES, Collections.singletonList(EscalationType.L1)).stream().filter(x -> x.isActive()).collect(Collectors.toSet());
58
        LOGGER.info("bm {}", bmAuthUsers);
59
        LOGGER.info("asm {}", asmAuthUsers);
60
        model.addAttribute("bm", bmAuthUsers);
61
        model.addAttribute("asm", asmAuthUsers);
35289 amit 62
        model.addAttribute("trialForms", trialForms);
63
        return "trial-form";
64
    }
65
 
35340 aman 66
    @RequestMapping(value = "/trial/verified", method = RequestMethod.GET)
67
    public String verifiedTrial(HttpServletRequest request, Model model) throws Exception {
68
        List<TrialForm> trialForms = trialFormRepository.selectAllByStatus(ProfitMandiConstants.Status.VERIFIED);
69
        LOGGER.info("trialForms {}", trialForms.size());
70
        model.addAttribute("trialForms", trialForms);
71
        return "trial-verified";
72
    }
73
 
35360 aman 74
    @RequestMapping(value = "/trial/asm-bm", method = RequestMethod.POST)
75
    @ResponseBody
76
    public ResponseEntity<?> asmBm(HttpServletRequest request) throws Exception {
77
        int trialFormId = Integer.parseInt(request.getParameter("trialFormId"));
78
        int asmId = Integer.parseInt(request.getParameter("asmId"));
79
        int bmId = Integer.parseInt(request.getParameter("bmId"));
80
 
81
        if (trialFormId == 0 || asmId == 0 || bmId == 0) {
82
            throw new Exception("please select both  bm and asm");
83
        }
84
        TrialForm trialForms = trialFormRepository.selectById(trialFormId);
85
        trialForms.setAsmId(asmId);
86
        trialForms.setBmId(bmId);
87
        trialForms.setUpdatedOn(LocalDateTime.now());
88
        return responseSender.ok("Saved Successfully");
89
    }
90
 
35289 amit 91
    @RequestMapping(value = "/trial/create/{trialFormId}", method = RequestMethod.GET)
92
    public String getTrialPending(HttpServletRequest request, Model model, @PathVariable int trialFormId) throws Exception {
93
        TrialForm trialForm = trialFormRepository.selectById(trialFormId);
94
        return "trial-form";
95
    }
35340 aman 96
 
97
    @RequestMapping(value = "/trial/cancel/{trialFormId}", method = RequestMethod.POST)
98
    public String rejectTrialUser(HttpServletRequest request, Model model, @PathVariable int trialFormId) throws Exception {
99
        TrialForm trialForm = trialFormRepository.selectById(trialFormId);
100
        trialForm.setStatus(ProfitMandiConstants.Status.REJECTED);
101
 
102
        return "trial-form";
103
    }
104
 
35360 aman 105
    @RequestMapping(value = "/trial/approve/{trialFormId}", method = RequestMethod.POST)
106
    public String approveTrialUser(HttpServletRequest request, Model model, @PathVariable int trialFormId) throws Exception {
107
        TrialForm trialForm = trialFormRepository.selectById(trialFormId);
108
        trialForm.setStatus(ProfitMandiConstants.Status.APPROVED);
109
        try {
110
            trialService.sentMailForStoreCodeCreation(trialForm);
111
        } catch (Exception e) {
112
            e.printStackTrace();
113
        }
114
        return "trial-form";
115
    }
116
 
117
    @RequestMapping(value = "/trial/convertToFranchise/{trialFormId}", method = RequestMethod.POST)
118
    public String convertedToFranchise(HttpServletRequest request, Model model, @PathVariable int trialFormId) throws Exception {
119
        TrialForm trialForm = trialFormRepository.selectById(trialFormId);
120
        trialForm.setStatus(ProfitMandiConstants.Status.CONVERTED);
121
 
122
        return "trial-form";
123
    }
124
 
125
    @RequestMapping(value = "/trial/userBrandPotential/{trialFormId}", method = RequestMethod.GET)
126
    public ResponseEntity<?> userBrandPotential(HttpServletRequest request, @PathVariable int trialFormId) throws Exception {
127
        List<TrialBrandPotential> trialBrandPotentials = trialBrandPotentialRepository.findAllByTrialFormId(trialFormId);
128
 
129
        return responseSender.ok(trialBrandPotentials);
130
    }
131
 
35340 aman 132
    @RequestMapping(value = "/trial/brand-Potential", method = RequestMethod.POST)
133
    public ResponseEntity<?> brandPotential(HttpServletRequest request) throws Exception {
134
 
135
        int trialFormId = Integer.parseInt(request.getParameter("trialFormId"));
136
        int row = 1;
137
        while (true) {
138
            String brand = request.getParameter("brand_" + row);
139
            String potential = request.getParameter("potential_" + row);
140
 
141
            if (brand == null && potential == null) {
142
                break;
143
            }
144
 
145
            if (brand != null && !brand.trim().isEmpty()
146
                    && potential != null && !potential.trim().isEmpty()) {
147
 
148
                TrialBrandPotential tbp = new TrialBrandPotential();
149
                tbp.setTrialFormId(trialFormId);
150
                tbp.setBrandName(brand.trim());
151
                tbp.setPotential(Integer.parseInt(potential));
152
 
153
                trialBrandPotentialRepository.persist(tbp);
154
            }
155
 
156
            row++;
157
        }
158
        TrialForm trialForm = trialFormRepository.selectById(trialFormId);
35360 aman 159
        trialForm.setUpdatedOn(LocalDateTime.now());
35340 aman 160
        trialForm.setStatus(ProfitMandiConstants.Status.VERIFIED);
35360 aman 161
        try {
162
            trialService.sentMailForTrialUserToSales(trialForm);
163
        } catch (Exception e) {
164
            e.printStackTrace();
165
        }
35340 aman 166
        return responseSender.ok("Saved Successfully");
167
    }
168
 
169
 
35289 amit 170
}