Subversion Repositories SmartDukaan

Rev

Rev 23505 | Rev 23548 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
23505 ashik.ali 1
package com.spice.profitmandi.web.controller;
2
 
23528 ashik.ali 3
import java.util.ArrayList;
23505 ashik.ali 4
import java.util.HashMap;
5
import java.util.HashSet;
6
import java.util.List;
7
import java.util.Map;
8
import java.util.Set;
9
 
10
import javax.servlet.http.HttpServletRequest;
11
 
12
import org.slf4j.Logger;
13
import org.slf4j.LoggerFactory;
14
import org.springframework.beans.factory.annotation.Autowired;
15
import org.springframework.beans.factory.annotation.Value;
16
import org.springframework.stereotype.Controller;
17
import org.springframework.transaction.annotation.Transactional;
18
import org.springframework.ui.Model;
19
import org.springframework.web.bind.annotation.RequestBody;
20
import org.springframework.web.bind.annotation.RequestMapping;
21
import org.springframework.web.bind.annotation.RequestMethod;
22
import org.springframework.web.bind.annotation.RequestParam;
23
 
23528 ashik.ali 24
import com.spice.profitmandi.common.enumuration.SchemeType;
23505 ashik.ali 25
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
26
import com.spice.profitmandi.common.model.OperatorType;
27
import com.spice.profitmandi.common.model.ProfitMandiConstants;
23528 ashik.ali 28
import com.spice.profitmandi.common.model.RechargeCommissionRequest;
29
import com.spice.profitmandi.common.model.RechargeCredential;
23505 ashik.ali 30
import com.spice.profitmandi.common.model.RechargeRequest;
23528 ashik.ali 31
import com.spice.profitmandi.dao.entity.dtr.RechargeCommission;
23505 ashik.ali 32
import com.spice.profitmandi.dao.entity.dtr.RechargeOperator;
33
import com.spice.profitmandi.dao.entity.dtr.RechargeTransaction;
34
import com.spice.profitmandi.dao.enumuration.dtr.RechargeType;
23528 ashik.ali 35
import com.spice.profitmandi.dao.repository.dtr.RechargeCommissionRepository;
23505 ashik.ali 36
import com.spice.profitmandi.dao.repository.dtr.RechargeOperatorRepository;
37
import com.spice.profitmandi.dao.repository.dtr.RechargeTransactionRepository;
38
import com.spice.profitmandi.service.recharge.RechargeService;
39
import com.spice.profitmandi.web.model.LoginDetails;
40
import com.spice.profitmandi.web.util.CookiesProcessor;
41
 
