Subversion Repositories SmartDukaan

Rev

Hide changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff Changes
36359 21 d 14 h ranu /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/ rbm rating dashboard view commited  
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
36334 22 d 14 h ranu /trunk/ rbm rating dashboard view commited  
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/RbmPerformanceDashboardModel.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetService.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/monitors/MonitorController.java
/trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/today_po_rbm.vm
36333 22 d 14 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/ Fix IllegalStateException: drop 'unless' when using @Cacheable(sync=true)

Spring Cache rejects @Cacheable with both sync=true AND an 'unless' attribute,
throwing IllegalStateException on every invocation. Surfaced in production log
on smartdukaan — MonitorController.todayPORBM:739 was returning 500 on 40
observed calls this session.

Dropped 'unless'. Caching an occasionally-empty List for 5 min is harmless:
months with no sales produce an empty result, which is cheaper to re-query
after 5 min than to keep special-casing. The real fix driver for sync=true
(stampede protection) is preserved.
 
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
36329 22 d 16 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/ Tune rbmWeeklyBilling cache: 2m→5m TTL + sync=true

The RBM weekly billing aggregate query takes ~2s per call (1,924 cumulative hits
on hadb1 = 3,800s DB time). Previously cached for only 2 minutes with no
stampede protection — every 2m window, every concurrent dashboard load ran the
aggregate in parallel and burnt Hikari slots simultaneously.

- 2m → 5m: this is month-level aggregate bucketed by week, doesn't need
sub-minute freshness for an RBM dashboard.
- sync=true: single in-JVM computation per (monthStart, monthEnd) key per
expiry window; concurrent misses wait for the in-flight load instead of
racing to the DB.

fiveMintimeoutCacheManager already exists in CacheConfig:73 (Caffeine, in-memory,
so no Redis/LocalDateTime serialization concerns).
 
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
36296 26 d 17 h amit /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ Add 2-min cache on dashboard-family queries

Three queries dominate dashboard DB time (~830 s / 30 min combined) because
they re-execute on every dashboard refresh with near-identical parameters:

- OrderRepositoryImpl.selectPartnersBilledBetweenDates: dynamic endDate is
LocalDateTime.now(), so cache key bucketed to 2-minute boundaries via SpEL
(endDate.toEpochSecond / 120) so calls in the same bucket share an entry.
- UserWalletRepositoryImpl.getPartnerWiseCollectionAchievement and
RbmTargetServiceImpl.getWeeklyBillingDataForMonth: default Spring key
(fofoIds + startDate) is stable, no bucketing needed.

All three use the existing Caffeine 'twoMintimeoutCacheManager' (in-memory,
per-JVM, expireAfterWrite=2min). unless clause skips caching empty results
so legitimately-empty responses don't pin a bad entry.
 
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/OrderRepositoryImpl.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/UserWalletRepositoryImpl.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
36284 27 d 13 h ranu /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ code optimization of today po rbm page  
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/AgentCallLogRepository.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/AgentCallLogRepositoryImpl.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/RetailerContactRepository.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/dtr/RetailerContactRepositoryImpl.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/AddressRepository.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/user/AddressRepositoryImpl.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
36276 28 d 16 h ranu /trunk/ unique call and recording will show on dashboard  
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/RbmCallTargetModel.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
/trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/rbm_call_target.vm
36234 33 d 20 h ranu /trunk/ back date data ..........dashboard display on calling  
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetService.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/config/AppConfig.java
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/monitors/MonitorController.java
/trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/rbm_call_target.vm
/trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/today_po_rbm.vm
36229 35 d 13 h ranu /trunk/ rbm l1,l2,l3 layer introduce  
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
/trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/rbm_call_target.vm
36228 35 d 14 h ranu /trunk/ rbm l1,l2,l3 layer introduce  
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
/trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/rbm_call_target.vm
36225 35 d 14 h ranu /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/ rbm l1,l2,l3 layer introduce  
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
36212 36 d 13 h ranu /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ rbm l1,l2,l3 layer introduce  
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/CsService.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/CsServiceImpl.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
36210 36 d 14 h ranu /trunk/ rbm l1,l2,l3 layer introduce  
/trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/ProfitMandiConstants.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/enumuration/auth/CollectionRemark.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/PartnerTargetAchievementModel.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/RbmCallTargetModel.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/TargetModel.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/CsService.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/CsServiceImpl.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/service/KnowlarityInsightsService.java
/trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/rbm_call_target.vm
36181 40 d 14 h ranu /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ weekly rating system live on calling module  
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/model/RbmCallTargetModel.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
35852 77 d 13 h ranu /trunk/ call data download  
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/AgentCallLogRepository.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/cs/AgentCallLogRepositoryImpl.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetService.java
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
/trunk/profitmandi-fofo/src/main/java/com/spice/profitmandi/web/controller/monitors/MonitorController.java
/trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/rbm_call_target.vm
35843 78 d 11 h ranu /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/ called will come from agent call log instead of remark  
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
35822 81 d 16 h ranu /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/ show all caleed by auth user  
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
35821 81 d 16 h ranu /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/ show all caleed by auth user  
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
35818 81 d 18 h ranu /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/ show all caleed by auth user  
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java
35816 81 d 19 h ranu /trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/ calling l2 improve  
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/RbmTargetServiceImpl.java

Show All