Rev 29317 | Rev 29446 | 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.time.LocalDateTime;import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.Set;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.format.annotation.DateTimeFormat;import org.springframework.http.MediaType;import org.springframework.http.ResponseEntity;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 org.springframework.web.bind.annotation.RequestParam;import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;import com.spice.profitmandi.common.model.CustomRetailer;import com.spice.profitmandi.common.model.ProfitMandiConstants;import com.spice.profitmandi.common.web.util.ResponseSender;import com.spice.profitmandi.dao.entity.auth.AuthUser;import com.spice.profitmandi.dao.entity.dtr.User;import com.spice.profitmandi.dao.entity.dtr.UserAccount;import com.spice.profitmandi.dao.entity.fofo.FofoStore;import com.spice.profitmandi.dao.entity.fofo.PartnerOnBoardingPanel;import com.spice.profitmandi.dao.entity.user.FranchiseeActivity;import com.spice.profitmandi.dao.entity.user.FranchiseeVisit;import com.spice.profitmandi.dao.entity.user.Lead;import com.spice.profitmandi.dao.entity.user.LeadActivity;import com.spice.profitmandi.dao.enumuration.dtr.FranchiseeActivityStatus;import com.spice.profitmandi.dao.enumuration.dtr.FranchiseeVisitStatus;import com.spice.profitmandi.dao.enumuration.dtr.LeadStatus;import com.spice.profitmandi.dao.enumuration.dtr.StoreTimeline;import com.spice.profitmandi.dao.model.CreateRefferalRequest;import com.spice.profitmandi.dao.model.OnBoardingTimelineModel;import com.spice.profitmandi.dao.model.UserCart;import com.spice.profitmandi.dao.repository.auth.AuthRepository;import com.spice.profitmandi.dao.repository.cs.CsService;import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;import com.spice.profitmandi.dao.repository.dtr.FranchiseeActivityRepository;import com.spice.profitmandi.dao.repository.dtr.FranchiseeVisitRepository;import com.spice.profitmandi.dao.repository.dtr.LeadActivityRepository;import com.spice.profitmandi.dao.repository.dtr.LeadRepository;import com.spice.profitmandi.dao.repository.dtr.PartnerOnBoardingPanelRepository;import com.spice.profitmandi.dao.repository.dtr.UserAccountRepository;import com.spice.profitmandi.dao.repository.dtr.UserRepository;import com.spice.profitmandi.service.user.RetailerService;import com.spice.profitmandi.service.user.StoreTimelineTatService;import com.spice.profitmandi.web.req.CreateFranchiseeRequest;import com.spice.profitmandi.web.res.Partner;import io.swagger.annotations.ApiImplicitParam;import io.swagger.annotations.ApiImplicitParams;@Controller@Transactional(rollbackFor = Throwable.class)public class LeadController {private static final Logger LOGGER = LogManager.getLogger(LeadController.class);@Autowiredprivate ResponseSender<?> responseSender;@Autowiredprivate AuthRepository authRepository;@Autowiredprivate LeadRepository leadRepository;@Autowiredprivate CsService csService;@Autowiredprivate UserRepository userRepository;@Autowiredprivate UserAccountRepository userAccountRepository;@Autowiredprivate com.spice.profitmandi.dao.repository.user.UserRepository userUserRepository;@Autowiredprivate RetailerService retailerService;@Autowiredprivate LeadActivityRepository leadActivityRepository;@Autowiredprivate FranchiseeVisitRepository franchiseeVisitRepository;@Autowiredprivate FranchiseeActivityRepository franchiseeActivityRepository;@Autowiredprivate PartnerOnBoardingPanelRepository partnerOnBoardingPanelRepository;@Autowiredprivate FofoStoreRepository fofoStoreRepository;@Autowiredprivate StoreTimelineTatService storeTimelineTatService;@RequestMapping(value = "/lead", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)@ApiImplicitParams({@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })public ResponseEntity<?> LeadUser(HttpServletRequest request,@RequestBody CreateRefferalRequest createRefferalRequest) throws Exception {Lead lead = new Lead();lead.setFirstName(createRefferalRequest.getFirstName());lead.setLastName(createRefferalRequest.getLastName());lead.setLeadMobile(createRefferalRequest.getMobile());lead.setState(createRefferalRequest.getState());lead.setCity(createRefferalRequest.getCity());lead.setAddress(createRefferalRequest.getAddress());lead.setCreatedTimestamp(LocalDateTime.now());lead.setUpdatedTimestamp(LocalDateTime.now());lead.setStatus(createRefferalRequest.getStatus());lead.setSource(createRefferalRequest.getSource());lead.setNotinterestedReason(createRefferalRequest.getReason());if (createRefferalRequest.getColorCheck() == true) {lead.setColor("Green");} else {lead.setColor("Yellow");}AuthUser authUser = authRepository.selectByGmailId(createRefferalRequest.getReffereeEmail());String authUserName = authUser.getFirstName() + " " + authUser.getLastName();lead.setCreatedBy(authUserName);lead.setAuthId(authUser.getId());lead.setAssignTo(authUser.getId());leadRepository.persist(lead);LeadActivity leadActivity = new LeadActivity();leadActivity.setLeadId(lead.getId());leadActivity.setRemark(createRefferalRequest.getRemark());if (createRefferalRequest.getStatus().equals(LeadStatus.followUp)) {leadActivity.setSchelduleTimestamp(createRefferalRequest.getSchelduleTimestamp());leadActivity.setClosureTimestamp(createRefferalRequest.getClosureTimestamp());lead.setClosureTimestamp(createRefferalRequest.getClosureTimestamp());} else {leadActivity.setSchelduleTimestamp(null);leadActivity.setClosureTimestamp(null);lead.setClosureTimestamp(null);}leadActivity.setCreatedTimestamp(LocalDateTime.now());leadActivityRepository.persist(leadActivity);return responseSender.ok(true);}@RequestMapping(value = "/lead-description", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)@ApiImplicitParams({@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })public ResponseEntity<?> leadDescription(HttpServletRequest request, @RequestParam(name = "gmailId") String gmailId,@RequestParam(name = "status") LeadStatus status) throws ProfitMandiBusinessException {AuthUser authUser = authRepository.selectByGmailId(gmailId);List<Lead> leads = leadRepository.selectByAssignAuthIdAndStatus(authUser.getId(), status);return responseSender.ok(leads);}@RequestMapping(value = "/getlead", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)@ApiImplicitParams({@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })public ResponseEntity<?> getLead(HttpServletRequest request, @RequestParam(name = "id") int id)throws ProfitMandiBusinessException {List<LeadActivity> leadActivities = leadActivityRepository.selectBYLeadId(id);Lead lead = leadRepository.selectById(id);lead.setLeadActivities(leadActivities);return responseSender.ok(lead);}@RequestMapping(value = "/leadUpdate", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)@ApiImplicitParams({@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })public ResponseEntity<?> leadUpdate(HttpServletRequest request, @RequestParam(name = "id") int id,@RequestParam(name = "status") LeadStatus status, @RequestParam(name = "colorCheck") Boolean colorCheck,@RequestParam(name = "remark") String remark, @RequestParam(name = "reason") String reason,@RequestParam(name = "schelduleTimestamp") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime schelduleTimestamp,@RequestParam(name = "closureTimestamp") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime closureTimestamp)throws ProfitMandiBusinessException {Lead lead = leadRepository.selectById(id);LeadActivity leadActivity = new LeadActivity();lead.setStatus(status);lead.setNotinterestedReason(reason);leadActivity.setRemark(remark);leadActivity.setLeadId(id);leadActivity.setCreatedTimestamp(LocalDateTime.now());leadActivity.setSchelduleTimestamp(null);leadActivity.setClosureTimestamp(null);lead.setUpdatedTimestamp(LocalDateTime.now());if (colorCheck == true) {lead.setColor("Green");} else {lead.setColor("Yellow");}if (status == LeadStatus.followUp) {leadActivity.setSchelduleTimestamp(schelduleTimestamp);leadActivity.setClosureTimestamp(closureTimestamp);lead.setClosureTimestamp(closureTimestamp);} else {leadActivity.setSchelduleTimestamp(null);leadActivity.setClosureTimestamp(null);lead.setClosureTimestamp(null);}leadActivityRepository.persist(leadActivity);return responseSender.ok(true);}@RequestMapping(value = ProfitMandiConstants.URL_NEW_LEAD, method = RequestMethod.POST)public ResponseEntity<?> newLead(HttpServletRequest request,@RequestBody CreateRefferalRequest createRefferalRequest) throws ProfitMandiBusinessException {LOGGER.info("requested url : " + request.getRequestURL().toString());Lead lead = new Lead();lead.setAddress(createRefferalRequest.getCity());Long.parseLong(createRefferalRequest.getMobile());if (createRefferalRequest.getMobile().length() != 10) {throw new ProfitMandiBusinessException("Mobile Number", createRefferalRequest.getMobile(),"Number should be of 10 digits");}lead.setLeadMobile(createRefferalRequest.getMobile());lead.setCity(createRefferalRequest.getCity());lead.setState(createRefferalRequest.getState());lead.setLastName(createRefferalRequest.getLastName());if (lead.getState().equals("Uttar Pradesh")) {lead.setAssignTo(53);} else if (lead.getState().equals("Haryana")) {lead.setAssignTo(53);} else if (lead.getState().equals("Delhi")) {lead.setAssignTo(53);} else {// Assign to smlead.setAssignTo(53);// Assign to neha// lead.setAssignTo(1);}lead.setAuthId(lead.getAssignTo());lead.setCreatedBy("daily-sync");lead.setSource("SD-WEB");lead.setFirstName(createRefferalRequest.getFirstName());lead.setStatus(LeadStatus.followUp);lead.setColor("yellow");lead.setCreatedTimestamp(LocalDateTime.now());lead.setUpdatedTimestamp(LocalDateTime.now());leadRepository.persist(lead);return responseSender.ok(true);}@RequestMapping(value = "/getPartnersList", method = RequestMethod.GET)@ApiImplicitParams({@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })public ResponseEntity<?> getPartners(HttpServletRequest request, @RequestParam(name = "gmailId") String gmailId)throws ProfitMandiBusinessException {AuthUser authUser = authRepository.selectByGmailId(gmailId);Map<String, Set<String>> storeGuyMap = csService.getAuthUserPartnerEmailMapping();Set<String> emails = storeGuyMap.get(authUser.getEmailId());LOGGER.info("emails" + emails);List<User> users = userRepository.selectAllByEmailIds(new ArrayList<>(emails));List<Partner> partners = new ArrayList<>();for (User user : users) {UserAccount uc = userAccountRepository.selectSaholicByUserId(user.getId());com.spice.profitmandi.dao.entity.user.User userInfo = userUserRepository.selectById(uc.getAccountKey());CustomRetailer customRetailer = retailerService.getFofoRetailer(userInfo.getId());Partner partner = new Partner();partner.setBusinessName(customRetailer.getBusinessName());partner.setPartnerId(customRetailer.getPartnerId());partner.setCartId(customRetailer.getCartId());partner.setEmail(customRetailer.getEmail());partner.setGstNumber(customRetailer.getGstNumber());partner.setDisplayName(customRetailer.getDisplayName());partner.setCity(customRetailer.getAddress().getCity());partner.setUserId(user.getId());partners.add(partner);}LOGGER.info("partners" + partners);return responseSender.ok(partners);}@RequestMapping(value = "/franchise-first-visit", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)@ApiImplicitParams({@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })public ResponseEntity<?> FranchiseFirstVisit(HttpServletRequest request,@RequestBody CreateFranchiseeRequest createFranchiseeRequest) throws Exception {FranchiseeVisit franchiseeVisit = new FranchiseeVisit();franchiseeVisit.setFofoId(createFranchiseeRequest.getFofoId());CustomRetailer customRetailer = retailerService.getFofoRetailer(createFranchiseeRequest.getFofoId());franchiseeVisit.setPartnerName(customRetailer.getBusinessName());franchiseeVisit.setAgenda(createFranchiseeRequest.getAgenda());franchiseeVisit.setCreatedTimestamp(LocalDateTime.now());franchiseeVisit.setUpdatedTimestamp(LocalDateTime.now());franchiseeVisit.setStatus(FranchiseeVisitStatus.OPEN);franchiseeVisit.setSchelduleTimestamp(createFranchiseeRequest.getFirstSchelduleTimestamp());// changeAuthUser authUser = authRepository.selectByGmailId(createFranchiseeRequest.getCreatedBy());String authUserName = authUser.getFirstName() + " " + authUser.getLastName();franchiseeVisit.setCreatedBy(authUserName);franchiseeVisit.setAuthId(authUser.getId());franchiseeVisitRepository.persist(franchiseeVisit);return responseSender.ok(true);}@RequestMapping(value = "/franchise-visit", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)@ApiImplicitParams({@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })public ResponseEntity<?> FranchiseVisit(HttpServletRequest request,@RequestBody CreateFranchiseeRequest createFranchiseeRequest) throws Exception {FranchiseeVisit franchiseeVisit = franchiseeVisitRepository.selectById(createFranchiseeRequest.getId());franchiseeVisit.setFofoId(createFranchiseeRequest.getFofoId());CustomRetailer customRetailer = retailerService.getFofoRetailer(createFranchiseeRequest.getFofoId());franchiseeVisit.setPartnerName(customRetailer.getBusinessName());franchiseeVisit.setAgenda(createFranchiseeRequest.getAgenda());franchiseeVisit.setPartnerRemark(createFranchiseeRequest.getPartnerRemark());franchiseeVisit.setOutsideVisibity(createFranchiseeRequest.getOutsideVisibity());franchiseeVisit.setInstoreVisibility(createFranchiseeRequest.getInstoreVisibility());franchiseeVisit.setOutsideStock(createFranchiseeRequest.getOutsideStock());franchiseeVisit.setSystemKnowledge(createFranchiseeRequest.getSystemKnowledge());franchiseeVisit.setWorkingDevice(createFranchiseeRequest.getWorkingDevice());franchiseeVisit.setWorkingPrinter(createFranchiseeRequest.getWorkingPrinter());franchiseeVisit.setCarryBags(createFranchiseeRequest.getCarryBags());franchiseeVisit.setSmartdukaanTshirt(createFranchiseeRequest.getSmartdukaanTshirt());franchiseeVisit.setLatestDummies(createFranchiseeRequest.getLatestDummies());franchiseeVisit.setInvestment(createFranchiseeRequest.getInvestment());franchiseeVisit.setMtd(createFranchiseeRequest.getMtd());franchiseeVisit.setHygiene(createFranchiseeRequest.getHygiene());franchiseeVisit.setCreatedTimestamp(LocalDateTime.now());franchiseeVisit.setUpdatedTimestamp(LocalDateTime.now());if (createFranchiseeRequest.getAction().equals(FranchiseeActivityStatus.FOLLOWUP)) {franchiseeVisit.setStatus(FranchiseeVisitStatus.OPEN);} else {franchiseeVisit.setStatus(FranchiseeVisitStatus.CLOSE);}// AuthUser authUser =// authRepository.selectByGmailId(createFranchiseeRequest.getCreatedBy());// changeAuthUser authUser = authRepository.selectByGmailId(createFranchiseeRequest.getCreatedBy());String authUserName = authUser.getFirstName() + " " + authUser.getLastName();franchiseeVisit.setCreatedBy(authUserName);franchiseeVisit.setAuthId(authUser.getId());franchiseeVisitRepository.persist(franchiseeVisit);FranchiseeActivity franchiseeActivity = new FranchiseeActivity();franchiseeActivity.setAction(createFranchiseeRequest.getAction());franchiseeActivity.setFranchiseeVisitd(franchiseeVisit.getId());franchiseeActivity.setResolution(createFranchiseeRequest.getResolution());if (createFranchiseeRequest.getAction().equals(FranchiseeActivityStatus.FOLLOWUP)) {franchiseeActivity.setSchelduleTimestamp(createFranchiseeRequest.getSchelduleTimestamp());} else {franchiseeActivity.setSchelduleTimestamp(null);}franchiseeActivity.setCreatedTimestamp(LocalDateTime.now());franchiseeActivityRepository.persist(franchiseeActivity);franchiseeVisit.setFranchiseActivityId(franchiseeActivity.getId());return responseSender.ok(true);}@RequestMapping(value = "/getFranchiseVisit", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)@ApiImplicitParams({@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })public ResponseEntity<?> getFranchiseVisit(HttpServletRequest request,@RequestParam(name = "gmailId") String gmailId, @RequestParam(name = "status") FranchiseeVisitStatus status,@RequestParam(name = "offset", defaultValue = "0") int offset,@RequestParam(name = "limit", defaultValue = "10") int limit) throws ProfitMandiBusinessException {AuthUser authUser = authRepository.selectByGmailId(gmailId);List<FranchiseeVisit> franchiseeVisits = franchiseeVisitRepository.selectByAuthIdAndStatus(authUser.getId(),status, offset, limit);for (FranchiseeVisit fv : franchiseeVisits) {if (fv.getFranchiseActivityId() != 0) {FranchiseeActivity fA = franchiseeActivityRepository.selectById(fv.getFranchiseActivityId());fv.setFranchiseeActivity(fA);}}return responseSender.ok(franchiseeVisits);}@RequestMapping(value = "/getFranchiseActivity", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)@ApiImplicitParams({@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })public ResponseEntity<?> getFranchiseActivity(HttpServletRequest request, @RequestParam(name = "id") int id)throws ProfitMandiBusinessException {List<FranchiseeActivity> franchiseeActivities = franchiseeActivityRepository.selectByFranchiseeVisitId(id);return responseSender.ok(franchiseeActivities);}@RequestMapping(value = "/getFranchiseeInfo", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)@ApiImplicitParams({@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })public ResponseEntity<?> getFranchiseeInfo(HttpServletRequest request, @RequestParam(name = "id") int id)throws ProfitMandiBusinessException {FranchiseeVisit franchiseeVisit = franchiseeVisitRepository.selectById(id);return responseSender.ok(franchiseeVisit);}@RequestMapping(value = "/franchise-visit-update", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)@ApiImplicitParams({@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })public ResponseEntity<?> franchiseVisitUpdate(HttpServletRequest request, @RequestParam(name = "id") int id,@RequestParam(name = "action") FranchiseeActivityStatus action,@RequestParam(name = "resolution") String resolution,@RequestParam(name = "schelduleTimestamp") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime schelduleTimestamp)throws ProfitMandiBusinessException {FranchiseeVisit franchiseeVisit = franchiseeVisitRepository.selectById(id);FranchiseeActivity franchiseeActivity = new FranchiseeActivity();if (action == FranchiseeActivityStatus.FOLLOWUP) {franchiseeActivity.setResolution(resolution);franchiseeActivity.setFranchiseeVisitd(franchiseeVisit.getId());franchiseeActivity.setAction(action);franchiseeActivity.setSchelduleTimestamp(schelduleTimestamp);franchiseeActivity.setCreatedTimestamp(LocalDateTime.now());franchiseeActivityRepository.persist(franchiseeActivity);franchiseeVisit.setFranchiseActivityId(franchiseeActivity.getId());franchiseeVisit.setStatus(FranchiseeVisitStatus.OPEN);franchiseeVisit.setUpdatedTimestamp(LocalDateTime.now());franchiseeVisitRepository.persist(franchiseeVisit);} else {franchiseeActivity.setResolution(resolution);franchiseeActivity.setFranchiseeVisitd(franchiseeVisit.getId());franchiseeActivity.setAction(action);franchiseeActivity.setSchelduleTimestamp(null);franchiseeActivity.setCreatedTimestamp(LocalDateTime.now());franchiseeActivityRepository.persist(franchiseeActivity);franchiseeVisit.setFranchiseActivityId(franchiseeActivity.getId());franchiseeVisit.setStatus(FranchiseeVisitStatus.CLOSE);franchiseeVisit.setUpdatedTimestamp(LocalDateTime.now());franchiseeVisitRepository.persist(franchiseeVisit);}return responseSender.ok(true);}@RequestMapping(value = "/onBoardingTimelineStatus", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)@ApiImplicitParams({@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })public ResponseEntity<?> onBoardingTimelineStatus(HttpServletRequest request, Model model)throws ProfitMandiBusinessException {int userId = (int) request.getAttribute("userId");UserCart uc = userAccountRepository.getUserCart(userId);FofoStore fs = fofoStoreRepository.selectByRetailerId(uc.getUserId());PartnerOnBoardingPanel partnerOnBoardingPanel = partnerOnBoardingPanelRepository.selectByCode(fs.getCode());Map<StoreTimeline, OnBoardingTimelineModel> timelineStatus = null;LOGGER.info("partnerOnBoardingPanel" + partnerOnBoardingPanel);if (partnerOnBoardingPanel != null) {timelineStatus = storeTimelineTatService.getTimeline(partnerOnBoardingPanel.getId());}List<OnBoardingTimelineModel> onBoardingModel = new ArrayList<>();if (timelineStatus != null) {onBoardingModel = timelineStatus.values().stream().skip(2).map(x -> x).collect(Collectors.toList());}return responseSender.ok(onBoardingModel);}@RequestMapping(value = "/onBoardingTimelineVisibility", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)@ApiImplicitParams({@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })public ResponseEntity<?> onBoardingTimelineVisibility(HttpServletRequest request, Model model)throws ProfitMandiBusinessException {int userId = (int) request.getAttribute("userId");UserCart uc = userAccountRepository.getUserCart(userId);FofoStore fs = fofoStoreRepository.selectByRetailerId(uc.getUserId());PartnerOnBoardingPanel partnerOnBoardingPanel = partnerOnBoardingPanelRepository.selectByCode(fs.getCode());boolean status = true;if (partnerOnBoardingPanel != null) {status = storeTimelineTatService.getTimelineCompleted(partnerOnBoardingPanel.getId());}LOGGER.info("status" + status);return responseSender.ok(status);}}