Subversion Repositories SmartDukaan

Rev

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

Rev 27893 Rev 27903
Line 1... Line 1...
1
package com.spice.profitmandi.service;
1
package com.spice.profitmandi.service;
2
 
2
 
3
import java.time.LocalDate;
3
import java.time.LocalDate;
4
import java.time.LocalDateTime;
4
import java.time.LocalDateTime;
5
import java.time.LocalTime;
5
import java.time.LocalTime;
6
import java.time.YearMonth;
-
 
7
import java.util.HashMap;
6
import java.util.HashMap;
8
import java.util.List;
7
import java.util.List;
9
import java.util.Map;
8
import java.util.Map;
10
import java.util.Set;
9
import java.util.Set;
11
import java.util.stream.Collectors;
10
import java.util.stream.Collectors;
Line 18... Line 17...
18
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
17
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
19
import com.spice.profitmandi.dao.entity.auth.AuthUser;
18
import com.spice.profitmandi.dao.entity.auth.AuthUser;
20
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
19
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
21
import com.spice.profitmandi.dao.entity.fofo.PartnerDailyInvestment;
20
import com.spice.profitmandi.dao.entity.fofo.PartnerDailyInvestment;
22
import com.spice.profitmandi.dao.entity.fofo.PartnerType;
21
import com.spice.profitmandi.dao.entity.fofo.PartnerType;
23
import com.spice.profitmandi.dao.entity.transaction.Order;
-
 
24
import com.spice.profitmandi.dao.entity.transaction.UserWallet;
22
import com.spice.profitmandi.dao.entity.transaction.UserWallet;
25
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
23
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
26
import com.spice.profitmandi.dao.model.PartnerDetailModel;
24
import com.spice.profitmandi.dao.model.PartnerDetailModel;
27
import com.spice.profitmandi.dao.repository.cs.CsService;
25
import com.spice.profitmandi.dao.repository.cs.CsService;
28
import com.spice.profitmandi.dao.repository.cs.TicketRepository;
26
import com.spice.profitmandi.dao.repository.cs.TicketRepository;
29
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
27
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
30
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
28
import com.spice.profitmandi.dao.repository.fofo.FofoOrderItemRepository;
31
import com.spice.profitmandi.dao.repository.fofo.HygieneDataRepository;
29
import com.spice.profitmandi.dao.repository.fofo.HygieneDataRepository;
-
 
30
import com.spice.profitmandi.dao.repository.fofo.PartnerDailyInvestmentRepository;
32
import com.spice.profitmandi.dao.repository.fofo.PartnerTypeChangeService;
31
import com.spice.profitmandi.dao.repository.fofo.PartnerTypeChangeService;
33
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
32
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
34
import com.spice.profitmandi.dao.repository.transaction.UserWalletRepository;
33
import com.spice.profitmandi.dao.repository.transaction.UserWalletRepository;
35
import com.spice.profitmandi.service.user.RetailerService;
34
import com.spice.profitmandi.service.user.RetailerService;
36
 
35
 
Line 67... Line 66...
67
	PartnerTypeChangeService partnerTypeChangeService;
66
	PartnerTypeChangeService partnerTypeChangeService;
68
 
67
 
69
	@Autowired
68
	@Autowired
70
	OrderRepository orderRepository;
69
	OrderRepository orderRepository;
71
 
70
 
-
 
71
	@Autowired
-
 
72
	PartnerDailyInvestmentRepository partnerDailyInvestmentRepository;
-
 
73
 
72
	@Override
74
	@Override
73
	// @Cacheable(value = "partnerStats", cacheManager =
75
	// @Cacheable(value = "partnerStats", cacheManager =
74
	// "thirtyMinsTimeOutCacheManager")
76
	// "thirtyMinsTimeOutCacheManager")
