| Rev |
Age |
Author |
Path |
Log message |
Diff |
| 36372 |
3 d 13 h |
amit |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ |
Wallet: SELECT FOR UPDATE on user_wallet mutations to close lost-update hole
addAmountToWallet/consumeAmountFromWallet(x2)/rollbackAmountFromWallet all
follow a read-modify-write pattern on user_wallet with no pessimistic lock
and no @Version, so two concurrent tx for the same partner both read the
same pre-snapshot amount, compute their own deltas, and commit - the second
UPDATE silently overwrites the first's credit/debit. user_wallet_history
still gets both rows, so balance drifts vs sum(history) with no exception.
Replaces the misnamed (and body-broken) selectByIdForUpdate - whose
implementation was a plain selectById, not a lock - with a new
selectByRetailerIdForUpdate that issues SELECT ... FOR UPDATE via
LockModeType.PESSIMISTIC_WRITE, mirroring the idiom already used in
GenericRepositoryImpl.selectByIdForUpdate and OrderRepositoryImpl.
Preserves the create-on-missing behavior of selectByRetailerId so
first-time partners keep working.
Switches the four read-modify-write call sites in WalletServiceImpl from
selectByRetailerId to the new locking variant. Read-only callers
(getUserWalletByUserId, getUserWalletHistoryByUserId, etc.) keep using
the non-locking selectByRetailerId - MVCC snapshot reads stay non-blocking
for display/statement endpoints.
Also drops the stale commented-out selectByIdForUpdate line in
rollbackAmountFromWallet and removes the broken method from the
UserWalletRepository interface / impl - it had zero live callers.
Blast radius: every write call to these three wallet methods now holds
an X-lock on the target user_wallet row for the rest of the outer tx.
Concurrent write tx for the same partner will briefly serialize at the
SELECT FOR UPDATE - correct serialization instead of silent drift.
Read-only traffic is unaffected (MVCC). |
|
| 36305 |
8 d 18 h |
amit |
/trunk/profitmandi-dao/src/main/ |
Batch processing infrastructure + per-partner offer processing + partner limit optimization + investment cache eviction on billing/payment/cancellation with 3hr TTL |
|
| 35828 |
63 d 11 h |
amit |
/trunk/ |
Optimize order creation: reduce DB queries, fix Hibernate batching, move filters to SQL |
|
| 34966 |
235 d 7 h |
amit |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
Removed wallet Credit |
|
| 34752 |
297 d 2 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ |
Fixed Activation Scheme Logic |
|
| 34674 |
313 d 9 h |
aman.kumar |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/ |
show the partner name when wallet amount is not sufficient on bulk order |
|
| 34575 |
345 d 9 h |
vikas.jangra |
/trunk/ |
Liquidation/Bidding auto approval |
|
| 34261 |
419 d 10 h |
tejus.lohani |
/trunk/ |
Give (a pending,approved,reject)add-wallet-req report |
|
| 33861 |
565 d 11 h |
tejus.lohani |
/trunk/ |
check fullStockPayment and orderDispatch and auto mark billing and fullstock payment |
|
| 33848 |
569 d 3 h |
tejus.lohani |
/trunk/ |
fix bm approval flow - loi generate after approval |
|
| 33845 |
569 d 13 h |
tejus.lohani |
/trunk/ |
new flow of Onboarding process and wod-fin report , |
|
| 33547 |
661 d 5 h |
tejus.lohani |
/trunk/ |
changes in Max negative wallet value |
|
| 33421 |
695 d 4 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
Added amount |
|
| 33247 |
737 d 12 h |
ranu |
/trunk/ |
warehouse billing phase one and added signature exception |
|
| 33194 |
748 d 13 h |
amit.gupta |
/trunk/ |
Added 10K for Referral |
|
| 33180 |
753 d 11 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
patch for |
|
| 33172 |
758 d 10 h |
tejus.lohani |
/trunk/ |
add bulk order service in admin dashboard |
|
| 32871 |
829 d 9 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
AA |
|
| 32494 |
941 d 12 h |
amit.gupta |
/trunk/ |
Merged changes related to Smartdukaan |
|
| 31921 |
1087 d 11 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/ |
Fixed scheme depenedncy issue |
|