| Line 12... |
Line 12... |
| 12 |
import com.spice.profitmandi.dao.entity.catalog.Offer;
|
12 |
import com.spice.profitmandi.dao.entity.catalog.Offer;
|
| 13 |
import com.spice.profitmandi.dao.entity.fofo.PartnerType;
|
13 |
import com.spice.profitmandi.dao.entity.fofo.PartnerType;
|
| 14 |
import com.spice.profitmandi.dao.enumuration.catalog.ItemCriteriaType;
|
14 |
import com.spice.profitmandi.dao.enumuration.catalog.ItemCriteriaType;
|
| 15 |
import com.spice.profitmandi.dao.enumuration.catalog.OfferSchemeType;
|
15 |
import com.spice.profitmandi.dao.enumuration.catalog.OfferSchemeType;
|
| 16 |
import com.spice.profitmandi.dao.model.CreateOfferRequest;
|
16 |
import com.spice.profitmandi.dao.model.CreateOfferRequest;
|
| - |
|
17 |
import com.spice.profitmandi.dao.model.ItemCriteriaPayout;
|
| 17 |
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
|
18 |
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
|
| 18 |
import com.spice.profitmandi.dao.repository.catalog.OfferMarginRepository;
|
19 |
import com.spice.profitmandi.dao.repository.catalog.OfferMarginRepository;
|
| 19 |
import com.spice.profitmandi.dao.repository.catalog.OfferPartnerRepository;
|
20 |
import com.spice.profitmandi.dao.repository.catalog.OfferPartnerRepository;
|
| 20 |
import com.spice.profitmandi.dao.repository.catalog.OfferRepository;
|
21 |
import com.spice.profitmandi.dao.repository.catalog.OfferRepository;
|
| 21 |
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
|
22 |
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
|
| Line 23... |
Line 24... |
| 23 |
import com.spice.profitmandi.dao.repository.dtr.UserAccountRepository;
|
24 |
import com.spice.profitmandi.dao.repository.dtr.UserAccountRepository;
|
| 24 |
import com.spice.profitmandi.dao.repository.fofo.PartnerTypeChangeService;
|
25 |
import com.spice.profitmandi.dao.repository.fofo.PartnerTypeChangeService;
|
| 25 |
import com.spice.profitmandi.service.NotificationService;
|
26 |
import com.spice.profitmandi.service.NotificationService;
|
| 26 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
27 |
import com.spice.profitmandi.service.authentication.RoleManager;
|
| 27 |
import com.spice.profitmandi.service.catalog.BrandsService;
|
28 |
import com.spice.profitmandi.service.catalog.BrandsService;
|
| - |
|
29 |
import com.spice.profitmandi.service.offers.ItemCriteria;
|
| 28 |
import com.spice.profitmandi.service.offers.OfferService;
|
30 |
import com.spice.profitmandi.service.offers.OfferService;
|
| 29 |
import com.spice.profitmandi.service.user.RetailerService;
|
31 |
import com.spice.profitmandi.service.user.RetailerService;
|
| 30 |
import com.spice.profitmandi.service.whatsapp.WhatsappMessageType;
|
32 |
import com.spice.profitmandi.service.whatsapp.WhatsappMessageType;
|
| 31 |
import com.spice.profitmandi.web.model.LoginDetails;
|
33 |
import com.spice.profitmandi.web.model.LoginDetails;
|
| 32 |
import com.spice.profitmandi.web.util.CookiesProcessor;
|
34 |
import com.spice.profitmandi.web.util.CookiesProcessor;
|
| Line 423... |
Line 425... |
| 423 |
model.addAttribute("offer", offer);
|
425 |
model.addAttribute("offer", offer);
|
| 424 |
return "offer-edit";
|
426 |
return "offer-edit";
|
| 425 |
|
427 |
|
| 426 |
}
|
428 |
}
|
| 427 |
|
429 |
|
| 428 |
@RequestMapping(value = "/published-offers/{yearMonth}", method = RequestMethod.GET)
|
430 |
@RequestMapping(value = "/published-offers", method = RequestMethod.GET)
|
| 429 |
public String publishedOffersOnMonthBefore(HttpServletRequest request, @PathVariable int yearMonth, Model model)
|
431 |
public String publishedOffersOnMonthBefore(HttpServletRequest request, @RequestParam int yearMonth, @RequestParam(required = false, defaultValue = "") String brandFilter, Model model)
|
| 430 |
throws ProfitMandiBusinessException {
|
432 |
throws ProfitMandiBusinessException {
|
| - |
|
433 |
LOGGER.info("publishedOffersCalled");
|
| 431 |
LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
|
434 |
LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
|
| 432 |
int fofoId = loginDetails.getFofoId();
|
435 |
int fofoId = loginDetails.getFofoId();
|
| 433 |
List<CreateOfferRequest> createOffers = offerService.getPublishedOffers(fofoId,
|
436 |
List<CreateOfferRequest> createOffers = offerService.getPublishedOffers(fofoId,
|
| 434 |
YearMonth.from(LocalDate.now()).minusMonths(yearMonth));
|
437 |
YearMonth.from(LocalDate.now()).minusMonths(yearMonth));
|
| 435 |
|
438 |
|
| - |
|
439 |
List<CreateOfferRequest> publishedOffers = new ArrayList<>();
|
| - |
|
440 |
if(!brandFilter.isEmpty()){
|
| - |
|
441 |
publishedOffers= createOffers.stream()
|
| - |
|
442 |
.filter(createOffer -> createOffer.getTargetSlabs().stream()
|
| - |
|
443 |
.map(x -> x.getItemCriteriaPayouts())
|
| - |
|
444 |
.flatMap(List::stream)
|
| - |
|
445 |
.map(ItemCriteriaPayout::getItemCriteria)
|
| - |
|
446 |
.map(ItemCriteria::getBrands)
|
| - |
|
447 |
.flatMap(List::stream)
|
| - |
|
448 |
.anyMatch(brand -> brand.equals(brandFilter)))
|
| - |
|
449 |
.collect(Collectors.toList());
|
| - |
|
450 |
}else{
|
| - |
|
451 |
publishedOffers.addAll(createOffers);
|
| - |
|
452 |
}
|
| - |
|
453 |
|
| 436 |
model.addAttribute("publishedOffers", createOffers);
|
454 |
model.addAttribute("publishedOffers", publishedOffers);
|
| 437 |
|
455 |
|
| 438 |
return "published-offers";
|
456 |
return "published-offers";
|
| 439 |
}
|
457 |
}
|
| 440 |
|
458 |
|
| 441 |
@PostMapping(value = "/offers/upload")
|
459 |
@PostMapping(value = "/offers/upload")
|