| Line 17... |
Line 17... |
| 17 |
import org.springframework.transaction.annotation.Transactional;
|
17 |
import org.springframework.transaction.annotation.Transactional;
|
| 18 |
|
18 |
|
| 19 |
import javax.persistence.TypedQuery;
|
19 |
import javax.persistence.TypedQuery;
|
| 20 |
import java.math.BigDecimal;
|
20 |
import java.math.BigDecimal;
|
| 21 |
import java.time.LocalDate;
|
21 |
import java.time.LocalDate;
|
| - |
|
22 |
import java.time.LocalDateTime;
|
| 22 |
import java.time.LocalTime;
|
23 |
import java.time.LocalTime;
|
| 23 |
import java.util.*;
|
24 |
import java.util.*;
|
| 24 |
|
25 |
|
| 25 |
@Transactional(rollbackFor = Throwable.class)
|
26 |
@Transactional(rollbackFor = Throwable.class)
|
| 26 |
@Component
|
27 |
@Component
|
| Line 35... |
Line 36... |
| 35 |
|
36 |
|
| 36 |
@Autowired
|
37 |
@Autowired
|
| 37 |
private SessionFactory sessionFactory;
|
38 |
private SessionFactory sessionFactory;
|
| 38 |
|
39 |
|
| 39 |
@Override
|
40 |
@Override
|
| 40 |
public void disburseRewardsByEligibility(LocalDate date) {
|
41 |
public void disburseRewardsByEligibility() {
|
| 41 |
ProfitMandiConstants.BRAND_REWARD_REGION_IDS.forEach(regionId -> {
|
42 |
ProfitMandiConstants.BRAND_REWARD_REGION_IDS.forEach(regionId -> {
|
| - |
|
43 |
LocalDateTime startDateTime = ProfitMandiConstants.OPPO_SCHEME_START_DATE;
|
| - |
|
44 |
LocalDateTime endDateTime = (regionId == 19) ? ProfitMandiConstants.OPPO_UK_SCHEME_END_DATE : ProfitMandiConstants.OPPO_HR_SCHEME_END_DATE;
|
| 42 |
List<EligibleRewardItemsModel> eligibleRewardItemsModelList = selectBrandItemsByRegionAndDate(regionId,"Oppo", date);
|
45 |
List<EligibleRewardItemsModel> eligibleRewardItemsModelList = selectBrandItemsByRegionAndDate(regionId,"Oppo", startDateTime, endDateTime);
|
| 43 |
|
46 |
|
| 44 |
for (EligibleRewardItemsModel item : eligibleRewardItemsModelList) {
|
47 |
for (EligibleRewardItemsModel item : eligibleRewardItemsModelList) {
|
| 45 |
logger.info("rewardHistories after item: {}", item);
|
48 |
logger.info("rewardHistories after item: {}", item);
|
| 46 |
ModelRewardPoints modelReward = modelRewardPointsRepository.findByCatalogAndRegionId(item.getCatalogId(), regionId);
|
49 |
ModelRewardPoints modelReward = modelRewardPointsRepository.findByCatalogAndRegionId(item.getCatalogId(), regionId);
|
| 47 |
logger.info("modelReward after item: {}", modelReward);
|
50 |
logger.info("modelReward after item: {}", modelReward);
|
| 48 |
|
51 |
|
| 49 |
BigDecimal rewardPoints;
|
52 |
BigDecimal rewardPoints;
|
| 50 |
|
- |
|
| - |
|
53 |
if (regionId == 19) {
|
| 51 |
if (modelReward != null) {
|
54 |
if (modelReward != null) {
|
| 52 |
rewardPoints = BigDecimal.valueOf(modelReward.getPoints());
|
55 |
rewardPoints = BigDecimal.valueOf(modelReward.getPoints());
|
| - |
|
56 |
} else {
|
| - |
|
57 |
rewardPoints = BigDecimal.valueOf(ProfitMandiConstants.getRewardPoint(item.getDp()));
|
| - |
|
58 |
}
|
| 53 |
} else {
|
59 |
} else {
|
| 54 |
rewardPoints = BigDecimal.valueOf(ProfitMandiConstants.getRewardPoint(item.getDp()));
|
60 |
rewardPoints = BigDecimal.valueOf(item.getQuantity());
|
| 55 |
}
|
61 |
}
|
| - |
|
62 |
|
| 56 |
logger.info("rewardPoints after item: {}", rewardPoints);
|
63 |
logger.info("rewardPoints after item: {}", rewardPoints);
|
| 57 |
|
64 |
|
| 58 |
SaleRewardHistory saleRewardHistory = new SaleRewardHistory();
|
65 |
SaleRewardHistory saleRewardHistory = new SaleRewardHistory();
|
| 59 |
saleRewardHistory.setCatalogId(item.getCatalogId());
|
66 |
saleRewardHistory.setCatalogId(item.getCatalogId());
|
| 60 |
saleRewardHistory.setFofoId(item.getFofoStoreId());
|
67 |
saleRewardHistory.setFofoId(item.getFofoStoreId());
|
| Line 113... |
Line 120... |
| 113 |
map.put("gift", "No Reward");
|
120 |
map.put("gift", "No Reward");
|
| 114 |
}
|
121 |
}
|
| 115 |
return map;
|
122 |
return map;
|
| 116 |
}
|
123 |
}
|
| 117 |
|
124 |
|
| 118 |
public List<EligibleRewardItemsModel> selectBrandItemsByRegionAndDate(int regionId, String brand, LocalDate date) {
|
125 |
public List<EligibleRewardItemsModel> selectBrandItemsByRegionAndDate(int regionId, String brand, LocalDateTime startDateTime, LocalDateTime endDateTime) {
|
| 119 |
Session session = sessionFactory.getCurrentSession();
|
126 |
Session session = sessionFactory.getCurrentSession();
|
| 120 |
final TypedQuery<EligibleRewardItemsModel> typedQuery =
|
127 |
final TypedQuery<EligibleRewardItemsModel> typedQuery =
|
| 121 |
session.createNamedQuery("FofoOrderItem.selectBrandItemsByRegionAndDate", EligibleRewardItemsModel.class);
|
128 |
session.createNamedQuery("FofoOrderItem.selectBrandItemsByRegionAndDate", EligibleRewardItemsModel.class);
|
| 122 |
|
129 |
|
| 123 |
typedQuery.setParameter("brand", brand);
|
130 |
typedQuery.setParameter("brand", brand);
|
| 124 |
typedQuery.setParameter("regionId", regionId);
|
131 |
typedQuery.setParameter("regionId", regionId);
|
| 125 |
typedQuery.setParameter("orderStartDate", LocalDate.of(2025, 10, 1).atStartOfDay());
|
132 |
typedQuery.setParameter("orderStartDate", startDateTime);
|
| 126 |
typedQuery.setParameter("orderEndDate", LocalDate.of(2025, 10, 31).atTime(LocalTime.MAX));
|
133 |
typedQuery.setParameter("orderEndDate", endDateTime);
|
| 127 |
return typedQuery.getResultList();
|
134 |
return typedQuery.getResultList();
|
| 128 |
}
|
135 |
}
|
| 129 |
}
|
136 |
}
|