42
@Controller
43
@Transactional(rollbackFor=Throwable.class)
44
public class RechargeController {
45
 
46
	private static final Logger LOGGER = LoggerFactory.getLogger(RechargeController.class);
47
 
23528 ashik.ali 48
	@Value("${recharge.transaction.scheme.type}")
49
	private String rechargeTransactionSchemeType;
50
 
51
	@Value("${recharge.transaction.host}")
52
	private String rechargeTransactionHost;
23505 ashik.ali 53
 
23528 ashik.ali 54
	@Value("${recharge.transaction.port}")
55
	private int rechargeTransactionPort;
23505 ashik.ali 56
 
23528 ashik.ali 57
	@Value("${recharge.transaction.uri}")
58
	private String rechargeTransactionUri;
59
 
23505 ashik.ali 60
	@Value("${recharge.auth.key}")
61
	private String rechargeAuthKey;
62
 
23528 ashik.ali 63
	@Value("${recharge.transaction.scheme.type}")
64
	private String rechargeEnquirySchemeType;
65
 
66
	@Value("${recharge.transaction.host}")
67
	private String rechargeEnquiryHost;
23505 ashik.ali 68
 
23528 ashik.ali 69
	@Value("${recharge.transaction.port}")
70
	private int rechargeEnquiryPort;
23505 ashik.ali 71
 
23528 ashik.ali 72
	@Value("${recharge.transaction.uri}")
73
	private String rechargeEnquiryUri;
74
 
75
	@Value("${recharge.validation.scheme.type}")
76
	private String rechargeValidationSchemeType;
77
 
78
	@Value("${recharge.validation.host}")
79
	private String rechargeValidationHost;
80
 
81
	@Value("${recharge.validation.port}")
82
	private int rechargeValidationPort;
83
 
84
	@Value("${recharge.validation.uri}")
85
	private String rechargeValidationUri;
86
 
23505 ashik.ali 87
	@Value("${recharge.validation.auth.key}")
88
	private String rechargeValidationAuthKey;
89
 
90
	@Autowired
91
	private RechargeService rechargeService;
92
 
93
	@Autowired
94
	private RechargeOperatorRepository rechargeOperatorRepository;
95
 
96
	@Autowired
97
	private RechargeTransactionRepository rechargeTransactionRepository;
98
 
99
	@Autowired
23528 ashik.ali 100
	private RechargeCommissionRepository rechargeCommissionRepository;
101
 
102
	@Autowired
23505 ashik.ali 103
	private CookiesProcessor cookiesProcessor;
104
 
105
	@RequestMapping(value = "/createRecharge", method = RequestMethod.GET)
106
	public String createRecharge(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.RECHARGE_TYPE) String rechargeTypeString, Model model){
107
		//model.addAttribute("rechargeOperators", rechargeOperatorRepository.selectAllByRechargeType(RechargeType.MOBILE));
108
		//model.addAttribute("rechargeTypes", RechargeType.values());
109
		RechargeType rechargeType = RechargeType.valueOf(rechargeTypeString);
110
		List<RechargeOperator> rechargeOperators = null;
111
		if(rechargeType == RechargeType.MOBILE) {
112
			model.addAttribute("operatorTypes", OperatorType.values());
113
			rechargeOperators = rechargeOperatorRepository.selectAllByOperatorType(OperatorType.PREPAID);
114
		}else {
115
			rechargeOperators = rechargeOperatorRepository.selectAllByRechargeType(rechargeType);
116
		}
117
		model.addAttribute("rechargeOperators", rechargeOperators);
118
		return "create-recharge";
119
	}
120
 
23528 ashik.ali 121
	private Map<Integer, String> rechargeTransactionsToRechargeOperatorIdNameMap(List<RechargeTransaction> rechargeTransactions){
23505 ashik.ali 122
		Map<Integer, String> rechargeOperatorIdrechargeOperatorNameMap = new HashMap<>();
123
		if(rechargeTransactions.isEmpty()) {
124
			return rechargeOperatorIdrechargeOperatorNameMap;
125
		}
126
		Set<Integer> operatorIds = new HashSet<>();
127
		for(RechargeTransaction rechargeTransaction : rechargeTransactions) {
128
			operatorIds.add(rechargeTransaction.getOperatorId());
129
		}
130
 
131
		List<RechargeOperator> rechargeOperators = rechargeOperatorRepository.selectAllByIds(operatorIds);
132
		for(RechargeOperator rechargeOperator : rechargeOperators) {
133
			rechargeOperatorIdrechargeOperatorNameMap.put(rechargeOperator.getId(), rechargeOperator.getName());
134
		}
135
		return rechargeOperatorIdrechargeOperatorNameMap;
136
	}
137
 
23528 ashik.ali 138
	private Map<Integer, RechargeOperator> rechargeCommissionsOperatorIdRechargeOperatorMap(List<RechargeCommission> rechargeCommissions){
139
		Map<Integer, RechargeOperator> rechargeOperatorIdNameMap = new HashMap<>();
140
		if(rechargeCommissions.isEmpty()) {
141
			return rechargeOperatorIdNameMap;
142
		}
143
		Set<Integer> operatorIds = new HashSet<>();
144
		for(RechargeCommission rechargeCommission : rechargeCommissions) {
145
			operatorIds.add(rechargeCommission.getOperatorId());
146
		}
147
 
148
		List<RechargeOperator> rechargeOperators = rechargeOperatorRepository.selectAllByIds(operatorIds);
149
		for(RechargeOperator rechargeOperator : rechargeOperators) {
150
			rechargeOperatorIdNameMap.put(rechargeOperator.getId(), rechargeOperator);
151
		}
152
		return rechargeOperatorIdNameMap;
153
	}
