| Line 788... |
Line 788... |
| 788 |
|
788 |
|
| 789 |
@PostMapping(value = "/partner-position/update")
|
789 |
@PostMapping(value = "/partner-position/update")
|
| 790 |
public String positionUpdated(Model model, @RequestBody List<PartnerPositonUpdateModel> partnerPositionUpdateModels)
|
790 |
public String positionUpdated(Model model, @RequestBody List<PartnerPositonUpdateModel> partnerPositionUpdateModels)
|
| 791 |
throws Exception {
|
791 |
throws Exception {
|
| 792 |
|
792 |
|
| 793 |
Map<Integer, List<String>> positionIdsToAddMap = partnerPositionUpdateModels.stream().collect(Collectors.groupingBy(x->x.getPositionIdTo(),
|
793 |
Map<Integer, List<String>> positionIdsToAddMap = partnerPositionUpdateModels.stream().filter(x->x.getPositionIdTo()!=0).collect(Collectors.groupingBy(x->x.getPositionIdTo(),
|
| 794 |
Collectors.mapping(x->x.getStoreCode(), Collectors.toList())));
|
794 |
Collectors.mapping(x->x.getStoreCode(), Collectors.toList())));
|
| 795 |
|
795 |
|
| 796 |
Map<Integer, List<String>> positionIdsToRemoveMap = partnerPositionUpdateModels.stream().collect(Collectors.groupingBy(x->x.getPositionIdFrom(),
|
796 |
Map<Integer, List<String>> positionIdsToRemoveMap = partnerPositionUpdateModels.stream().filter(x->x.getPositionIdFrom()!=0).collect(Collectors.groupingBy(x->x.getPositionIdFrom(),
|
| 797 |
Collectors.mapping(x->x.getStoreCode(), Collectors.toList())));
|
797 |
Collectors.mapping(x->x.getStoreCode(), Collectors.toList())));
|
| 798 |
|
798 |
|
| 799 |
List<Integer> positionIdsToUpdate = new ArrayList<>();
|
799 |
List<Integer> positionIdsToUpdate = new ArrayList<>();
|
| 800 |
positionIdsToUpdate.addAll(positionIdsToAddMap.keySet());
|
800 |
positionIdsToUpdate.addAll(positionIdsToAddMap.keySet());
|
| 801 |
positionIdsToUpdate.addAll(positionIdsToRemoveMap.keySet());
|
801 |
positionIdsToUpdate.addAll(positionIdsToRemoveMap.keySet());
|
| Line 809... |
Line 809... |
| 809 |
}
|
809 |
}
|
| 810 |
|
810 |
|
| 811 |
for (Map.Entry<Integer, List<String>> positionIdStoreMapEntry : positionIdsToAddMap.entrySet()) {
|
811 |
for (Map.Entry<Integer, List<String>> positionIdStoreMapEntry : positionIdsToAddMap.entrySet()) {
|
| 812 |
int positionId = positionIdStoreMapEntry.getKey();
|
812 |
int positionId = positionIdStoreMapEntry.getKey();
|
| 813 |
Position position = positionsToUpdateMap.get(positionId);
|
813 |
Position position = positionsToUpdateMap.get(positionId);
|
| - |
|
814 |
LOGGER.info("positionId - {}, Position - {}", positionId, position);
|
| 814 |
List<String> storeCodesToAdd = positionIdStoreMapEntry.getValue();
|
815 |
List<String> storeCodesToAdd = positionIdStoreMapEntry.getValue();
|
| 815 |
List<Integer> retailerIdsToAdd = fofoStoreRepository.selectByStoreCodes(storeCodesToAdd).stream().map(x->x.getId()).collect(Collectors.toList());
|
816 |
List<Integer> retailerIdsToAdd = fofoStoreRepository.selectByStoreCodes(storeCodesToAdd).stream().map(x->x.getId()).collect(Collectors.toList());
|
| 816 |
Map<Integer, PartnerPosition> partnerPositionsMapByFofoId = partnerPositionRepository
|
817 |
Map<Integer, PartnerPosition> partnerPositionsMapByFofoId = partnerPositionRepository
|
| - |
|
818 |
.selectByRegionIdAndPostionId(Arrays.asList(position.getRegionId())
|
| 817 |
.selectByRegionIdAndPostionId(Arrays.asList(position.getRegionId()),Arrays.asList(positionId)).stream().collect(Collectors.toMap(x->x.getFofoId(),x->x));
|
819 |
,Arrays.asList(positionId)).stream().collect(Collectors.toMap(x->x.getFofoId(),x->x));
|
| 818 |
for (Integer retailerIdToAdd : retailerIdsToAdd) {
|
820 |
for (Integer retailerIdToAdd : retailerIdsToAdd) {
|
| 819 |
if (!partnerPositionsMapByFofoId.containsKey(retailerIdToAdd)) {
|
821 |
if (!partnerPositionsMapByFofoId.containsKey(retailerIdToAdd)) {
|
| 820 |
PartnerPosition partnerPositionNew = new PartnerPosition();
|
822 |
PartnerPosition partnerPositionNew = new PartnerPosition();
|
| 821 |
partnerPositionNew.setPositionId(positionId);
|
823 |
partnerPositionNew.setPositionId(positionId);
|
| 822 |
partnerPositionNew.setFofoId(retailerIdToAdd);
|
824 |
partnerPositionNew.setFofoId(retailerIdToAdd);
|