Subversion Repositories SmartDukaan

Rev

Rev 27861 | Rev 28024 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 27861 Rev 27877
Line 1... Line 1...
1
package com.spice.profitmandi.service.user;
1
package com.spice.profitmandi.service.user;
2
 
2
 
3
import java.nio.charset.StandardCharsets;
3
import java.nio.charset.StandardCharsets;
4
import java.time.LocalDateTime;
4
import java.time.LocalDateTime;
5
import java.util.ArrayList;
5
import java.util.ArrayList;
-
 
6
import java.util.Arrays;
6
import java.util.HashMap;
7
import java.util.HashMap;
7
import java.util.HashSet;
8
import java.util.HashSet;
8
import java.util.List;
9
import java.util.List;
9
import java.util.Map;
10
import java.util.Map;
10
import java.util.Set;
11
import java.util.Set;
Line 69... Line 70...
69
import com.spice.profitmandi.dao.repository.user.AddressRepository;
70
import com.spice.profitmandi.dao.repository.user.AddressRepository;
70
import com.spice.profitmandi.dao.repository.user.CartRepository;
71
import com.spice.profitmandi.dao.repository.user.CartRepository;
71
import com.spice.profitmandi.dao.repository.user.CounterRepository;
72
import com.spice.profitmandi.dao.repository.user.CounterRepository;
72
import com.spice.profitmandi.dao.repository.user.PrivateDealUserAddressMappingRepository;
73
import com.spice.profitmandi.dao.repository.user.PrivateDealUserAddressMappingRepository;
73
import com.spice.profitmandi.dao.repository.user.PrivateDealUserRepository;
74
import com.spice.profitmandi.dao.repository.user.PrivateDealUserRepository;
-
 
75
import com.spice.profitmandi.service.offers.PartnerCriteria;
74
 
76
 
75
import in.shop2020.model.v1.inventory.StateInfo;
77
import in.shop2020.model.v1.inventory.StateInfo;
76
import in.shop2020.model.v1.user.CartStatus;
78
import in.shop2020.model.v1.user.CartStatus;
77
 
79
 
78
@Component
80
@Component
Line 579... Line 581...
579
		address.setLine1(customAddress.getLine1());
581
		address.setLine1(customAddress.getLine1());
580
		address.setLine2(customAddress.getLine2());
582
		address.setLine2(customAddress.getLine2());
581
		address.setCity(customAddress.getCity());
583
		address.setCity(customAddress.getCity());
582
		address.setPinCode(customAddress.getPinCode());
584
		address.setPinCode(customAddress.getPinCode());
583
		State state = stateRepository.selectByName(customAddress.getState());
585
		State state = stateRepository.selectByName(customAddress.getState());
584
		if (state==null) {
586
		if (state == null) {
585
			throw new ProfitMandiBusinessException("State name", "Invalid State - Pls Contact Technology", "Invalid State - Pls Contact Technology");
587
			throw new ProfitMandiBusinessException("State name", "Invalid State - Pls Contact Technology",
-
 
588
					"Invalid State - Pls Contact Technology");
586
		}
589
		}
587
		address.setState(state.getName());
590
		address.setState(state.getName());
588
		addressRepository.persist(address);
591
		addressRepository.persist(address);
589
		LOGGER.info("Address Updated" + address);
592
		LOGGER.info("Address Updated" + address);
590
	}
593
	}
Line 916... Line 919...
916
		return customRetailer;
919
		return customRetailer;
917
 
920
 
918
	}
921
	}
919
 
922
 
920
	@Override
923
	@Override
921
	public Map<Integer, CustomRetailer> getFofoRetailerUserId(List<Integer> fofoIds)