154
 
23505 ashik.ali 155
	@RequestMapping(value = "/createRecharge", method = RequestMethod.POST)
156
	public String createRecharge(HttpServletRequest request, @RequestBody RechargeRequest rechargeRequest, @RequestParam(name = "offset", defaultValue = "0") int offset, @RequestParam(name = "limit", defaultValue = "10") int limit, Model model) throws ProfitMandiBusinessException{
23528 ashik.ali 157
		LOGGER.info("Recharge request body {}", rechargeRequest);
23505 ashik.ali 158
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
23528 ashik.ali 159
		RechargeCredential rechargeTransactionCredential = new RechargeCredential();
160
		rechargeTransactionCredential.setRechargeSchemeType(SchemeType.valueOf(rechargeTransactionSchemeType.toUpperCase()));
161
		rechargeTransactionCredential.setRechargeHost(rechargeTransactionHost);
162
		rechargeTransactionCredential.setRechargePort(rechargeTransactionPort);
163
		rechargeTransactionCredential.setRechargeAuthKey(rechargeAuthKey);
164
		rechargeTransactionCredential.setRechargeUri(rechargeTransactionUri);
165
 
166
		RechargeCredential rechargeValidationCredential = new RechargeCredential();
167
		rechargeValidationCredential.setRechargeSchemeType(SchemeType.valueOf(rechargeValidationSchemeType.toUpperCase()));
168
		rechargeValidationCredential.setRechargeHost(rechargeValidationHost);
169
		rechargeValidationCredential.setRechargePort(rechargeValidationPort);
170
		rechargeValidationCredential.setRechargeAuthKey(rechargeValidationAuthKey);
171
		rechargeValidationCredential.setRechargeUri(rechargeValidationUri);
172
 
173
		rechargeService.doRecharge(rechargeTransactionCredential, rechargeValidationCredential, loginDetails.getFofoId(), rechargeRequest);
23505 ashik.ali 174
		RechargeType rechargeType = RechargeType.valueOf(rechargeRequest.getRechargeType());
175
		List<RechargeTransaction> rechargeTransactions = rechargeTransactionRepository.selectAllByRetailerIdAndType(loginDetails.getFofoId(), rechargeType, offset, limit);
176
		long size = rechargeTransactionRepository.selectCountByRetailerIdAndType(loginDetails.getFofoId(), rechargeType);
23528 ashik.ali 177
		Map<Integer, String> rechargeOperatorIdRechargeOperatorNameMap = this.rechargeTransactionsToRechargeOperatorIdNameMap(rechargeTransactions);
23505 ashik.ali 178
		model.addAttribute("rechargeTransactions", rechargeTransactions);
179
		model.addAttribute("rechargeOperatorIdRechargeOperatorNameMap", rechargeOperatorIdRechargeOperatorNameMap);
180
		model.addAttribute("start", offset + 1);
181
		model.addAttribute("size", size);
182
		if (rechargeTransactions.size() < limit){
183
			model.addAttribute("end", offset + rechargeTransactions.size());
184
		}else{
185
			model.addAttribute("end", offset + limit);
186
		}
187
		if(RechargeType.valueOf(rechargeRequest.getRechargeType()) == RechargeType.MOBILE) {
188
			return "mobile-recharges";
189
		}else {
190
			return "dth-recharges";
191
		}
192
	}
193
 
194
	@RequestMapping(value = "/getRechargeById", method = RequestMethod.GET)
