| Line 11... |
Line 11... |
| 11 |
import com.spice.profitmandi.common.util.FormattingUtils;
|
11 |
import com.spice.profitmandi.common.util.FormattingUtils;
|
| 12 |
import com.spice.profitmandi.common.web.util.ResponseSender;
|
12 |
import com.spice.profitmandi.common.web.util.ResponseSender;
|
| 13 |
import com.spice.profitmandi.dao.entity.catalog.Offer;
|
13 |
import com.spice.profitmandi.dao.entity.catalog.Offer;
|
| 14 |
import com.spice.profitmandi.dao.entity.fofo.PartnerType;
|
14 |
import com.spice.profitmandi.dao.entity.fofo.PartnerType;
|
| 15 |
import com.spice.profitmandi.dao.enumuration.catalog.ItemCriteriaType;
|
15 |
import com.spice.profitmandi.dao.enumuration.catalog.ItemCriteriaType;
|
| - |
|
16 |
import com.spice.profitmandi.dao.enumuration.catalog.OfferSchemeType;
|
| 16 |
import com.spice.profitmandi.dao.model.CreateOfferRequest;
|
17 |
import com.spice.profitmandi.dao.model.CreateOfferRequest;
|
| 17 |
import com.spice.profitmandi.dao.model.OfferRowModel;
|
18 |
import com.spice.profitmandi.dao.model.OfferRowModel;
|
| 18 |
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
|
19 |
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
|
| 19 |
import com.spice.profitmandi.dao.repository.catalog.OfferMarginRepository;
|
20 |
import com.spice.profitmandi.dao.repository.catalog.OfferMarginRepository;
|
| 20 |
import com.spice.profitmandi.dao.repository.catalog.OfferPartnerRepository;
|
21 |
import com.spice.profitmandi.dao.repository.catalog.OfferPartnerRepository;
|
| Line 145... |
Line 146... |
| 145 |
|
146 |
|
| 146 |
}
|
147 |
}
|
| 147 |
|
148 |
|
| 148 |
@RequestMapping(value = "/createOffer", method = RequestMethod.POST)
|
149 |
@RequestMapping(value = "/createOffer", method = RequestMethod.POST)
|
| 149 |
public String createOffer(HttpServletRequest request, @RequestBody CreateOfferRequest createOfferRequest,
|
150 |
public String createOffer(HttpServletRequest request, @RequestBody CreateOfferRequest createOfferRequest,
|
| 150 |
Model model) throws Exception {
|
151 |
Model model) throws Exception {
|
| 151 |
LOGGER.info("createOfferRequest [{}]", createOfferRequest);
|
152 |
LOGGER.info("createOfferRequest [{}]", createOfferRequest);
|
| 152 |
offerService.addOfferService(createOfferRequest);
|
153 |
offerService.addOfferService(createOfferRequest);
|
| 153 |
thirtyMinsTimeOutCacheManager.getCache("allOffers").evict(YearMonth.now());
|
154 |
thirtyMinsTimeOutCacheManager.getCache("allOffers").evict(YearMonth.now());
|
| 154 |
model.addAttribute("response", mvcResponseSender.createResponseString(true));
|
155 |
model.addAttribute("response", mvcResponseSender.createResponseString(true));
|
| 155 |
return "response";
|
156 |
return "response";
|
| Line 165... |
Line 166... |
| 165 |
|
166 |
|
| 166 |
}
|
167 |
}
|
| 167 |
|
168 |
|
| 168 |
@RequestMapping(value = "/offer/active/{offerId}", method = RequestMethod.GET)
|
169 |
@RequestMapping(value = "/offer/active/{offerId}", method = RequestMethod.GET)
|
| 169 |
public String activateOffer(HttpServletRequest request, @PathVariable(name = "offerId") String offerIdsString,
|
170 |
public String activateOffer(HttpServletRequest request, @PathVariable(name = "offerId") String offerIdsString,
|
| 170 |
Model model, @RequestParam(defaultValue = "true") boolean active)
|
171 |
Model model, @RequestParam(defaultValue = "true") boolean active)
|
| 171 |
throws ProfitMandiBusinessException, Exception {
|
172 |
throws ProfitMandiBusinessException, Exception {
|
| 172 |
List<Integer> offerIds = Arrays.stream(offerIdsString.split(",")).map(x -> Integer.parseInt(x))
|
173 |
List<Integer> offerIds = Arrays.stream(offerIdsString.split(",")).map(x -> Integer.parseInt(x))
|
| 173 |
.collect(Collectors.toList());
|
174 |
.collect(Collectors.toList());
|
| 174 |
List<Offer> offers = offerRepository.selectAllByIds(offerIds);
|
175 |
List<Offer> offers = offerRepository.selectAllByIds(offerIds);
|
| 175 |
boolean shouldEvict = false;
|
176 |
boolean shouldEvict = false;
|
| Line 196... |
Line 197... |
| 196 |
// return "offer_margin_detail_partner2";
|
197 |
// return "offer_margin_detail_partner2";
|
| 197 |
}
|
198 |
}
|
| 198 |
|
199 |
|
| 199 |
@RequestMapping(value = "/offer/testimage/{offerId}", method = RequestMethod.GET)
|
200 |
@RequestMapping(value = "/offer/testimage/{offerId}", method = RequestMethod.GET)
|
| 200 |
public String testOffer(HttpServletRequest request, @PathVariable int offerId, Model model,
|
201 |
public String testOffer(HttpServletRequest request, @PathVariable int offerId, Model model,
|
| 201 |
@RequestParam(defaultValue = "true") boolean active) throws ProfitMandiBusinessException, Exception {
|
202 |
@RequestParam(defaultValue = "true") boolean active) throws ProfitMandiBusinessException, Exception {
|
| 202 |
Offer offer = offerRepository.selectById(offerId);
|
203 |
Offer offer = offerRepository.selectById(offerId);
|
| 203 |
// model.addAttribute("response", mvcResponseSender.createResponseString(true));
|
204 |
// model.addAttribute("response", mvcResponseSender.createResponseString(true));
|
| 204 |
// return "response";
|
205 |
// return "response";
|
| 205 |
CreateOfferRequest createOfferRequest = offerService.getCreateOfferRequest(offer);
|
206 |
CreateOfferRequest createOfferRequest = offerService.getCreateOfferRequest(offer);
|
| 206 |
model.addAttribute("offer", createOfferRequest);
|
207 |
model.addAttribute("offer", createOfferRequest);
|
| Line 210... |
Line 211... |
| 210 |
@Autowired
|
211 |
@Autowired
|
| 211 |
private com.spice.profitmandi.dao.repository.dtr.UserRepository dtrUserRepository;
|
212 |
private com.spice.profitmandi.dao.repository.dtr.UserRepository dtrUserRepository;
|
| 212 |
|
213 |
|
| 213 |
@RequestMapping(value = "/offer/active/fofo/{fofoId}", method = RequestMethod.GET)
|
214 |
@RequestMapping(value = "/offer/active/fofo/{fofoId}", method = RequestMethod.GET)
|
| 214 |
public String sendOfferNotification(HttpServletRequest request, @PathVariable int fofoId, Model model,
|
215 |
public String sendOfferNotification(HttpServletRequest request, @PathVariable int fofoId, Model model,
|
| 215 |
@RequestParam(defaultValue = "true") boolean active) throws ProfitMandiBusinessException, Exception {
|
216 |
@RequestParam(defaultValue = "true") boolean active) throws ProfitMandiBusinessException, Exception {
|
| 216 |
List<Offer> offers = offerRepository.selectAllPublishedMapByPartner(YearMonth.now()).get(fofoId);
|
217 |
List<Offer> offers = offerRepository.selectAllPublishedMapByPartner(YearMonth.now()).get(fofoId);
|
| 217 |
for (Offer offer : offers) {
|
218 |
for (Offer offer : offers) {
|
| 218 |
this.sendNotification(offer);
|
219 |
this.sendNotification(offer);
|
| 219 |
}
|
220 |
}
|
| 220 |
model.addAttribute("response", mvcResponseSender.createResponseString(true));
|
221 |
model.addAttribute("response", mvcResponseSender.createResponseString(true));
|
| Line 366... |
Line 367... |
| 366 |
|
367 |
|
| 367 |
List<CreateOfferRequest> publishedOffers = offerService.getAllOffers(yearMonth).values().stream()
|
368 |
List<CreateOfferRequest> publishedOffers = offerService.getAllOffers(yearMonth).values().stream()
|
| 368 |
.sorted(Comparator.comparing(CreateOfferRequest::getId).reversed()).collect(Collectors.toList());
|
369 |
.sorted(Comparator.comparing(CreateOfferRequest::getId).reversed()).collect(Collectors.toList());
|
| 369 |
model.addAttribute("offers", publishedOffers);
|
370 |
model.addAttribute("offers", publishedOffers);
|
| 370 |
model.addAttribute("yearMonth", yearMonth);
|
371 |
model.addAttribute("yearMonth", yearMonth);
|
| - |
|
372 |
model.addAttribute("currentMonth", yearMonth.equals(YearMonth.now()));
|
| 371 |
|
373 |
|
| 372 |
return "offer_history";
|
374 |
return "offer_history";
|
| 373 |
}
|
375 |
}
|
| 374 |
|
376 |
|
| 375 |
@RequestMapping(value = "/offer-details", method = RequestMethod.GET)
|
377 |
@RequestMapping(value = "/offer-details", method = RequestMethod.GET)
|
| Line 379... |
Line 381... |
| 379 |
|
381 |
|
| 380 |
model.addAttribute("offer", createOfferRequest);
|
382 |
model.addAttribute("offer", createOfferRequest);
|
| 381 |
return "offer-details";
|
383 |
return "offer-details";
|
| 382 |
}
|
384 |
}
|
| 383 |
|
385 |
|
| - |
|
386 |
@RequestMapping(value = "/offer/process/{offerId}", method = RequestMethod.GET)
|
| - |
|
387 |
public ResponseEntity<?> processOfferRequest(HttpServletRequest request, @PathVariable int offerId, Model model)
|
| - |
|
388 |
throws Exception {
|
| - |
|
389 |
CreateOfferRequest createOfferRequest = offerService.getOffer(0, offerId);
|
| - |
|
390 |
if (createOfferRequest.getSchemeType().equals(OfferSchemeType.SELLIN)) {
|
| - |
|
391 |
offerRepository.processSellin(createOfferRequest);
|
| - |
|
392 |
}
|
| - |
|
393 |
return responseSender.ok(true);
|
| - |
|
394 |
}
|
| - |
|
395 |
|
| 384 |
@RequestMapping(value = "/offerDownload", method = RequestMethod.GET)
|
396 |
@RequestMapping(value = "/offerDownload", method = RequestMethod.GET)
|
| 385 |
public ResponseEntity<?> dowloadOfferSummary(HttpServletRequest request, @RequestParam int offerId, Model model)
|
397 |
public ResponseEntity<?> dowloadOfferSummary(HttpServletRequest request, @RequestParam int offerId, Model model)
|
| 386 |
throws Exception {
|
398 |
throws Exception {
|
| 387 |
List<List<?>> listOfRows = new ArrayList<>();
|
399 |
List<List<?>> listOfRows = new ArrayList<>();
|
| 388 |
final HttpHeaders headers = new HttpHeaders();
|
400 |
final HttpHeaders headers = new HttpHeaders();
|
| 389 |
headers.set("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
401 |
headers.set("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
| 390 |
headers.set("Content-disposition", "inline; filename=offer-" + offerId + ".csv");
|
402 |
headers.set("Content-disposition", "inline; filename=offer-" + offerId + ".csv");
|
| 391 |
CreateOfferRequest createOfferRequest = offerService.getOffer(0, offerId);
|
403 |
CreateOfferRequest createOfferRequest = offerService.getOffer(0, offerId);
|
| 392 |
Collection<OfferRowModel> offerRowModels = offerRepository.getOfferRows(createOfferRequest);
|
404 |
Collection<OfferRowModel> offerRowModels = offerRepository.getOfferRows(createOfferRequest);
|
| - |
|
405 |
ByteArrayOutputStream baos = null;
|
| - |
|
406 |
if (createOfferRequest.getSchemeType().equals(OfferSchemeType.SELLIN)) {
|
| - |
|
407 |
for (OfferRowModel offerRowModel : offerRowModels) {
|
| - |
|
408 |
CustomRetailer customRetailer = retailerService.getFofoRetailer(offerRowModel.getFofoId());
|
| - |
|
409 |
listOfRows.add(Arrays.asList(createOfferRequest.getId(), createOfferRequest.getName(),
|
| - |
|
410 |
createOfferRequest.getTargetType(), createOfferRequest.getSchemeType(),
|
| - |
|
411 |
createOfferRequest.getBrandShareTerms(), createOfferRequest.getSellinPercentage(),
|
| - |
|
412 |
"--", createOfferRequest.getItemCriteriaString(),
|
| - |
|
413 |
createOfferRequest.getStartDate(), createOfferRequest.getEndDate(),
|
| - |
|
414 |
createOfferRequest.getCreatedOn(), customRetailer.getPartnerId(), customRetailer.getBusinessName(),
|
| - |
|
415 |
customRetailer.getCode(), offerRowModel.getTotalBasePurchaseValue(), offerRowModel.getAchievedTarget(),
|
| - |
|
416 |
offerRowModel.getPayoutPurchaseValue(), offerRowModel.getPayout(), offerRowModel.getPayoutType(), offerRowModel.getFinalPayout(), String.join(", ", offerRowModel.getEligibleImeis())));
|
| - |
|
417 |
}
|
| - |
|
418 |
baos = FileUtil.getCSVByteStream(
|
| - |
|
419 |
Arrays.asList("Id", "Name", "Target Type", "Scheme Type", "Brand %", "Sellin %", "Partner Criteria",
|
| - |
|
420 |
"Item Criteria", "Start", "End", "Created", "Partner Id", "Partner Name", "Partner Code",
|
| - |
|
421 |
"Base Purchase", "Achieved Target", "Eligible Purchase", "Slab Amount", "Slab Amount Type", "Payout Value(Rs.)",
|
| - |
|
422 |
"Eligible IMEIs"
|
| - |
|
423 |
), listOfRows);
|
| - |
|
424 |
} else {
|
| 393 |
|
425 |
|
| 394 |
for (OfferRowModel offerRowModel : offerRowModels) {
|
426 |
for (OfferRowModel offerRowModel : offerRowModels) {
|
| 395 |
CustomRetailer customRetailer = retailerService.getFofoRetailer(offerRowModel.getFofoId());
|
427 |
CustomRetailer customRetailer = retailerService.getFofoRetailer(offerRowModel.getFofoId());
|
| 396 |
listOfRows.add(Arrays.asList(createOfferRequest.getId(), createOfferRequest.getName(),
|
428 |
listOfRows.add(Arrays.asList(createOfferRequest.getId(), createOfferRequest.getName(),
|
| 397 |
createOfferRequest.getTargetType(), createOfferRequest.getSchemeType(),
|
429 |
createOfferRequest.getTargetType(), createOfferRequest.getSchemeType(),
|
| 398 |
createOfferRequest.getBrandShareTerms(), createOfferRequest.getSellinPercentage(),
|
430 |
createOfferRequest.getBrandShareTerms(), createOfferRequest.getSellinPercentage(),
|
| 399 |
createOfferRequest.getPartnerCriteriaString(), createOfferRequest.getItemCriteriaString(),
|
431 |
createOfferRequest.getPartnerCriteriaString(), createOfferRequest.getItemCriteriaString(),
|
| 400 |
createOfferRequest.getStartDate(), createOfferRequest.getEndDate(),
|
432 |
createOfferRequest.getStartDate(), createOfferRequest.getEndDate(),
|
| 401 |
createOfferRequest.getCreatedOn(), customRetailer.getPartnerId(), customRetailer.getBusinessName(),
|
433 |
createOfferRequest.getCreatedOn(), customRetailer.getPartnerId(), customRetailer.getBusinessName(),
|
| 402 |
customRetailer.getCode(), offerRowModel.getTotalSale(), offerRowModel.getEligibleSale(),
|
434 |
customRetailer.getCode(), offerRowModel.getTotalSale(), offerRowModel.getEligibleSale(),
|
| 403 |
offerRowModel.getAchievedTarget(), offerRowModel.getNextTarget(), offerRowModel.getEligibleSaleDp(),
|
435 |
offerRowModel.getAchievedTarget(), offerRowModel.getNextTarget(), offerRowModel.getEligibleSaleDp(),
|
| 404 |
offerRowModel.getTotalPurchaseValue(), offerRowModel.getCurrentPayoutTarget(),
|
436 |
offerRowModel.getTotalBasePurchaseValue(), offerRowModel.getCurrentPayoutTarget(),
|
| 405 |
offerRowModel.getPayoutTargetAchieved(), offerRowModel.getAmountType(),
|
437 |
offerRowModel.getPayoutTargetAchieved(), offerRowModel.getPayoutType(),
|
| 406 |
offerRowModel.getPayoutValue(), offerRowModel.getPayoutValueDp(), offerRowModel.getFinalPayout(),
|
438 |
offerRowModel.getPayoutValue(), offerRowModel.getPayoutValueDp(), offerRowModel.getFinalPayout(),
|
| 407 |
String.join(", ", offerRowModel.getPendingImeis())));
|
439 |
String.join(", ", offerRowModel.getPendingImeis())));
|
| 408 |
}
|
440 |
}
|
| 409 |
ByteArrayOutputStream baos = FileUtil.getCSVByteStream(
|
441 |
baos = FileUtil.getCSVByteStream(
|
| 410 |
Arrays.asList("Id", "Name", "Target Type", "Scheme Type", "Brand %", "Sellin %", "Partner Criteria",
|
442 |
Arrays.asList("Id", "Name", "Target Type", "Scheme Type", "Brand %", "Sellin %", "Partner Criteria",
|
| 411 |
"Item Criteria", "Start", "End", "Created", "Partner Id", "Partner Name", "Partner Code",
|
443 |
"Item Criteria", "Start", "End", "Created", "Partner Id", "Partner Name", "Partner Code",
|
| 412 |
"Total Sale", "Eligible Sale", "Achieved Target", "Next Target", "Eligible Sale DP",
|
444 |
"Total Value", "Eligible Value", "Achieved Target", "Next Target", "Eligible Sale DP",
|
| 413 |
"Total Purchase DP", "Current Payout Target", "Payout Target Achieved", "Payout Amount Type",
|
445 |
"Total Purchase DP", "Current Payout Target", "Payout Target Achieved", "Payout Amount Type",
|
| 414 |
"Payout Value", "Payout Value DP", "Amount to be credited", "IMEIs pending for Activation"
|
446 |
"Payout Value", "Payout Value DP", "Amount to be credited", "IMEIs pending for Activation"
|
| 415 |
// "Payout Sale Qty", "Activated Value", "Activated Qty",
|
447 |
// "Payout Sale Qty", "Activated Value", "Activated Qty",
|
| 416 |
), listOfRows);
|
448 |
), listOfRows);
|
| - |
|
449 |
}
|
| 417 |
final InputStream inputStream = new ByteArrayInputStream(baos.toByteArray());
|
450 |
final InputStream inputStream = new ByteArrayInputStream(baos.toByteArray());
|
| 418 |
final InputStreamResource inputStreamResource = new InputStreamResource(inputStream);
|
451 |
final InputStreamResource inputStreamResource = new InputStreamResource(inputStream);
|
| 419 |
return new ResponseEntity<>(inputStreamResource, headers, HttpStatus.OK);
|
452 |
return new ResponseEntity<>(inputStreamResource, headers, HttpStatus.OK);
|
| 420 |
}
|
453 |
}
|
| 421 |
|
454 |
|
| Line 453... |
Line 486... |
| 453 |
@Autowired
|
486 |
@Autowired
|
| 454 |
RoleManager roleManager;
|
487 |
RoleManager roleManager;
|
| 455 |
|
488 |
|
| 456 |
@RequestMapping(value = "/getOfferMargins", method = RequestMethod.GET)
|
489 |
@RequestMapping(value = "/getOfferMargins", method = RequestMethod.GET)
|
| 457 |
public String getOfferMargins(HttpServletRequest request,
|
490 |
public String getOfferMargins(HttpServletRequest request,
|
| 458 |
@RequestParam(name = "offerId", defaultValue = "0") int offerId, Model model) throws Exception {
|
491 |
@RequestParam(name = "offerId", defaultValue = "0") int offerId, Model model) throws Exception {
|
| 459 |
LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
|
492 |
LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
|
| 460 |
boolean isAdmin = roleManager.isAdmin(loginDetails.getRoleIds());
|
493 |
boolean isAdmin = roleManager.isAdmin(loginDetails.getRoleIds());
|
| 461 |
CreateOfferRequest createOfferRequest = offerService.getOffer(isAdmin ? 0 : loginDetails.getFofoId(), offerId);
|
494 |
CreateOfferRequest createOfferRequest = offerService.getOffer(isAdmin ? 0 : loginDetails.getFofoId(), offerId);
|
| 462 |
|
495 |
|
| 463 |
model.addAttribute("offer", createOfferRequest);
|
496 |
model.addAttribute("offer", createOfferRequest);
|