Subversion Repositories SmartDukaan

Rev

Rev 29325 | Rev 29328 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 29325 Rev 29327
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);