| Line 1... |
Line 1... |
| 1 |
package com.spice.profitmandi.web.controller;
|
1 |
package com.spice.profitmandi.web.controller;
|
| 2 |
|
2 |
|
| 3 |
import java.time.LocalDateTime;
|
3 |
import java.time.LocalDateTime;
|
| 4 |
import java.util.ArrayList;
|
4 |
import java.util.ArrayList;
|
| 5 |
import java.util.Arrays;
|
5 |
import java.util.Arrays;
|
| - |
|
6 |
import java.util.Collections;
|
| 6 |
import java.util.HashMap;
|
7 |
import java.util.HashMap;
|
| - |
|
8 |
import java.util.HashSet;
|
| - |
|
9 |
import java.util.LinkedHashMap;
|
| 7 |
import java.util.List;
|
10 |
import java.util.List;
|
| 8 |
import java.util.Map;
|
11 |
import java.util.Map;
|
| - |
|
12 |
import java.util.Map.Entry;
|
| 9 |
import java.util.Set;
|
13 |
import java.util.Set;
|
| 10 |
import java.util.stream.Collectors;
|
14 |
import java.util.stream.Collectors;
|
| 11 |
|
15 |
|
| 12 |
import javax.servlet.http.HttpServletRequest;
|
16 |
import javax.servlet.http.HttpServletRequest;
|
| 13 |
|
17 |
|
| Line 25... |
Line 29... |
| 25 |
import org.springframework.web.bind.annotation.RequestParam;
|
29 |
import org.springframework.web.bind.annotation.RequestParam;
|
| 26 |
|
30 |
|
| 27 |
import com.spice.profitmandi.common.enumuration.MessageType;
|
31 |
import com.spice.profitmandi.common.enumuration.MessageType;
|
| 28 |
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
|
32 |
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
|
| 29 |
import com.spice.profitmandi.common.model.CustomRetailer;
|
33 |
import com.spice.profitmandi.common.model.CustomRetailer;
|
| - |
|
34 |
import com.spice.profitmandi.common.model.FocusedModelShortageModel;
|
| 30 |
import com.spice.profitmandi.common.model.ProfitMandiConstants;
|
35 |
import com.spice.profitmandi.common.model.ProfitMandiConstants;
|
| 31 |
import com.spice.profitmandi.common.model.SendNotificationModel;
|
36 |
import com.spice.profitmandi.common.model.SendNotificationModel;
|
| 32 |
import com.spice.profitmandi.common.web.util.ResponseSender;
|
37 |
import com.spice.profitmandi.common.web.util.ResponseSender;
|
| 33 |
import com.spice.profitmandi.dao.cart.CartService;
|
38 |
import com.spice.profitmandi.dao.cart.CartService;
|
| 34 |
import com.spice.profitmandi.dao.entity.auth.AuthUser;
|
39 |
import com.spice.profitmandi.dao.entity.auth.AuthUser;
|
| 35 |
import com.spice.profitmandi.dao.entity.catalog.FocusedModelByPassRequest;
|
40 |
import com.spice.profitmandi.dao.entity.catalog.FocusedModelByPassRequest;
|
| - |
|
41 |
import com.spice.profitmandi.dao.entity.catalog.Item;
|
| - |
|
42 |
import com.spice.profitmandi.dao.entity.catalog.TagListing;
|
| - |
|
43 |
import com.spice.profitmandi.dao.entity.cs.PartnerRegion;
|
| 36 |
import com.spice.profitmandi.dao.entity.cs.Position;
|
44 |
import com.spice.profitmandi.dao.entity.cs.Position;
|
| 37 |
import com.spice.profitmandi.dao.entity.dtr.User;
|
45 |
import com.spice.profitmandi.dao.entity.dtr.User;
|
| 38 |
import com.spice.profitmandi.dao.entity.dtr.UserAccount;
|
46 |
import com.spice.profitmandi.dao.entity.dtr.UserAccount;
|
| - |
|
47 |
import com.spice.profitmandi.dao.entity.fofo.FofoStore;
|
| - |
|
48 |
import com.spice.profitmandi.dao.entity.fofo.PartnerDailyInvestment;
|
| - |
|
49 |
import com.spice.profitmandi.dao.entity.inventory.SaholicCIS;
|
| 39 |
import com.spice.profitmandi.dao.enumuration.catalog.ByPassRequestStatus;
|
50 |
import com.spice.profitmandi.dao.enumuration.catalog.ByPassRequestStatus;
|
| 40 |
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
|
51 |
import com.spice.profitmandi.dao.enumuration.cs.EscalationType;
|
| 41 |
import com.spice.profitmandi.dao.enumuration.dtr.AccountType;
|
52 |
import com.spice.profitmandi.dao.enumuration.dtr.AccountType;
|
| 42 |
import com.spice.profitmandi.dao.model.AddCartRequest;
|
53 |
import com.spice.profitmandi.dao.model.AddCartRequest;
|
| 43 |
import com.spice.profitmandi.dao.model.CartItem;
|
54 |
import com.spice.profitmandi.dao.model.CartItem;
|
| Line 45... |
Line 56... |
| 45 |
import com.spice.profitmandi.dao.model.CartResponse;
|
56 |
import com.spice.profitmandi.dao.model.CartResponse;
|
| 46 |
import com.spice.profitmandi.dao.model.ProductPojo;
|
57 |
import com.spice.profitmandi.dao.model.ProductPojo;
|
| 47 |
import com.spice.profitmandi.dao.model.UserCart;
|
58 |
import com.spice.profitmandi.dao.model.UserCart;
|
| 48 |
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
|
59 |
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
|
| 49 |
import com.spice.profitmandi.dao.repository.catalog.FocusedModelByPassRepository;
|
60 |
import com.spice.profitmandi.dao.repository.catalog.FocusedModelByPassRepository;
|
| - |
|
61 |
import com.spice.profitmandi.dao.repository.catalog.FocusedModelRepository;
|
| 50 |
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
|
62 |
import com.spice.profitmandi.dao.repository.catalog.ItemRepository;
|
| - |
|
63 |
import com.spice.profitmandi.dao.repository.catalog.TagListingRepository;
|
| 51 |
import com.spice.profitmandi.dao.repository.cs.CsService;
|
64 |
import com.spice.profitmandi.dao.repository.cs.CsService;
|
| - |
|
65 |
import com.spice.profitmandi.dao.repository.cs.PartnerRegionRepository;
|
| 52 |
import com.spice.profitmandi.dao.repository.cs.PositionRepository;
|
66 |
import com.spice.profitmandi.dao.repository.cs.PositionRepository;
|
| - |
|
67 |
import com.spice.profitmandi.dao.repository.dtr.FofoStoreRepository;
|
| - |
|
68 |
import com.spice.profitmandi.dao.repository.dtr.RetailerBlockBrandsRepository;
|
| 53 |
import com.spice.profitmandi.dao.repository.dtr.UserAccountRepository;
|
69 |
import com.spice.profitmandi.dao.repository.dtr.UserAccountRepository;
|
| 54 |
import com.spice.profitmandi.dao.repository.dtr.UserRepository;
|
70 |
import com.spice.profitmandi.dao.repository.dtr.UserRepository;
|
| - |
|
71 |
import com.spice.profitmandi.dao.repository.fofo.CurrentInventorySnapshotRepository;
|
| - |
|
72 |
import com.spice.profitmandi.dao.repository.transaction.OrderRepository;
|
| 55 |
import com.spice.profitmandi.dao.util.ContentPojoPopulator;
|
73 |
import com.spice.profitmandi.dao.util.ContentPojoPopulator;
|
| 56 |
import com.spice.profitmandi.service.FofoUser;
|
74 |
import com.spice.profitmandi.service.FofoUser;
|
| 57 |
import com.spice.profitmandi.service.NotificationService;
|
75 |
import com.spice.profitmandi.service.NotificationService;
|
| 58 |
import com.spice.profitmandi.service.PartnerInvestmentService;
|
76 |
import com.spice.profitmandi.service.PartnerInvestmentService;
|
| 59 |
import com.spice.profitmandi.service.inventory.ByPassRequestModel;
|
77 |
import com.spice.profitmandi.service.inventory.ByPassRequestModel;
|
| - |
|
78 |
import com.spice.profitmandi.service.inventory.FocusedShortageModel;
|
| 60 |
import com.spice.profitmandi.service.inventory.ItemBucketService;
|
79 |
import com.spice.profitmandi.service.inventory.ItemBucketService;
|
| - |
|
80 |
import com.spice.profitmandi.service.inventory.SaholicInventoryService;
|
| - |
|
81 |
import com.spice.profitmandi.service.transaction.TransactionService;
|
| 61 |
import com.spice.profitmandi.service.user.RetailerService;
|
82 |
import com.spice.profitmandi.service.user.RetailerService;
|
| 62 |
import com.spice.profitmandi.thrift.clients.UserClient;
|
83 |
import com.spice.profitmandi.web.controller.checkout.OrderController;
|
| 63 |
import com.spice.profitmandi.web.res.ValidateCartResponse;
|
84 |
import com.spice.profitmandi.web.res.ValidateCartResponse;
|
| 64 |
|
85 |
|
| 65 |
import in.shop2020.model.v1.user.ItemQuantity;
|
- |
|
| 66 |
import in.shop2020.model.v1.user.UserContextService;
|
- |
|
| 67 |
import io.swagger.annotations.ApiImplicitParam;
|
86 |
import io.swagger.annotations.ApiImplicitParam;
|
| 68 |
import io.swagger.annotations.ApiImplicitParams;
|
87 |
import io.swagger.annotations.ApiImplicitParams;
|
| 69 |
import io.swagger.annotations.ApiOperation;
|
88 |
import io.swagger.annotations.ApiOperation;
|
| 70 |
|
89 |
|
| 71 |
@Controller
|
90 |
@Controller
|
| Line 115... |
Line 134... |
| 115 |
|
134 |
|
| 116 |
@Autowired
|
135 |
@Autowired
|
| 117 |
private FofoUser fofoUser;
|
136 |
private FofoUser fofoUser;
|
| 118 |
|
137 |
|
| 119 |
@Autowired
|
138 |
@Autowired
|
| - |
|
139 |
private FocusedModelRepository focusedModelRepository;
|
| - |
|
140 |
|
| - |
|
141 |
@Autowired
|
| - |
|
142 |
private PartnerRegionRepository partnerRegionRepository;
|
| - |
|
143 |
|
| - |
|
144 |
@Autowired
|
| - |
|
145 |
private SaholicInventoryService saholicInventoryService;
|
| - |
|
146 |
|
| - |
|
147 |
@Autowired
|
| - |
|
148 |
private TransactionService transactionService;
|
| - |
|
149 |
|
| - |
|
150 |
@Autowired
|
| - |
|
151 |
private FofoStoreRepository fofoStoreRepository;
|
| - |
|
152 |
|
| - |
|
153 |
@Autowired
|
| - |
|
154 |
private RetailerBlockBrandsRepository retailerBlockBrandRepository;
|
| - |
|
155 |
|
| - |
|
156 |
@Autowired
|
| - |
|
157 |
private OrderRepository orderRepository;
|
| - |
|
158 |
|
| - |
|
159 |
@Autowired
|
| - |
|
160 |
private TagListingRepository tagListingRepository;
|
| - |
|
161 |
|
| - |
|
162 |
@Autowired
|
| 120 |
private NotificationService notificationService;
|
163 |
private NotificationService notificationService;
|
| 121 |
|
164 |
|
| - |
|
165 |
@Autowired
|
| - |
|
166 |
private CurrentInventorySnapshotRepository currentInventorySnapshotRepository;
|
| - |
|
167 |
|
| 122 |
public static final Map<String, Integer> MIN_BRAND_QTY_LIMIT = new HashMap<>();
|
168 |
public static final Map<String, Integer> MIN_BRAND_QTY_LIMIT = new HashMap<>();
|
| 123 |
|
169 |
|
| - |
|
170 |
private static final Logger log = LogManager.getLogger(CartController.class);
|
| - |
|
171 |
|
| 124 |
List<EscalationType> esclationType = Arrays.asList(EscalationType.L3, EscalationType.L4, EscalationType.L2);
|
172 |
List<EscalationType> esclationType = Arrays.asList(EscalationType.L3, EscalationType.L4, EscalationType.L2);
|
| 125 |
|
173 |
|
| 126 |
List<String> emails = Arrays.asList("kamini.sharma@smartdukaan.com", "tarun.verma@smartdukaan.com",
|
174 |
List<String> emails = Arrays.asList("kamini.sharma@smartdukaan.com", "tarun.verma@smartdukaan.com",
|
| 127 |
"niranjan.kala@smartdukaan.com", "sm@smartdukaan.com");
|
175 |
"niranjan.kala@smartdukaan.com", "sm@smartdukaan.com");
|
| 128 |
|
176 |
|
| Line 194... |
Line 242... |
| 194 |
public ResponseEntity<?> byPassRequests(HttpServletRequest request, Model model) throws Exception {
|
242 |
public ResponseEntity<?> byPassRequests(HttpServletRequest request, Model model) throws Exception {
|
| 195 |
|
243 |
|
| 196 |
int userId = (int) request.getAttribute("userId");
|
244 |
int userId = (int) request.getAttribute("userId");
|
| 197 |
|
245 |
|
| 198 |
User user = userRepository.selectById(userId);
|
246 |
User user = userRepository.selectById(userId);
|
| 199 |
AuthUser authUser = authRepository.selectByEmailOrMobile(user.getEmailId());
|
247 |
AuthUser authUser = authRepository.selectByEmailOrMobile("tarun.verma@smartdukaan.com");
|
| 200 |
|
248 |
|
| 201 |
List<FocusedModelByPassRequest> byPassRequests = null;
|
249 |
List<FocusedModelByPassRequest> byPassRequests = null;
|
| 202 |
|
250 |
|
| 203 |
Set<Integer> authfofoIds = null;
|
251 |
Set<Integer> authfofoIds = null;
|
| 204 |
boolean actionAccess = false;
|
252 |
boolean actionAccess = false;
|
| Line 235... |
Line 283... |
| 235 |
logger.info("authfofoIds" + authfofoIds);
|
283 |
logger.info("authfofoIds" + authfofoIds);
|
| 236 |
if (authfofoIds != null) {
|
284 |
if (authfofoIds != null) {
|
| 237 |
byPassRequests = focusedModelByPassRepository.selectByStatusAndFofoIds(new ArrayList<>(authfofoIds),
|
285 |
byPassRequests = focusedModelByPassRepository.selectByStatusAndFofoIds(new ArrayList<>(authfofoIds),
|
| 238 |
ByPassRequestStatus.PENDING);
|
286 |
ByPassRequestStatus.PENDING);
|
| 239 |
}
|
287 |
}
|
| - |
|
288 |
|
| 240 |
Map<Integer, CustomRetailer> customRetailerMap = retailerService.getAllFofoRetailers();
|
289 |
Map<Integer, CustomRetailer> customRetailerMap = retailerService.getAllFofoRetailers();
|
| 241 |
List<ByPassRequestModel> byPassList = new ArrayList<>();
|
290 |
List<ByPassRequestModel> byPassList = new ArrayList<>();
|
| 242 |
|
291 |
|
| 243 |
for (FocusedModelByPassRequest byPassRequest : byPassRequests) {
|
292 |
for (FocusedModelByPassRequest byPassRequest : byPassRequests) {
|
| - |
|
293 |
|
| - |
|
294 |
List<FocusedShortageModel> fsms = cartService.focusedModelShortageValidation(byPassRequest.getFofoId(),
|
| - |
|
295 |
new HashMap<>());
|
| 244 |
Map<String, Object> investments = fofoUser.getInvestments(byPassRequest.getFofoId());
|
296 |
Map<String, Object> investments = fofoUser.getInvestments(byPassRequest.getFofoId());
|
| 245 |
ByPassRequestModel bp = new ByPassRequestModel();
|
297 |
ByPassRequestModel bp = new ByPassRequestModel();
|
| 246 |
bp.setPartnerName(customRetailerMap.get(byPassRequest.getFofoId()).getBusinessName());
|
298 |
bp.setPartnerName(customRetailerMap.get(byPassRequest.getFofoId()).getBusinessName());
|
| 247 |
bp.setCity(customRetailerMap.get(byPassRequest.getFofoId()).getAddress().getCity());
|
299 |
bp.setCity(customRetailerMap.get(byPassRequest.getFofoId()).getAddress().getCity());
|
| 248 |
bp.setState(customRetailerMap.get(byPassRequest.getFofoId()).getAddress().getState());
|
300 |
bp.setState(customRetailerMap.get(byPassRequest.getFofoId()).getAddress().getState());
|
| 249 |
bp.setCode(customRetailerMap.get(byPassRequest.getFofoId()).getCode());
|
301 |
bp.setCode(customRetailerMap.get(byPassRequest.getFofoId()).getCode());
|
| 250 |
bp.setStatus(byPassRequest.getStatus());
|
302 |
bp.setStatus(byPassRequest.getStatus());
|
| 251 |
bp.setFofoId(byPassRequest.getFofoId());
|
303 |
bp.setFofoId(byPassRequest.getFofoId());
|
| 252 |
bp.setByPassRequestId(byPassRequest.getId());
|
304 |
bp.setByPassRequestId(byPassRequest.getId());
|
| 253 |
bp.setInvestmentOkDays((Long) investments.get("okDays"));
|
305 |
bp.setInvestmentOkDays((Long) investments.get("okDays"));
|
| 254 |
bp.setInvestmentShort((int) investments.get("short"));
|
306 |
bp.setInvestmentShort((PartnerDailyInvestment) investments.get("investment"));
|
| 255 |
bp.setMobileNumber(customRetailerMap.get(byPassRequest.getFofoId()).getMobileNumber());
|
307 |
bp.setMobileNumber(customRetailerMap.get(byPassRequest.getFofoId()).getMobileNumber());
|
| 256 |
bp.setActionAccess(actionAccess);
|
308 |
bp.setActionAccess(actionAccess);
|
| 257 |
bp.setCreateTimestamp(byPassRequest.getCreatedTimeStamp());
|
309 |
bp.setCreateTimestamp(byPassRequest.getCreatedTimeStamp());
|
| 258 |
bp.setUpdateTimestamp(byPassRequest.getUpdatedTimestamp());
|
310 |
bp.setUpdateTimestamp(byPassRequest.getUpdatedTimestamp());
|
| - |
|
311 |
bp.setFsms(fsms);
|
| 259 |
byPassList.add(bp);
|
312 |
byPassList.add(bp);
|
| 260 |
|
313 |
|
| 261 |
}
|
314 |
}
|
| 262 |
|
315 |
|
| 263 |
return responseSender.ok(byPassList);
|
316 |
return responseSender.ok(byPassList);
|