195
	public String getRechargeById(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.RECHARGE_TRANSACTION_ID) int rechargeTransactionId, Model model)  throws ProfitMandiBusinessException{
196
		RechargeTransaction rechargeTransaction = rechargeTransactionRepository.selectById(rechargeTransactionId);
197
		model.addAttribute("rechargeTransaction", rechargeTransaction);
198
		return "recharge-details";
199
	}
200
 
201
	@RequestMapping(value = "/checkStatus", method = RequestMethod.GET)
202
	public String checkStatus(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.REQUEST_ID) String requestId, @RequestParam(name = ProfitMandiConstants.RECHARGE_TYPE) String rechargeTypeString, @RequestParam(name = "offset", defaultValue = "0") int offset, @RequestParam(name = "limit", defaultValue = "10") int limit, Model model) throws ProfitMandiBusinessException{
203
		LOGGER.info("RequestId [{}], rechargeType [{}]", requestId, rechargeTypeString);
204
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
23528 ashik.ali 205
		RechargeCredential rechargeEnquiryCredential = new RechargeCredential();
206
		rechargeEnquiryCredential.setRechargeSchemeType(SchemeType.valueOf(rechargeEnquirySchemeType.toUpperCase()));
207
		rechargeEnquiryCredential.setRechargeHost(rechargeEnquiryHost);
208
		rechargeEnquiryCredential.setRechargePort(rechargeEnquiryPort);
209
		rechargeEnquiryCredential.setRechargeAuthKey(rechargeAuthKey);
210
 
211
		rechargeService.checkStatus(rechargeEnquiryCredential, loginDetails.getFofoId(), requestId);
23505 ashik.ali 212
		RechargeType rechargeType = RechargeType.valueOf(rechargeTypeString);
213
		List<RechargeTransaction> rechargeTransactions = rechargeTransactionRepository.selectAllByRetailerIdAndType(loginDetails.getFofoId(), rechargeType, offset, limit);
214
		//long size = rechargeTransactionRepository.selectCountByRetailerId(loginDetails.getFofoId());
23528 ashik.ali 215
		Map<Integer, String> rechargeOperatorIdRechargeOperatorNameMap = this.rechargeTransactionsToRechargeOperatorIdNameMap(rechargeTransactions);
23505 ashik.ali 216
		model.addAttribute("rechargeTransactions", rechargeTransactions);
217
		model.addAttribute("rechargeOperatorIdRechargeOperatorNameMap", rechargeOperatorIdRechargeOperatorNameMap);
218
 
219
		if(RechargeType.valueOf(rechargeTypeString) == RechargeType.MOBILE) {
220
			return "mobile-recharges-paginated";
221
		}else {
222
			return "dth-recharges-paginated";
223
		}
224
	}
225
 
226
	@RequestMapping(value = "/getRecharges", method = RequestMethod.GET)
227
	public String getRecharges(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.RECHARGE_TYPE) String rechargeTypeString, @RequestParam(name = "offset", defaultValue = "0") int offset, @RequestParam(name = "limit", defaultValue = "10") int limit, Model model) throws ProfitMandiBusinessException{
228
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
229
		RechargeType rechargeType = RechargeType.valueOf(rechargeTypeString);
230
		List<RechargeTransaction> rechargeTransactions = rechargeTransactionRepository.selectAllByRetailerIdAndType(loginDetails.getFofoId(), rechargeType, offset, limit);
231
		long size = rechargeTransactionRepository.selectCountByRetailerIdAndType(loginDetails.getFofoId(), rechargeType);
23528 ashik.ali 232
		Map<Integer, String> rechargeOperatorIdRechargeOperatorNameMap = this.rechargeTransactionsToRechargeOperatorIdNameMap(rechargeTransactions);
23505 ashik.ali 233
		model.addAttribute("rechargeTransactions", rechargeTransactions);
234
		model.addAttribute("rechargeOperatorIdRechargeOperatorNameMap", rechargeOperatorIdRechargeOperatorNameMap);
235
		model.addAttribute("start", offset + 1);
236
		model.addAttribute("size", size);
237
		if (rechargeTransactions.size() < limit){
238
			model.addAttribute("end", offset + rechargeTransactions.size());
239
		}else{
240
			model.addAttribute("end", offset + limit);
241
		}
242
		if(RechargeType.valueOf(rechargeTypeString) == RechargeType.MOBILE) {
243
			return "mobile-recharges";
244
		}else {
245
			return "dth-recharges";
246
		}
247
	}
