| Line 3... |
Line 3... |
| 3 |
import java.io.ByteArrayInputStream;
|
3 |
import java.io.ByteArrayInputStream;
|
| 4 |
import java.io.ByteArrayOutputStream;
|
4 |
import java.io.ByteArrayOutputStream;
|
| 5 |
import java.io.InputStream;
|
5 |
import java.io.InputStream;
|
| 6 |
import java.time.LocalDate;
|
6 |
import java.time.LocalDate;
|
| 7 |
import java.time.LocalDateTime;
|
7 |
import java.time.LocalDateTime;
|
| - |
|
8 |
import java.time.LocalTime;
|
| 8 |
import java.util.ArrayList;
|
9 |
import java.util.ArrayList;
|
| 9 |
import java.util.Arrays;
|
10 |
import java.util.Arrays;
|
| 10 |
import java.util.HashMap;
|
11 |
import java.util.HashMap;
|
| 11 |
import java.util.HashSet;
|
12 |
import java.util.HashSet;
|
| - |
|
13 |
import java.util.LinkedHashSet;
|
| 12 |
import java.util.List;
|
14 |
import java.util.List;
|
| - |
|
15 |
import java.util.ListIterator;
|
| 13 |
import java.util.Map;
|
16 |
import java.util.Map;
|
| 14 |
import java.util.Set;
|
17 |
import java.util.Set;
|
| 15 |
import java.util.stream.Collectors;
|
18 |
import java.util.stream.Collectors;
|
| 16 |
|
19 |
|
| 17 |
import javax.servlet.http.HttpServletRequest;
|
20 |
import javax.servlet.http.HttpServletRequest;
|
| Line 41... |
Line 44... |
| 41 |
import com.spice.profitmandi.common.model.SchemeItems;
|
44 |
import com.spice.profitmandi.common.model.SchemeItems;
|
| 42 |
import com.spice.profitmandi.common.model.SchemeModel;
|
45 |
import com.spice.profitmandi.common.model.SchemeModel;
|
| 43 |
import com.spice.profitmandi.common.util.ExcelUtils;
|
46 |
import com.spice.profitmandi.common.util.ExcelUtils;
|
| 44 |
import com.spice.profitmandi.common.util.StringUtils;
|
47 |
import com.spice.profitmandi.common.util.StringUtils;
|
| 45 |
import com.spice.profitmandi.common.web.util.ResponseSender;
|
48 |
import com.spice.profitmandi.common.web.util.ResponseSender;
|
| - |
|
49 |
import com.spice.profitmandi.dao.entity.catalog.Item;
|
| 46 |
import com.spice.profitmandi.dao.entity.catalog.Offer;
|
50 |
import com.spice.profitmandi.dao.entity.catalog.Offer;
|
| 47 |
import com.spice.profitmandi.dao.entity.catalog.OfferPartner;
|
51 |
import com.spice.profitmandi.dao.entity.catalog.OfferPartner;
|
| 48 |
import com.spice.profitmandi.dao.entity.catalog.Offermargin;
|
52 |
import com.spice.profitmandi.dao.entity.catalog.Offermargin;
|
| 49 |
import com.spice.profitmandi.dao.entity.catalog.Scheme;
|
53 |
import com.spice.profitmandi.dao.entity.catalog.Scheme;
|
| 50 |
import com.spice.profitmandi.dao.entity.fofo.PartnerType;
|
54 |
import com.spice.profitmandi.dao.entity.fofo.PartnerType;
|
| - |
|
55 |
import com.spice.profitmandi.dao.entity.fofo.PrebookingListing;
|
| 51 |
import com.spice.profitmandi.dao.entity.fofo.SchemeItem;
|
56 |
import com.spice.profitmandi.dao.entity.fofo.SchemeItem;
|
| 52 |
import com.spice.profitmandi.dao.enumuration.catalog.ItemCriteriaType;
|
57 |
import com.spice.profitmandi.dao.enumuration.catalog.ItemCriteriaType;
|
| 53 |
import com.spice.profitmandi.dao.model.AmountMarginModel;
|
58 |
import com.spice.profitmandi.dao.model.AmountMarginModel;
|
| 54 |
import com.spice.profitmandi.dao.model.CreateOfferRequest;
|
59 |
import com.spice.profitmandi.dao.model.CreateOfferRequest;
|
| 55 |
import com.spice.profitmandi.dao.model.CreateSchemeRequest;
|
60 |
import com.spice.profitmandi.dao.model.CreateSchemeRequest;
|
| Line 651... |
Line 656... |
| 651 |
|
656 |
|
| 652 |
model.addAttribute("customRetailersMap", customRetailersMap);
|
657 |
model.addAttribute("customRetailersMap", customRetailersMap);
|
| 653 |
model.addAttribute("itemCriteriaType", ItemCriteriaType.values());
|
658 |
model.addAttribute("itemCriteriaType", ItemCriteriaType.values());
|
| 654 |
model.addAttribute("brands", brands);
|
659 |
model.addAttribute("brands", brands);
|
| 655 |
model.addAttribute("partnerCategories", PartnerType.values());
|
660 |
model.addAttribute("partnerCategories", PartnerType.values());
|
| 656 |
model.addAttribute("warehouseRegion", ProfitMandiConstants.WAREHOUSE_MAP);
|
- |
|
| 657 |
// model.addAttribute("brands", "");
|
- |
|
| 658 |
return "scheme_offer";
|
661 |
return "scheme_offer";
|
| 659 |
|
662 |
|
| 660 |
}
|
663 |
}
|
| 661 |
|
664 |
|
| 662 |
@RequestMapping(value = "/createOffer", method = RequestMethod.POST)
|
665 |
@RequestMapping(value = "/createOffer", method = RequestMethod.POST)
|
| Line 665... |
Line 668... |
| 665 |
LOGGER.info("createOfferRequest" + createOfferRequest.getAmountOffer());
|
668 |
LOGGER.info("createOfferRequest" + createOfferRequest.getAmountOffer());
|
| 666 |
|
669 |
|
| 667 |
Offer offer = new Offer();
|
670 |
Offer offer = new Offer();
|
| 668 |
offer.setName(createOfferRequest.getName());
|
671 |
offer.setName(createOfferRequest.getName());
|
| 669 |
offer.setDescription(createOfferRequest.getDescription());
|
672 |
offer.setDescription(createOfferRequest.getDescription());
|
| - |
|
673 |
offer.setItemCreteria(createOfferRequest.getItemCriteria());
|
| 670 |
offer.setTargetType(createOfferRequest.getTargetType());
|
674 |
offer.setTargetType(createOfferRequest.getTargetType());
|
| 671 |
offer.setAmountType(createOfferRequest.getAmountType());
|
675 |
offer.setAmountType(createOfferRequest.getAmountType());
|
| 672 |
offer.setStartDate(createOfferRequest.getStartDate());
|
676 |
offer.setStartDateTime(createOfferRequest.getStartDate());
|
| 673 |
offer.setEndDate(createOfferRequest.getEndDate());
|
677 |
offer.setEndDateTime(createOfferRequest.getEndDate());
|
| - |
|
678 |
offer.setPrice(createOfferRequest.getPrice());
|
| 674 |
offer.setCreatedTimestamp(LocalDateTime.now());
|
679 |
offer.setCreatedTimestamp(LocalDateTime.now());
|
| 675 |
offer.setSchemeType(createOfferRequest.getSchemeType());
|
680 |
offer.setSchemeType(createOfferRequest.getSchemeType());
|
| 676 |
// offer.setItemCreteria(createOfferRequest.getItemCriteria());
|
- |
|
| 677 |
// offer.setCriteria(createOfferRequest.getCriteria());
|
681 |
offer.setCriteria(createOfferRequest.getCriteria());
|
| 678 |
// offer.setPartnerType(createOfferRequest.getPartnerType());
|
682 |
offer.setPartnerType(createOfferRequest.getPartnerType());
|
| 679 |
|
683 |
|
| 680 |
if (createOfferRequest.getItemCriteria().equals(ItemCriteriaType.Item_Model)) {
|
684 |
if (createOfferRequest.getItemCriteria().equals(ItemCriteriaType.Item_Model)) {
|
| 681 |
ItemTypeParams itemTypeParams = new ItemTypeParams();
|
685 |
ItemTypeParams itemTypeParams = new ItemTypeParams();
|
| 682 |
itemTypeParams.setCatalogId(createOfferRequest.getCatalogIds());
|
686 |
itemTypeParams.setCatalogId(createOfferRequest.getCatalogIds());
|
| 683 |
SimpleItemType sit = new SimpleItemType(itemTypeParams);
|
687 |
SimpleItemType sit = new SimpleItemType(itemTypeParams);
|
| 684 |
sit.setItemTypeParams(itemTypeParams);
|
688 |
sit.setItemTypeParams(itemTypeParams);
|
| 685 |
// offer.setItemParam(gson.toJson(itemTypeParams));
|
689 |
offer.setItemParam(gson.toJson(itemTypeParams));
|
| 686 |
} else if (createOfferRequest.getItemCriteria().equals(ItemCriteriaType.Multiple_Brand)) {
|
690 |
} else if (createOfferRequest.getItemCriteria().equals(ItemCriteriaType.Multiple_Brand)) {
|
| 687 |
ItemTypeParams itemTypeParams = new ItemTypeParams();
|
691 |
ItemTypeParams itemTypeParams = new ItemTypeParams();
|
| 688 |
itemTypeParams.setBrands(createOfferRequest.getBrands());
|
692 |
itemTypeParams.setBrands(createOfferRequest.getBrands());
|
| 689 |
SimpleItemType sit = new SimpleItemType(itemTypeParams);
|
693 |
SimpleItemType sit = new SimpleItemType(itemTypeParams);
|
| 690 |
sit.setItemTypeParams(itemTypeParams);
|
694 |
sit.setItemTypeParams(itemTypeParams);
|
| 691 |
// offer.setItemParam(gson.toJson(itemTypeParams));
|
695 |
offer.setItemParam(gson.toJson(itemTypeParams));
|
| 692 |
}
|
696 |
}
|
| 693 |
|
697 |
|
| 694 |
offerRepository.persist(offer);
|
698 |
offerRepository.persist(offer);
|
| 695 |
if (createOfferRequest.getFofoIds().isEmpty()) {
|
699 |
if (createOfferRequest.getFofoIds().isEmpty()) {
|
| 696 |
List<Integer> fofoIds = fofoStoreRepository.selectActiveStores().stream().map(x -> x.getId())
|
700 |
List<Integer> fofoIds = fofoStoreRepository.selectActiveStores().stream().map(x -> x.getId())
|
| 697 |
.collect(Collectors.toList());
|
701 |
.collect(Collectors.toList());
|
| 698 |
for (Integer fofoId : fofoIds) {
|
702 |
for (Integer fofoId : fofoIds) {
|
| 699 |
PartnerType partnerType = partnerTypeChangeService.getTypeOnDate(fofoId,
|
703 |
PartnerType partnerType = partnerTypeChangeService.getTypeOnDate(fofoId,
|
| 700 |
offer.getStartDate().toLocalDate());
|
704 |
offer.getStartDateTime().toLocalDate());
|
| 701 |
/*
|
- |
|
| 702 |
* if (offer.getPartner().equals(partnerType)) { LOGGER.info("partnerType" +
|
705 |
if (offer.getPartnerType().equals(partnerType)) {
|
| - |
|
706 |
LOGGER.info("partnerType" + partnerType);
|
| 703 |
* partnerType); LOGGER.info("fofoId" + fofoId);
|
707 |
LOGGER.info("fofoId" + fofoId);
|
| 704 |
*
|
708 |
|
| 705 |
* OfferPartner op = new OfferPartner(); op.setFofoId(fofoId);
|
709 |
OfferPartner op = new OfferPartner();
|
| - |
|
710 |
op.setFofoId(fofoId);
|
| - |
|
711 |
op.setOfferId(offer.getId());
|
| 706 |
* op.setOfferId(offer.getId()); offerPartnerRepository.persist(op); }
|
712 |
offerPartnerRepository.persist(op);
|
| 707 |
*/
|
713 |
}
|
| 708 |
|
714 |
|
| 709 |
}
|
715 |
}
|
| 710 |
}
|
716 |
}
|
| 711 |
|
717 |
|
| 712 |
else {
|
718 |
else {
|
| Line 841... |
Line 847... |
| 841 |
Map<Integer, CustomRetailer> customRetailersMap = retailerService.getFofoRetailers(fofoIds);
|
847 |
Map<Integer, CustomRetailer> customRetailersMap = retailerService.getFofoRetailers(fofoIds);
|
| 842 |
List<OfferPartner> offerPartners = offerPartnerRepository.selectByOfferId(offerId);
|
848 |
List<OfferPartner> offerPartners = offerPartnerRepository.selectByOfferId(offerId);
|
| 843 |
|
849 |
|
| 844 |
LOGGER.info("offerId" + offer.getId());
|
850 |
LOGGER.info("offerId" + offer.getId());
|
| 845 |
|
851 |
|
| 846 |
Map<Integer, Double> value = offerRepository.selectSumOfferByRetailer(offer.getStartDate(), offer.getEndDate(),
|
852 |
Map<Integer, Double> value = offerRepository.selectSumOfferByRetailer(offer.getStartDateTime(),
|
| 847 |
0, offer, true);
|
853 |
offer.getEndDateTime(), 0, offer, true);
|
| 848 |
|
854 |
|
| 849 |
LOGGER.info("value" + value);
|
855 |
LOGGER.info("value" + value);
|
| 850 |
List<Offermargin> offerMargin = offerMarginRepository.selectByOfferId(offerId);
|
856 |
List<Offermargin> offerMargin = offerMarginRepository.selectByOfferId(offerId);
|
| 851 |
Map<Integer, Double> partnerValueMap = new HashMap<>();
|
857 |
Map<Integer, Double> partnerValueMap = new HashMap<>();
|
| 852 |
Map<Integer, List<Double>> partnerMarginMap = new HashMap<Integer, List<Double>>();
|
858 |
Map<Integer, List<Double>> partnerMarginMap = new HashMap<Integer, List<Double>>();
|
| Line 894... |
Line 900... |
| 894 |
|
900 |
|
| 895 |
LOGGER.info("partnerMarginMap" + partnerMarginMap);
|
901 |
LOGGER.info("partnerMarginMap" + partnerMarginMap);
|
| 896 |
LOGGER.info("partnerValueMap" + partnerValueMap);
|
902 |
LOGGER.info("partnerValueMap" + partnerValueMap);
|
| 897 |
LOGGER.info("shortageAmount" + shortageAmount);
|
903 |
LOGGER.info("shortageAmount" + shortageAmount);
|
| 898 |
|
904 |
|
| 899 |
/*
|
- |
|
| 900 |
* ItemTypeParams scp = gson.fromJson(offer.getItemParam(),
|
905 |
ItemTypeParams scp = gson.fromJson(offer.getItemParam(), ItemTypeParams.class);
|
| 901 |
* ItemTypeParams.class); if
|
- |
|
| 902 |
* (offer.getItemCriteria().equals(ItemCriteriaType.Multiple_Brand)) {
|
906 |
if (offer.getItemCriteria().equals(ItemCriteriaType.Multiple_Brand)) {
|
| 903 |
* List<String> brands = scp.getBrands(); model.addAttribute("brands", brands);
|
907 |
List<String> brands = scp.getBrands();
|
| - |
|
908 |
model.addAttribute("brands", brands);
|
| - |
|
909 |
}
|
| 904 |
* } if (offer.getItemCriteria().equals(ItemCriteriaType.Item_Model)) {
|
910 |
if (offer.getItemCriteria().equals(ItemCriteriaType.Item_Model)) {
|
| 905 |
* List<Integer> catalogIds = scp.getCatalogId(); List<Item> newList = new
|
911 |
List<Integer> catalogIds = scp.getCatalogId();
|
| - |
|
912 |
List<Item> newList = new ArrayList<>();
|
| 906 |
* ArrayList<>(); Set<Integer> catalogId = new HashSet<>(); List<Item> items =
|
913 |
Set<Integer> catalogId = new HashSet<>();
|
| 907 |
* itemRepository.selectAllByCatalogIds(catalogIds.stream().collect(Collectors.
|
914 |
List<Item> items = itemRepository.selectAllByCatalogIds(catalogIds.stream().collect(Collectors.toSet()));
|
| 908 |
* toSet())); for (Item item : items) { if
|
915 |
for (Item item : items) {
|
| 909 |
* (catalogId.add(item.getCatalogItemId())) { newList.add(item); } }
|
916 |
if (catalogId.add(item.getCatalogItemId())) {
|
| - |
|
917 |
newList.add(item);
|
| - |
|
918 |
}
|
| - |
|
919 |
}
|
| 910 |
* model.addAttribute("items", newList); }
|
920 |
model.addAttribute("items", newList);
|
| 911 |
*/
|
921 |
}
|
| 912 |
model.addAttribute("partnerMarginMap", partnerMarginMap);
|
922 |
model.addAttribute("partnerMarginMap", partnerMarginMap);
|
| 913 |
model.addAttribute("partnerValueMap", partnerValueMap);
|
923 |
model.addAttribute("partnerValueMap", partnerValueMap);
|
| 914 |
model.addAttribute("customRetailersMap", customRetailersMap);
|
924 |
model.addAttribute("customRetailersMap", customRetailersMap);
|
| 915 |
model.addAttribute("offerMargin", offerMargin);
|
925 |
model.addAttribute("offerMargin", offerMargin);
|
| 916 |
model.addAttribute("offer", offer);
|
926 |
model.addAttribute("offer", offer);
|
| Line 937... |
Line 947... |
| 937 |
|
947 |
|
| 938 |
LOGGER.info("ExtendDatetime" + extendDatetime);
|
948 |
LOGGER.info("ExtendDatetime" + extendDatetime);
|
| 939 |
LOGGER.info("schemeId" + offerId);
|
949 |
LOGGER.info("schemeId" + offerId);
|
| 940 |
Offer offer = offerRepository.selectById(offerId);
|
950 |
Offer offer = offerRepository.selectById(offerId);
|
| 941 |
|
951 |
|
| 942 |
offer.setEndDate(extendDatetime);
|
952 |
offer.setEndDateTime(extendDatetime);
|
| 943 |
offerRepository.persist(offer);
|
953 |
offerRepository.persist(offer);
|
| 944 |
model.addAttribute("response", mvcResponseSender.createResponseString(true));
|
954 |
model.addAttribute("response", mvcResponseSender.createResponseString(true));
|
| 945 |
return "response";
|
955 |
return "response";
|
| 946 |
}
|
956 |
}
|
| 947 |
|
957 |
|