| Rev |
Age |
Author |
Path |
Log message |
Diff |
| 36372 |
6 d 11 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 |
11 d 16 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 |
66 d 9 h |
amit |
/trunk/ |
Optimize order creation: reduce DB queries, fix Hibernate batching, move filters to SQL |
|
| 34966 |
238 d 6 h |
amit |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
Removed wallet Credit |
|
| 34752 |
300 d 0 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ |
Fixed Activation Scheme Logic |
|
| 34674 |
316 d 7 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 |
348 d 7 h |
vikas.jangra |
/trunk/ |
Liquidation/Bidding auto approval |
|
| 34261 |
422 d 8 h |
tejus.lohani |
/trunk/ |
Give (a pending,approved,reject)add-wallet-req report |
|
| 33861 |
568 d 9 h |
tejus.lohani |
/trunk/ |
check fullStockPayment and orderDispatch and auto mark billing and fullstock payment |
|
| 33848 |
572 d 1 h |
tejus.lohani |
/trunk/ |
fix bm approval flow - loi generate after approval |
|
| 33845 |
572 d 11 h |
tejus.lohani |
/trunk/ |
new flow of Onboarding process and wod-fin report , |
|
| 33547 |
664 d 3 h |
tejus.lohani |
/trunk/ |
changes in Max negative wallet value |
|
| 33421 |
698 d 2 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
Added amount |
|
| 33247 |
740 d 10 h |
ranu |
/trunk/ |
warehouse billing phase one and added signature exception |
|
| 33194 |
751 d 11 h |
amit.gupta |
/trunk/ |
Added 10K for Referral |
|
| 33180 |
756 d 9 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
patch for |
|
| 33172 |
761 d 8 h |
tejus.lohani |
/trunk/ |
add bulk order service in admin dashboard |
|
| 32871 |
832 d 7 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
AA |
|
| 32494 |
944 d 10 h |
amit.gupta |
/trunk/ |
Merged changes related to Smartdukaan |
|
| 31921 |
1090 d 9 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/ |
Fixed scheme depenedncy issue |
|
| 31521 |
1184 d 7 h |
amit.gupta |
/trunk/ |
Change Cutoff investment to 40
and MIN_INVESTMENT_PERCENT to 20 |
|
| 31420 |
1209 d 5 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
Fixed net availability to SaholicCIS Table |
|
| 30998 |
1305 d 5 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
Can now pay for Damage protection even when insufficient wallet. Wallet is allowed to go negative in this case. |
|
| 30889 |
1343 d 7 h |
amit.gupta |
/trunk/ |
Fixed commit |
|
| 30748 |
1374 d 13 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
Added scheme in processing for specified scheme ids |
|
| 30747 |
1374 d 13 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
Recharge not allowed for low insvestments |
|
| 30744 |
1375 d 5 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
Added scheme in processing for specified scheme ids |
|
| 30743 |
1375 d 5 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
Added scheme in processing for specified scheme ids |
|
| 30742 |
1375 d 5 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
Added scheme in processing for specified scheme ids |
|
| 30741 |
1375 d 6 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
Added scheme in processing for specified scheme ids |
|
| 30740 |
1375 d 6 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
Added scheme in processing for specified scheme ids |
|
| 30677 |
1402 d 4 h |
amit.gupta |
/trunk/ |
Added scheme in processing for specified scheme ids |
|
| 30449 |
1441 d 8 h |
amit.gupta |
/trunk/ |
Added Offer Changes |
|
| 30066 |
1529 d 5 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/ |
Fixed logic to purchase/sales based value |
|
| 30025 |
1535 d 9 h |
amit.gupta |
/trunk/ |
Added notification for all credit |
|
| 29538 |
1643 d 7 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
|
|
| 29498 |
1645 d 10 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
|
|
| 28596 |
1753 d 5 h |
amit.gupta |
/trunk/ |
Added logic to get closing of all retailers. |
|
| 28518 |
1769 d 6 h |
amit.gupta |
/trunk/profitmandi-dao/src/main/java/com/spice/profitmandi/service/wallet/ |
|
|
| 28241 |
1837 d 13 h |
amit.gupta |
/trunk/ |
Added changes to handle Partner payments online |
|