248
 
249
	@RequestMapping(value = "/getPaginatedRecharges", method = RequestMethod.GET)
250
	public String getPaginatedRecharges(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.RECHARGE_TYPE) String rechargeTypeString, @RequestParam(name = "offset", defaultValue = "0") int offset, @RequestParam(name = "limit", defaultValue = "10") int limit, Model model) throws ProfitMandiBusinessException{
251
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
252
		RechargeType rechargeType = RechargeType.valueOf(rechargeTypeString);
253
		List<RechargeTransaction> rechargeTransactions = rechargeTransactionRepository.selectAllByRetailerIdAndType(loginDetails.getFofoId(), rechargeType, offset, limit);
23528 ashik.ali 254
		Map<Integer, String> rechargeOperatorIdRechargeOperatorNameMap = this.rechargeTransactionsToRechargeOperatorIdNameMap(rechargeTransactions);
23505 ashik.ali 255
		model.addAttribute("rechargeTransactions", rechargeTransactions);
256
		model.addAttribute("rechargeOperatorIdRechargeOperatorNameMap", rechargeOperatorIdRechargeOperatorNameMap);
257
		if(RechargeType.valueOf(rechargeTypeString) == RechargeType.MOBILE) {
258
			return "mobile-recharges-paginated";
259
		}else {
260
			return "dth-recharges-paginated";
261
		}
262
	}
263
 
23528 ashik.ali 264
	@RequestMapping(value = "/getRechargeOperators", method = RequestMethod.GET)
265
	public String getRechargeOperators(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.OPERATOR_TYPE) String operatorTypeString, Model model){
23505 ashik.ali 266
		//model.addAttribute("rechargeOperators", rechargeOperatorRepository.selectAllByRechargeType(RechargeType.MOBILE));
267
		//model.addAttribute("rechargeTypes", RechargeType.values());
268
		OperatorType operatorType = OperatorType.valueOf(operatorTypeString);
269
		List<RechargeOperator> rechargeOperators = rechargeOperatorRepository.selectAllByOperatorType(operatorType);
270
		model.addAttribute("rechargeOperators", rechargeOperators);
271
		return "recharge-operators";
272
	}
273
 
23528 ashik.ali 274
	@RequestMapping(value = "/getRechargeCommissionOperators", method = RequestMethod.GET)
275
	public String getRechargeCommissionOperators(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.OPERATOR_TYPE) String operatorTypeString, Model model) throws ProfitMandiBusinessException{
276
		//model.addAttribute("rechargeOperators", rechargeOperatorRepository.selectAllByRechargeType(RechargeType.MOBILE));
277
		//model.addAttribute("rechargeTypes", RechargeType.values());
278
		OperatorType operatorType = OperatorType.valueOf(operatorTypeString);
279
		List<RechargeOperator> rechargeOperators = rechargeOperatorRepository.selectAllByOperatorType(operatorType);
280
		List<Integer> rechargeOperatorIds = rechargeCommissionRepository.selectAllOperatorIds();
281
		if(!rechargeOperatorIds.isEmpty()) {
282
			rechargeOperators = this.filterRechargeOperators(rechargeOperators, rechargeOperatorIds);
283
			if(rechargeOperators.isEmpty()) {
284
				throw new ProfitMandiBusinessException(ProfitMandiConstants.OPERATOR_TYPE, operatorType, "RCHRG_1003");
285
			}
286
		}
287
		model.addAttribute("rechargeOperators", rechargeOperators);
288
		return "recharge-operators";
289
	}
23505 ashik.ali 290
 
23528 ashik.ali 291
	@RequestMapping(value = "/createRechargeCommission", method = RequestMethod.GET)
