| Rev |
Age |
Author |
Path |
Log message |
Diff |
| 36296 |
94 d 0 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. |
|
| 36295 |
94 d 1 h |
amit |
/trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/web/client/ |
Plug response-entity leak in RestClient
Apache HttpClient connections are released back to the PoolingConnectionManager
only when the response entity is fully consumed. Error paths in execute(),
executeMandii(), and executeJson() threw before consumeQuietly was called,
leaking pool slots and accumulating CLOSE_WAIT sockets against Solr, Tomcat,
and external APIs. Wrap each in try/finally with EntityUtils.consumeQuietly
so the connection is always returned. Methods that return raw HttpResponse
(getResponse, postResponse) are still caller-close responsibility. |
|
| 36294 |
94 d 2 h |
amit |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/ |
Remove @Cacheable from getFirstBillingDate
Temporary revert while cache null-handling is reviewed end-to-end.
The method returns null for partners with no billing history; the
Redis cache (disableCachingNullValues) was causing log noise even
after unless="#result == null" was added. Reverting to direct DB
lookup until a proper caching strategy (e.g. per-cache nulls or
Optional return type) is decided. |
|
| 36293 |
94 d 2 h |
amit |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/transaction/ |
Fix IllegalArgumentException when caching null firstBillingDate
Redis cache manager (redisEternalCacheManager) has disableCachingNullValues,
so every partner with no billing history threw IllegalArgumentException
from RedisCache.put. Added unless="#result == null" to skip cache writes
for null results; non-null results still cache normally. |
|
| 36292 |
94 d 2 h |
amit |
/trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ |
Reduce DB scan pressure from runaway IMEI and IRN crons
- IRN cron (updateIrnsToInvoices): fixedDelay 2s -> 5s; migration cron
has finished but keeps full-scanning 821k orders every 2s for 0 rows
(every billed order already has irnGenerated populated true/false).
- IMEI activation crons: fixedDelay 60s -> 5min across all 6 methods
(vivoImeiActivation, vivoImeiActivationTertiary, oppo, oppoTertiary,
realme, realmeTertiary). Each was scanning orders since 2021-01-01
every minute; 5min is well within activation-latency tolerance. |
|
| 36291 |
94 d 2 h |
amit |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/repository/ |
Optimize slow DB queries: split fan-out join, FORCE INDEX on wallet history
- CurrentInventorySnapshotRepositoryImpl.getSpilitStockBatch: split
LEFT-JOIN fan-out into two independent aggregates (~8x faster);
fixes SUM(DISTINCT) undercounting bug where same availability/qty
values across items collapsed into one.
- UserWalletRepositoryImpl.getWarehousewiseCollection: HQL -> native
SQL with FORCE INDEX(idx_uwh_wallet_timestamp) so timestamp range
filters at index level instead of row filter (~4x faster, 3.1s -> 722ms).
- PartnerCollectionPlanRepositoryImpl.getCommitmentCollectionSummary:
Criteria 3-Root CROSS JOIN -> explicit INNER JOIN + FORCE INDEX
(idx_uwh_wallet_timestamp) (~3.5x faster). |
|
| 36290 |
94 d 2 h |
aman |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ |
Fix:Finance code to finance team after code creation |
|
| 36289 |
94 d 3 h |
amit |
/trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ |
hadb1 perf: add SD_CREDIT_LOCK to prevent deadlock on sd_credit_requirement, sort updatePartnerLimit by fofoId |
|
| 36288 |
94 d 3 h |
amit |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ |
hadb1 perf: cache firstBillingDate, fix N+1 item query, push eInvoice filter to SQL, sort updateRisk by fofoId |
|
| 36287 |
94 d 20 h |
ranu |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/ |
sales dispostion updated |
|
| 36286 |
94 d 20 h |
ranu |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/ |
sales dispostion updated |
|
| 36285 |
94 d 20 h |
amit |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/ |
Force idx_order_customer_billing index on spilitStock queries — optimizer picks wrong index (978K global scan vs 902 rows per partner) |
|
| 36284 |
94 d 20 h |
ranu |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ |
code optimization of today po rbm page |
|
| 36283 |
94 d 20 h |
ranu |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/warehouse/ |
uday sing maill added in po approval |
|
| 36282 |
94 d 20 h |
amit |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/ |
Optimize /partner/hidAllocation: replace N+1 getSpilitStock loop with batch call, add fofo_id filter to sales subquery, fix DATE() preventing index usage on create_timestamp |
|
| 36281 |
94 d 22 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/checkout/ |
Replace retailerBlockBrands with DMS code-based brand eligibility check in OrderController.createOrder - use partnerIneligibleBrands from partner_dealer_mapping instead of retailer_block_brands table |
|
| 36280 |
94 d 22 h |
aman |
/trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/ |
Fix:Contact-us list update |
|
| 36279 |
95 d 4 h |
amit |
/trunk/profitmandi-common/src/main/java/com/spice/profitmandi/common/model/ |
Fix NPE in PurchaseInvoiceModel when grnDate or invoiceDate is null |
|
| 36278 |
95 d 5 h |
ranu |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/dao/cart/ |
ADD OPENING STOCK |
|
| 36277 |
95 d 21 h |
ranu |
/trunk/profitmandi-fofo/src/main/webapp/WEB-INF/views/ftl/ |
unique call and recording will show on dashboard |
|