Subversion Repositories SmartDukaan

Rev

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