292
	public String createRechargeCommission(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.RECHARGE_TYPE) String rechargeTypeString, Model model) throws ProfitMandiBusinessException{
293
		//model.addAttribute("rechargeOperators", rechargeOperatorRepository.selectAllByRechargeType(RechargeType.MOBILE));
294
		//model.addAttribute("rechargeTypes", RechargeType.values());
295
 
296
		RechargeType rechargeType = RechargeType.valueOf(rechargeTypeString);
297
		List<RechargeOperator> rechargeOperators = null;
298
		if(rechargeType == RechargeType.MOBILE) {
299
			model.addAttribute("operatorTypes", OperatorType.values());
300
			rechargeOperators = rechargeOperatorRepository.selectAllByOperatorType(OperatorType.PREPAID);
301
		}else {
302
			rechargeOperators = rechargeOperatorRepository.selectAllByRechargeType(rechargeType);
303
		}
304
		List<Integer> rechargeOperatorIds = rechargeCommissionRepository.selectAllOperatorIds();
305
		if(!rechargeOperatorIds.isEmpty()) {
306
			rechargeOperators = this.filterRechargeOperators(rechargeOperators, rechargeOperatorIds);
307
			if(rechargeOperators.isEmpty()) {
308
				throw new ProfitMandiBusinessException(ProfitMandiConstants.RECHARGE_TYPE, rechargeType, "RCHRG_1003");
309
			}
310
		}
311
		model.addAttribute("rechargeOperators", rechargeOperators);
312
		return "create-recharge-commission";
313
	}
314
 
315
	private List<RechargeOperator> filterRechargeOperators(List<RechargeOperator> rechargeOperators, List<Integer> rechargeOperatorIds){
316
		List<RechargeOperator> filteredRechargeOperators = new ArrayList<>();
317
		for(RechargeOperator rechargeOperator : rechargeOperators) {
318
			if(!rechargeOperatorIds.contains(rechargeOperator.getId())) {
319
				filteredRechargeOperators.add(rechargeOperator);
320
			}
321
		}
322
		return filteredRechargeOperators;
323
	}
324
 
325
	@RequestMapping(value = "/createRechargeCommission", method = RequestMethod.POST)
326
	public String createRechargeCommission(HttpServletRequest request, @RequestBody RechargeCommissionRequest rechargeCommissionRequest, @RequestParam(name = "offset", defaultValue = "0") int offset, @RequestParam(name = "limit", defaultValue = "10") int limit, Model model) throws ProfitMandiBusinessException{
327
		rechargeService.createRechargeCommission(rechargeCommissionRequest);
328
		List<RechargeCommission> rechargeCommissions = rechargeCommissionRepository.selectAllPaginated(offset, limit);
329
		long size = rechargeCommissionRepository.selectAllCount();
330
		Map<Integer, RechargeOperator> rechargeOperatorIdRechargeOperatorMap = this.rechargeCommissionsOperatorIdRechargeOperatorMap(rechargeCommissions);
331
		model.addAttribute("rechargeCommissions", rechargeCommissions);
332
		model.addAttribute("rechargeOperatorIdRechargeOperatorMap", rechargeOperatorIdRechargeOperatorMap);
333
		model.addAttribute("start", offset + 1);
334
		model.addAttribute("size", size);
335
		if (rechargeCommissions.size() < limit){
336
			model.addAttribute("end", offset + rechargeCommissions.size());
337
		}else{
338
			model.addAttribute("end", offset + limit);
339
		}
340
		return "recharge-commissions";
341
	}
342
 
343
	@RequestMapping(value = "/getRechargeCommissions", method = RequestMethod.GET)