924
	public Map<Integer, CustomRetailer> getFofoRetailerUserId(List<Integer> fofoIds) {
922
			throws ProfitMandiBusinessException {
-
 
923
		List<com.spice.profitmandi.dao.entity.user.User> saholicUsers = userUserRepository.selectByIds(fofoIds);
925
		List<com.spice.profitmandi.dao.entity.user.User> saholicUsers = userUserRepository.selectByIds(fofoIds);
924
		Map<Integer, com.spice.profitmandi.dao.entity.user.User> userAddressMap = saholicUsers.stream()
926
		Map<Integer, com.spice.profitmandi.dao.entity.user.User> userAddressMap = saholicUsers.stream()
925
				.filter(x -> x.getAddressId() != null).collect(Collectors.toMap(x -> x.getAddressId(), x -> x));
927
				.filter(x -> x.getAddressId() != null).collect(Collectors.toMap(x -> x.getAddressId(), x -> x));
926
		List<Address> addresses = addressRepository.selectByIds(new ArrayList<>(userAddressMap.keySet()));
928
		List<Address> addresses = addressRepository.selectByIds(new ArrayList<>(userAddressMap.keySet()));
927
		Map<Integer, CustomRetailer> customRetailersMap = new HashMap<>();
929
		Map<Integer, CustomRetailer> customRetailersMap = new HashMap<>();
Line 929... Line 931...
929
			com.spice.profitmandi.dao.entity.user.User user = userAddressMap.get(address.getId());
931
			com.spice.profitmandi.dao.entity.user.User user = userAddressMap.get(address.getId());
930
			CustomRetailer customRetailer = new CustomRetailer();
932
			CustomRetailer customRetailer = new CustomRetailer();
931
			customRetailer.setEmail(user.getEmailId());
933
			customRetailer.setEmail(user.getEmailId());
932
			customRetailer.setBusinessName(address.getName());
934
			customRetailer.setBusinessName(address.getName());
933
			customRetailer.setMobileNumber(address.getPhoneNumber());
935
			customRetailer.setMobileNumber(address.getPhoneNumber());
-
 
936
			int userId = 0;
934
 
937
			try {
935
			int userId = userAccountRepository.selectUserIdByRetailerId(user.getId());
938
				userId = userAccountRepository.selectUserIdByRetailerId(user.getId());
-
 
939
			} catch(ProfitMandiBusinessException e) {
-
 
940
				continue;
936
 
941
			}
937
			try {
942
			try {
938
				customRetailer.setCartId(user.getActiveCartId());
943
				customRetailer.setCartId(user.getActiveCartId());
939
				PrivateDealUser pdu = privateDealUserRepository.selectById(address.getRetaierId());
944
				PrivateDealUser pdu = privateDealUserRepository.selectById(address.getRetaierId());
940
				Counter counter = counterRepository.selectById(pdu.getCounterId());
945
				Counter counter = counterRepository.selectById(pdu.getCounterId());
941
				customRetailer.setGstNumber(counter.getGstin());
946
				customRetailer.setGstNumber(counter.getGstin());
Line 1141... Line 1146...
1141
				districtMaster = districtMasterRepository.selectByShortnameNameAndStateShortName("FB", "HR");
1146
				districtMaster = districtMasterRepository.selectByShortnameNameAndStateShortName("FB", "HR");
1142
			}
1147
			}
1143
			LOGGER.info("Store id - {}", store.getId());
1148
			LOGGER.info("Store id - {}", store.getId());
1144
			com.spice.profitmandi.dao.entity.user.User user = userMap.get(store.getId());
1149
			com.spice.profitmandi.dao.entity.user.User user = userMap.get(store.getId());
1145
			String urlString = districtMaster.getStateShortName() + "/"
1150
			String urlString = districtMaster.getStateShortName() + "/"
1146
					+ Utils.getHyphenatedString(districtMaster.getName()) + "/"
1151
					+ Utils.getHyphenatedString(districtMaster.getName()) + "/" + store.getCode();
1147
					+ store.getCode();
-
 
1148
			fofoRetailerUrlMap.put(store.getId(), urlString);
1152
			fofoRetailerUrlMap.put(store.getId(), urlString);
1149
			LOGGER.info("Store is {} end", store);
1153
			LOGGER.info("Store is {} end", store);
1150
 
1154
 
1151
		}
1155
		}
1152
		return fofoRetailerUrlMap;
1156
		return fofoRetailerUrlMap;
Line 1156... Line 1160...
1156
	@Cacheable(value = "storeCodeRetailerMap", cacheManager = "oneDayCacheManager")
1160
	@Cacheable(value = "storeCodeRetailerMap", cacheManager = "oneDayCacheManager")
1157
	public Map<String, Integer> getStoreCodeRetailerMap() {
1161
	public Map<String, Integer> getStoreCodeRetailerMap() {
1158
		Map<Integer, String> map = this.getAllFofoRetailerIdUrlMap();
1162
		Map<Integer, String> map = this.getAllFofoRetailerIdUrlMap();
1159
		Map<String, Integer> returnMap = map.entrySet().stream().collect(Collectors.toMap(x -> {
1163
		Map<String, Integer> returnMap = map.entrySet().stream().collect(Collectors.toMap(x -> {
1160
			String[] splitString = x.getValue().split("/");
1164
			String[] splitString = x.getValue().split("/");
1161
			return splitString[splitString.length-1];
1165
			return splitString[splitString.length - 1];
1162
		}, x -> x.getKey()));
1166
		}, x -> x.getKey()));
1163
		LOGGER.info("returnMap {}", returnMap);
1167
		LOGGER.info("returnMap {}", returnMap);
1164
		return returnMap;
1168
		return returnMap;
1165
	}
1169
	}
-
 
1170
 
-
 
1171
	@Override
-
 
1172
	public String getPartnerCriteriaString(PartnerCriteria partnerCriteria) {
-
 
1173
 
-
 
1174
		StringBuilder sb = new StringBuilder();
-
 
1175
		if (partnerCriteria.getFofoIds().size() > 0) {
-
 
1176
			List<Integer> fofoIds = partnerCriteria.getFofoIds();
-
 
1177
			Map<Integer, CustomRetailer> customRetailers = this.getFofoRetailerUserId(fofoIds);
-
 
1178
			List<String> businessNames = customRetailers.values().stream().map(x->x.getBusinessName()).collect(Collectors.toList());
-
 
1179
			sb.append(String.join(", ", businessNames));
-
 
1180
 
-
 
1181
		} else {
-
 
1182
			sb.append("All");
-
 
1183
			if(partnerCriteria.getPartnerTypes().size() > 0) {
-
 
1184
				sb.append(" ").append(String.join(", ", partnerCriteria.getPartnerTypes().stream().map(x->x.getValue()).collect(Collectors.toList())));
-
 
1185
			}
-
 
1186
			sb.append(" partners ");
-
 
1187
			if(partnerCriteria.getRegionIds().size() > 0) {
-
 
1188
				sb.append("from ");
-
 
1189
				sb.append(String.join(", ", partnerCriteria.getRegionIds().stream().map(x-> ProfitMandiConstants.WAREHOUSE_MAP.get(x)).collect(Collectors.toList())));
-
 
1190
			}
-
 
1191
		}
-
 
1192
		return sb.toString();
-
 
1193
	}
1166
}
1194
}