Subversion Repositories SmartDukaan

Rev

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

Rev 35149 Rev 35150
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
}