344
	public String getRechargeCommissions(HttpServletRequest request, @RequestParam(name = "offset", defaultValue = "0") int offset, @RequestParam(name = "limit", defaultValue = "10") int limit, Model model) throws ProfitMandiBusinessException{
345
		//LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
346
		//RechargeType rechargeType = RechargeType.valueOf(rechargeTypeString);
347
		List<RechargeCommission> rechargeCommissions = rechargeCommissionRepository.selectAllPaginated(offset, limit);
348
		long size = rechargeCommissionRepository.selectAllCount();
349
		Map<Integer, RechargeOperator> rechargeOperatorIdRechargeOperatorMap = this.rechargeCommissionsOperatorIdRechargeOperatorMap(rechargeCommissions);
350
		model.addAttribute("rechargeCommissions", rechargeCommissions);
351
		model.addAttribute("rechargeOperatorIdRechargeOperatorMap", rechargeOperatorIdRechargeOperatorMap);
352
		model.addAttribute("start", offset + 1);
353
		model.addAttribute("size", size);
354
		if (rechargeCommissions.size() < limit){
355
			model.addAttribute("end", offset + rechargeCommissions.size());
356
		}else{
357
			model.addAttribute("end", offset + limit);
358
		}
359
		return "recharge-commissions";
360
	}
361
 
362
	@RequestMapping(value = "/getPaginatedRechargeCommissions", method = RequestMethod.GET)
363
	public String getPaginatedRechargeCommissions(HttpServletRequest request, @RequestParam(name = "offset", defaultValue = "0") int offset, @RequestParam(name = "limit", defaultValue = "10") int limit, Model model) throws ProfitMandiBusinessException{
364
		//LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
365
		//RechargeType rechargeType = RechargeType.valueOf(rechargeTypeString);
366
		List<RechargeCommission> rechargeCommissions = rechargeCommissionRepository.selectAllPaginated(offset, limit);
367
		Map<Integer, RechargeOperator> rechargeOperatorIdRechargeOperatorMap = this.rechargeCommissionsOperatorIdRechargeOperatorMap(rechargeCommissions);
368
		model.addAttribute("rechargeCommissions", rechargeCommissions);
369
		model.addAttribute("rechargeOperatorIdRechargeOperatorMap", rechargeOperatorIdRechargeOperatorMap);
370
		return "recharge-commissions-paginated";
371
	}
372
 
373
	@RequestMapping(value = "/getRechargeCommissionByOperatorId", method = RequestMethod.GET)
374
	public String getRechargeCommissionByOperatorId(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.OPERATOR_ID) int operatorId, Model model)  throws ProfitMandiBusinessException{
375
		RechargeOperator rechargeOperator = rechargeOperatorRepository.selectById(operatorId);
376
		RechargeCommission rechargeCommission = rechargeCommissionRepository.selectByOperatorId(operatorId);
377
		model.addAttribute("rechargeCommission", rechargeCommission);
378
		model.addAttribute("rechargeOperator", rechargeOperator);
379
		return "recharge-commission-details";
380
	}
381
 
382
	@RequestMapping(value = "/updateRechargeCommission", method = RequestMethod.PUT)
383
	public String updateRechargeCommission(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.OPERATOR_ID) int operatorId, @RequestParam(name = ProfitMandiConstants.AMOUNT_TYPE) String amountTypeString, @RequestParam(name = ProfitMandiConstants.AMOUNT) float amount, @RequestParam(name = "offset", defaultValue = "0") int offset, @RequestParam(name = "limit", defaultValue = "10") int limit, Model model) throws ProfitMandiBusinessException{
384
		rechargeService.updateRechargeCommission(operatorId, amountTypeString, amount);
385
		List<RechargeCommission> rechargeCommissions = rechargeCommissionRepository.selectAllPaginated(offset, limit);
386
		Map<Integer, RechargeOperator> rechargeOperatorIdRechargeOperatorMap = this.rechargeCommissionsOperatorIdRechargeOperatorMap(rechargeCommissions);
387
		model.addAttribute("rechargeCommissions", rechargeCommissions);
388
		model.addAttribute("rechargeOperatorIdRechargeOperatorMap", rechargeOperatorIdRechargeOperatorMap);
389
		return "recharge-commissions-paginated";
390
	}
391
 
392
 
23505 ashik.ali 393
}