| Rev |
Age |
Author |
Path |
Log message |
Diff |
| 37319 |
11 h 36 m |
amit |
/trunk/ |
Fix partner-performance tertiary: aggregate order items (qty*mop), not the POS-typed order header
The tertiary panel summed fofo_order.total_amount - a price typed at the partner POS
and never validated against the catalogue - and attributed each whole order to its
first line item's brand via .get(0). One mistyped digit inflated reported sell-out
10x, and mixed-brand orders booked 100% to the first brand, leaving the rest at zero.
Defect dates from r32000/r32034 (May 2023); the panel was the only tertiary consumer
diverging from the qty*mop basis.
- New FofoOrder.selectMonthlyBrandTertiary: sum(quantity*mop) grouped by
(year*100+month) and item brand - the same basis selectPartnerTertiarySales
already uses for the DSR and the partner tier calculation
- PerformanceController: replaces two entity-loading queries (every FofoOrder and
FofoOrderItem for 6 months) with one aggregate; all items now count, each under
its own brand
- Month labels unchanged - toMonthLabel rebuilds the MMM''uu key, template untouched
- Remove V2FofoPerformanceController, the /v2/fofo JSON copy carrying the same defect
Verified against dev DB for fofo_id 175139501: Jul 2026 now 16,94,939 (panel
previously showed 50,92,440); all six months match the qty*mop basis. |
|
| 37318 |
13 h 49 m |
ranu |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/checkout/ |
v2 version some fixes |
|
| 37313 |
17 h 44 m |
ranu |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/ |
v2 version some fixes |
|
| 37305 |
1 d 12 h |
ranu |
/trunk/ |
carry bag for silver at 1 |
|
| 37304 |
1 d 12 h |
ranu |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/ |
v2 version some fixes |
|
| 37298 |
2 d 7 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/ |
Default subCategoryId to 0 on endpoints that declare it required=false
subCategoryId is a primitive int, so a required=false declaration with no
defaultValue makes Spring throw when the param is omitted:
Optional int parameter 'subCategoryId' is present but cannot be translated
into a null value due to being declared as a primitive type.
v1 DealsController and GuestController already default it to 0; their v2
wrappers dropped that, and StoreController never had it on either version. Any
caller omitting the param got a 500 with a message that does not name the
parameter at fault.
Adding the default only removes that failure path — every currently working
caller already sends a value, so no existing behaviour changes. |
|
| 37293 |
2 d 17 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/ |
Fix region-ALL (fofoId=0 sentinel) handling on RBM home
active-offers: regionId resolved via rows.get(0).getFofoId(), which is 0 for
region ALL, so selectByRetailerId(0) threw FOFOSTR_1000 'Fofo store not found'
(400) for every region-ALL user. Now filters fofoId>0, picks an active store,
and falls back to the caller's fofoId when a region resolves to nothing.
rbm-regions: dropdown now lists only regions holding an active retailer (with
activePartners count), which drops the ALL pseudo-region; users carrying the
sentinel get every live region as assignedRegionIds instead of an empty set.
rbm-dashboard: expand the sentinel like CsServiceImpl does (row region ->
its partners; region ALL -> all active stores) so the partners tile stops
reporting 0/1. Scope-wide batches limited to stores/targets/purchases/
last-billed; name, wallet and loan lookups now run only over the returned
slice. partners and alerts capped via ?limit (default 50, max 200) with
partnersReturned/totalAlerts/alertsReturned/limit added to summary. Partners
with no target this month rank after those actually missing a target, so the
capped slice is not filled by unset-target stores. |
|
| 37273 |
4 d 18 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/v2/controller/fofo/ |
Apply same idempotent super-catalog mapping save to V2 controller
Keeps V2FofoSuperCatalogController in step with the fofo SuperCatalogController
fix (r37272) so the dormant endpoint cannot violate the new
UNIQUE(catalog_id, super_catalog_id) constraint if it is ever enabled. |
|
| 37269 |
4 d 19 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/services/ |
Hot deals enrichment: Fresh pill (green tick when device unused, greyed cross otherwise) replacing Activated; class hd-fresh |
|
| 37267 |
5 d 10 h |
ranu |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/ |
v2 version some fixes |
|
| 37260 |
8 d 2 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/ |
Hot deals API: fix /fofo 500 when subCategoryId omitted (primitive int + required=false cannot bind null; defaultValue 0, same in GuestController); /fofo/hotDeals/categories facet endpoint for filter chips; hotDeal listing honors explicit categoryId only (cross-category default); enrichment pills - constant names with hd-yes/hd-no + hd-good/hd-off state classes, not-activated is the green state |
|
| 37250 |
8 d 14 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/ |
perf: speed up /partner/listing by batching partner-level data and parallelizing solr calls
- Fetch stock snapshot, favourites, web offers, combo models, CIS, items,
cashback and price circular once per request (union of all listings'
catalogs/items) instead of once per listing
- Precompute slab-payout/scheme-offer alignment once per catalog so shared
PriceCircularItemModelNew instances are not mutated twice
- Fan per-listing solr queries out on a bounded thread pool; brand exclusion
resolved once on the request thread (Hibernate session is thread-bound)
- Drop per-doc info logs (full stock map, label dumps, solrtype) |
|
| 37249 |
8 d 14 h |
vikas |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/ |
Null check for email |
|
| 37247 |
8 d 18 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/ |
Hot deal surfacing: HotDealEnrichmentService attaches hotDealTags (condition/activated/warranty/fin-mapped/affordability pills, No values hidden) to fofo listing, favourites and partnerdeals responses; /fofo hotDeal=true now sources from model_hot_deal actives via Solr catalogId filter |
|
| 37224 |
10 d 12 h |
amit |
/trunk/profitmandi-web/src/main/ |
external api v2: paginated storeMaster endpoint + docs |
|
| 37207 |
10 d 17 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/external/ |
external api v2: categoryMaster endpoint, client-scoped feeds, itemIds-optional paginated /stock |
|
| 37196 |
11 d 18 h |
ranu |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/filter/ |
v2 version some fixes |
|
| 37195 |
11 d 18 h |
ranu |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/config/ |
ai + brand display mapping fixed |
|
| 37185 |
15 d 13 h |
ranu |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/ |
ai + brand display mapping fixed |
|
| 37183 |
15 d 14 h |
amit |
/trunk/profitmandi-web/src/main/java/com/spice/profitmandi/web/controller/ |
PJP agenda assign: composeAgendaTaskName on create/batch/revisit (supervisor on-the-go path); revival visibility filter on GET agendas; skip blank checkout discussions |
|