| 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());
|