Subversion Repositories SmartDukaan

Rev

Go to most recent revision | Show changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
35610 179 d 4 h amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/ Add endpoint to resolve old escalation tickets created before Sept 30, 2025

- Added resolveOldEscalationTickets method in RunOnceTasks.java
- Added GET /resolveOldEscalationTickets endpoint in ExposeController.java
- Supports dryRun=true (preview) and dryRun=false (execute)
- Marks Sales/RBM Escalation tickets (subcategory 83, 84) as RESOLVED on behalf of Gaurav CRM
 
35609 179 d 4 h amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/config/ Add resolveOldEscalationTickets endpoint to security whitelist  
35598 180 d 0 h amit /trunk/profitmandi-cron/src/main/resources/META-INF/ Migrate from C3P0 to HikariCP connection pooling

- Replace C3P0 properties with HikariCP settings
- New settings: maximumPoolSize=20, minimumIdle=2, idleTimeout=30s, maxLifetime=30min
 
35591 180 d 8 h aman /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ Fix:Remove Account team from default partner and partner credit report and only send to neeraj sir  
35586 184 d 23 h amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/config/ Fix: Set HikariCP autoCommit=false to enable Hibernate dirty checking for transaction management  
35568 190 d 9 h amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/ Refactor ticket scheduled tasks: fix bugs, add test mode, improve performance

Bug fixes:
- Remove break statement in alertforTicket that stopped after first user
- Remove duplicate ticketClosed() method (used 7 calendar days vs 8 working days)
- Update Application.java CLI handler to use refactored escalateTicket()

New features:
- Add email test mode: redirect all emails to tester via config
- ticket.email.testMode.enabled=true/false
- ticket.email.testMode.recipient=tester@email.com
- Add configurable auto-escalation: ticket.autoEscalation.enabled
- Working days calculation using WorkingDaysService (excludes Sun + holidays)

Performance improvements:
- Batch fetch ticketSubCategoryMap once per job, not per email
- All repository calls moved outside loops (N+1 query fix)

Escalation thresholds updated:
- L1 -> L2: 3 working days
- L2 -> L3: 3 working days
- L3 -> Final: 2 working days

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
 
35547 193 d 5 h amit /trunk/ Real-time Solr updates for TagListing changes

- Add Spring ApplicationEvent for TagListing changes (price, status, create, delete)
- Add async listener for incremental Solr updates (updateSingleCatalog)
- Add failure tracking with solr_update_failures table for visibility
- Add admin dashboard API for tech team to retry failed updates
- Add auto-retry job every 5 minutes (max 3 retries)
- Add startup sync for consistency after restart
- Add isProd check to skip Solr updates in local/dev environment
- Inject event publisher in TagListing, PriceDrop, Indent controllers
 
35532 200 d 11 h amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/ Added migration for 2 parties for gold  
35531 200 d 11 h amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ Add manual partner type upgrade detection in rolloutMarginForStoreOnMonth

- Check if there's a MANUAL partner type change on day 1 of the month
- If manual upgrade detected, proceed with margin rollout for all orders in that month
- Existing calculated upgrade logic remains unchanged
 
35530 200 d 12 h amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ Added migration for 2 parties for gold  
35524 201 d 4 h amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/ Added migration for 2 parties for gold  
35522 201 d 5 h amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ Added migration for 2 parties for gold  
35521 201 d 5 h amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/ Added migration for 2 parties for gold  
35520 201 d 5 h amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/ Fixed method Number to comma for Cr. Values  
35461 217 d 18 h amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ Fix LockAcquisitionException: Use bulk partner type fetch in ScheduledTasks

Use getTypesForFofoIds() bulk method in rollOutUpgardedMargins to avoid N+1 queries
 
35447 219 d 1 h amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ Fix N+1 query in refundDnAmount() - batch fetch TagListings  
35446 219 d 2 h amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ Use selectAllByItems() to avoid duplicate item fetch in checkfocusedModelInPartnerStock

- Pass pre-fetched items to tagListingRepository.selectAllByItems()
- Eliminates redundant itemRepository.selectAllByCatalogIds() call

🤖 Generated with Claude Code
 
35442 219 d 2 h amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/scheduled/ Optimize checkfocusedModelInPartnerStock() - fix N+1 queries with batch fetching

- Reduced ~23,500 DB calls to ~12 batch queries
- Batch fetch customRetailers, inventory snapshots, GRN orders, items, tagListings upfront
- Fixed bug: partnerIdSalesHeadersMap.get(fofoStore.getId()) instead of get(fofoStore)

🤖 Generated with Claude Code
 
35424 220 d 2 h amit /trunk/ Fix order billing vs cancellation race condition with pessimistic locking

Problem:
- Concurrent billing and cancellation of the same order caused data inconsistency
- Money was refunded to wallet while order was also getting billed

Solution:
- Added pessimistic locking (SELECT FOR UPDATE) to prevent concurrent modifications
- Added validation methods to check order state before billing/cancellation
- Optimized billing method to reduce lock duration with pre-fetching

Changes:
- OrderRepository: Added selectByIdForUpdate, selectByOrderIdsForUpdate,
selectByInvoiceNumbersForUpdate, selectAllByTransactionIdForUpdate,
validateOrdersForBilling, validateOrderForRefund methods
- OrderRepositoryImpl: Implemented locking methods with PESSIMISTIC_WRITE
- TransactionServiceImpl: Updated billing methods with locking, fail-fast
validation, pre-fetching to avoid N+1 queries
- ScheduledTasks: Updated removePartialBillingForTransaction with locking
- TransactionRelatedTasks: Updated reverseRTO with locking
 
35393 221 d 20 h amit /trunk/profitmandi-cron/src/main/java/com/smartdukaan/cron/ Fixed MongoDB close method  

Show All