75
	public Map<Integer, PartnerDetailModel> getAllPartnerStats() throws ProfitMandiBusinessException {
77
	public Map<Integer, PartnerDetailModel> getAllPartnerStats() throws ProfitMandiBusinessException {
76
		LocalDateTime curDate = LocalDate.now().atStartOfDay();
78
		LocalDateTime curDate = LocalDate.now().atStartOfDay();
Line 104... Line 106...
104
		Map<Integer, UserWallet> userWallet = userWalletRepository.selectByRetailerIds(fofoIds).stream()
106
		Map<Integer, UserWallet> userWallet = userWalletRepository.selectByRetailerIds(fofoIds).stream()
105
				.collect(Collectors.toMap(x -> x.getUserId(), x -> x));
107
				.collect(Collectors.toMap(x -> x.getUserId(), x -> x));
106
 
108
 
107
		Map<Integer, PartnerDetailModel> allPartnerStats = new HashMap<>();
109
		Map<Integer, PartnerDetailModel> allPartnerStats = new HashMap<>();
108
 
110
 
-
 
111
		List<PartnerDailyInvestment> partnerDailyInvestments = partnerDailyInvestmentRepository
-
 
112
				.selectAll(curDate.withDayOfMonth(1).toLocalDate(), curDate.toLocalDate());
-
 
113
		Map<Integer, Long> investmentMaintainedDaysMap = partnerDailyInvestments.stream()
-
 
114
				.filter(x -> x.getShortPercentage() <= 10)
-
 
115
				.collect(Collectors.groupingBy(x -> x.getFofoId(), Collectors.counting()));
-
 
116
 
-
 
117
		LOGGER.info("investmentMaintainedDaysMap" + investmentMaintainedDaysMap);
-
 
118
 
109
		Map<Integer, PartnerDailyInvestment> investmentMap = fofoStores.stream().map(x -> {
119
		Map<Integer, PartnerDailyInvestment> investmentMap = fofoStores.stream().map(x -> {
110
			try {
120
			try {
111
				return partnerInvestmentService.getInvestment(x.getId(), 0);
121
				return partnerInvestmentService.getInvestment(x.getId(), 0);
112
			} catch (Exception e) {
122
			} catch (Exception e) {
113
				LOGGER.info("Could not get invetment summary for {}", x);
123
				LOGGER.info("Could not get invetment summary for {}", x);
Line 137... Line 147...
137
			pm.setLastThreeDaytertiary(last3daystertiary.get(fofoId) == null ? 0 : last3daystertiary.get(fofoId));
147
			pm.setLastThreeDaytertiary(last3daystertiary.get(fofoId) == null ? 0 : last3daystertiary.get(fofoId));
138
			pm.setWalletAmount(userWallet.get(fofoId) == null ? 0 : userWallet.get(fofoId).getAmount());
148
			pm.setWalletAmount(userWallet.get(fofoId) == null ? 0 : userWallet.get(fofoId).getAmount());
139
			pm.setInvestment(investmentMap.get(fofoId));
149
			pm.setInvestment(investmentMap.get(fofoId));
140
			pm.setTicket(ticketMap.get(fofoId) == null ? 0 : ticketMap.get(fofoId).intValue());
150
			pm.setTicket(ticketMap.get(fofoId) == null ? 0 : ticketMap.get(fofoId).intValue());
141
			pm.setHygiene(hygieneCount);
151
			pm.setHygiene(hygieneCount);
-
 
152
			pm.setInvestment_ok(
-
 
153
					investmentMaintainedDaysMap.get(fofoId) == null ? 0 : investmentMaintainedDaysMap.get(fofoId));
142
			pm.setPartnerType(partnerType);
154
			pm.setPartnerType(partnerType);
143
			if (authuserEsclationTypeMap.get(EscalationType.L1) == null) {
155
			if (authuserEsclationTypeMap.get(EscalationType.L1) == null) {
144
 
156
 
145
				if (authuserEsclationTypeMap.get(EscalationType.L2) == null) {
157
				if (authuserEsclationTypeMap.get(EscalationType.L2) == null) {
146
					pm.setAuthUser(authuserEsclationTypeMap.get(EscalationType.L3).getName());
158
					pm.setAuthUser(authuserEsclationTypeMap.get(EscalationType.L3).getName());