Subversion Repositories SmartDukaan

Rev

Rev 23559 | Rev 23575 | Go to most recent revision | View as "text/plain" | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.spice.profitmandi.web.controller;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import javax.servlet.http.HttpServletRequest;

import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
import com.spice.profitmandi.common.model.OperatorType;
import com.spice.profitmandi.common.model.ProfitMandiConstants;
import com.spice.profitmandi.common.model.RechargeCommissionRequest;
import com.spice.profitmandi.common.model.RechargeCredential;
import com.spice.profitmandi.common.model.RechargeRequest;
import com.spice.profitmandi.dao.entity.dtr.RechargeCommission;
import com.spice.profitmandi.dao.entity.dtr.RechargeOperator;
import com.spice.profitmandi.dao.entity.dtr.RechargeTransaction;
import com.spice.profitmandi.dao.entity.fofo.PaymentOption;
import com.spice.profitmandi.dao.enumuration.dtr.RechargeType;
import com.spice.profitmandi.dao.repository.dtr.RechargeCommissionRepository;
import com.spice.profitmandi.dao.repository.dtr.RechargeOperatorRepository;
import com.spice.profitmandi.dao.repository.dtr.RechargeTransactionRepository;
import com.spice.profitmandi.dao.repository.fofo.FofoPartnerPaymentOptionRepository;
import com.spice.profitmandi.dao.repository.fofo.PaymentOptionRepository;
import com.spice.profitmandi.service.recharge.RechargeService;
import com.spice.profitmandi.web.model.LoginDetails;
import com.spice.profitmandi.web.util.CookiesProcessor;

@Controller
@Transactional(rollbackFor=Throwable.class)
public class RechargeController {

        private static final Logger LOGGER = LogManager.getLogger(RechargeController.class);
        
        @Value("${recharge.transaction.mobile.url}")
        private String rechargeMobileUrl;
        
        @Value("${recharge.transaction.mobile.username}")
        private String rechargeMobileUserName;
        
        @Value("${recharge.transaction.mobile.password}")
        private String rechargeMobilePassword;
        
        @Value("${recharge.transaction.dth.url}")
        private String rechargeDthUrl;
        
        @Value("${recharge.transaction.dth.username}")
        private String rechargeDthUserName;
        
        @Value("${recharge.transaction.dth.password}")
        private String rechargeDthPassword;
        
        @Value("${recharge.enquiry.url}")
        private String rechargeEnquiryUrl;
        
        @Value("${recharge.enquiry.username}")
        private String rechargeEnquiryUserName;
        
        @Value("${recharge.enquiry.password}")
        private String rechargeEnquiryPassword;
        
        @Value("${recharge.auth.key}")
        private String rechargeAuthKey;
        
        @Value("${recharge.validation.url}")
        private String rechargeValidationUrl;
        
        @Value("${recharge.validation.auth.key}")
        private String rechargeValidationAuthKey;
        
        @Autowired
        private RechargeService rechargeService;
        
        @Autowired
        private RechargeOperatorRepository rechargeOperatorRepository;
        
        @Autowired
        private RechargeTransactionRepository rechargeTransactionRepository;
        
        @Autowired
        private RechargeCommissionRepository rechargeCommissionRepository;
        
        @Autowired
        private PaymentOptionRepository paymentOptionRepository;
        
        @Autowired
        private FofoPartnerPaymentOptionRepository fofoPartnerPaymentOptionRepository;
        
        @Autowired
        private CookiesProcessor cookiesProcessor;
        
        @RequestMapping(value = "/createRecharge", method = RequestMethod.GET)
        public String createRecharge(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.RECHARGE_TYPE) String rechargeTypeString, Model model) throws ProfitMandiBusinessException{
                //model.addAttribute("rechargeOperators", rechargeOperatorRepository.selectAllByRechargeType(RechargeType.MOBILE));
                //model.addAttribute("rechargeTypes", RechargeType.values());
                LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
                RechargeType rechargeType = RechargeType.valueOf(rechargeTypeString);
                List<RechargeOperator> rechargeOperators = null;
                if(rechargeType == RechargeType.MOBILE) {
                        model.addAttribute("operatorTypes", OperatorType.values());
                        rechargeOperators = rechargeOperatorRepository.selectAllByOperatorType(OperatorType.PREPAID);
                }else {
                        rechargeOperators = rechargeOperatorRepository.selectAllByRechargeType(rechargeType);
                }
                
                List<Integer> paymentOptionIds = fofoPartnerPaymentOptionRepository.selectPaymentOptionIdsByFofoId(loginDetails.getFofoId());
                List<PaymentOption> paymentOptions = paymentOptionRepository.selectByIds(new HashSet<>(paymentOptionIds));
                model.addAttribute("paymentOptions", paymentOptions);
                model.addAttribute("rechargeOperators", rechargeOperators);
                return "create-recharge";
        }
        
        private Map<Integer, String> rechargeTransactionsToRechargeOperatorIdNameMap(List<RechargeTransaction> rechargeTransactions){
                Map<Integer, String> rechargeOperatorIdrechargeOperatorNameMap = new HashMap<>();
                if(rechargeTransactions.isEmpty()) {
                        return rechargeOperatorIdrechargeOperatorNameMap;
                }
                Set<Integer> operatorIds = new HashSet<>();
                for(RechargeTransaction rechargeTransaction : rechargeTransactions) {
                        operatorIds.add(rechargeTransaction.getOperatorId());
                }
                
                List<RechargeOperator> rechargeOperators = rechargeOperatorRepository.selectAllByIds(operatorIds);
                for(RechargeOperator rechargeOperator : rechargeOperators) {
                        rechargeOperatorIdrechargeOperatorNameMap.put(rechargeOperator.getId(), rechargeOperator.getName());
                }
                return rechargeOperatorIdrechargeOperatorNameMap;
        }
        
        private Map<Integer, RechargeOperator> rechargeCommissionsOperatorIdRechargeOperatorMap(List<RechargeCommission> rechargeCommissions){
                Map<Integer, RechargeOperator> rechargeOperatorIdNameMap = new HashMap<>();
                if(rechargeCommissions.isEmpty()) {
                        return rechargeOperatorIdNameMap;
                }
                Set<Integer> operatorIds = new HashSet<>();
                for(RechargeCommission rechargeCommission : rechargeCommissions) {
                        operatorIds.add(rechargeCommission.getOperatorId());
                }
                
                List<RechargeOperator> rechargeOperators = rechargeOperatorRepository.selectAllByIds(operatorIds);
                for(RechargeOperator rechargeOperator : rechargeOperators) {
                        rechargeOperatorIdNameMap.put(rechargeOperator.getId(), rechargeOperator);
                }
                return rechargeOperatorIdNameMap;
        }
        
        @RequestMapping(value = "/createRecharge", method = RequestMethod.POST)
        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{
                LOGGER.info("Recharge request body {}", rechargeRequest);
                LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
                RechargeCredential rechargeTransactionMobileCredential = new RechargeCredential();
                rechargeTransactionMobileCredential.setRechargeUrl(rechargeMobileUrl);
                rechargeTransactionMobileCredential.setRechargeUserName(rechargeMobileUserName);
                rechargeTransactionMobileCredential.setRechargePassword(rechargeMobilePassword);
                rechargeTransactionMobileCredential.setRechargeAuthKey(rechargeAuthKey);
                
                RechargeCredential rechargeTransactionDthCredential = new RechargeCredential();
                rechargeTransactionDthCredential.setRechargeUrl(rechargeDthUrl);
                rechargeTransactionDthCredential.setRechargeUserName(rechargeDthUserName);
                rechargeTransactionDthCredential.setRechargePassword(rechargeDthPassword);
                rechargeTransactionDthCredential.setRechargeAuthKey(rechargeAuthKey);
                
                rechargeService.doRecharge(rechargeTransactionMobileCredential, rechargeTransactionDthCredential, rechargeValidationUrl, rechargeValidationAuthKey, loginDetails.getFofoId(), rechargeRequest);
                RechargeType rechargeType = RechargeType.valueOf(rechargeRequest.getRechargeType());
                List<RechargeTransaction> rechargeTransactions = rechargeTransactionRepository.selectAllByRetailerIdAndType(loginDetails.getFofoId(), rechargeType, offset, limit);
                long size = rechargeTransactionRepository.selectCountByRetailerIdAndType(loginDetails.getFofoId(), rechargeType);
                Map<Integer, String> rechargeOperatorIdRechargeOperatorNameMap = this.rechargeTransactionsToRechargeOperatorIdNameMap(rechargeTransactions);
                model.addAttribute("rechargeTransactions", rechargeTransactions);
                model.addAttribute("rechargeOperatorIdRechargeOperatorNameMap", rechargeOperatorIdRechargeOperatorNameMap);
                model.addAttribute("start", offset + 1);
                model.addAttribute("size", size);
                if (rechargeTransactions.size() < limit){
                        model.addAttribute("end", offset + rechargeTransactions.size());
                }else{
                        model.addAttribute("end", offset + limit);
                }
                if(RechargeType.valueOf(rechargeRequest.getRechargeType()) == RechargeType.MOBILE) {
                        return "mobile-recharges";
                }else {
                        return "dth-recharges";
                }
        }
        
        @RequestMapping(value = "/checkStatus", method = RequestMethod.GET)
        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{
                LOGGER.info("RequestId [{}], rechargeType [{}]", requestId, rechargeTypeString);
                LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
                RechargeCredential rechargeTransactionEnquiryCredential = new RechargeCredential();
                rechargeTransactionEnquiryCredential.setRechargeUrl(rechargeEnquiryUrl);
                rechargeTransactionEnquiryCredential.setRechargeUserName(rechargeEnquiryUserName);
                rechargeTransactionEnquiryCredential.setRechargePassword(rechargeEnquiryPassword);
                rechargeTransactionEnquiryCredential.setRechargeAuthKey(rechargeAuthKey);
                rechargeService.checkStatus(rechargeTransactionEnquiryCredential, loginDetails.getFofoId(), requestId);
                RechargeType rechargeType = RechargeType.valueOf(rechargeTypeString);
                List<RechargeTransaction> rechargeTransactions = rechargeTransactionRepository.selectAllByRetailerIdAndType(loginDetails.getFofoId(), rechargeType, offset, limit);
                //long size = rechargeTransactionRepository.selectCountByRetailerId(loginDetails.getFofoId());
                Map<Integer, String> rechargeOperatorIdRechargeOperatorNameMap = this.rechargeTransactionsToRechargeOperatorIdNameMap(rechargeTransactions);
                model.addAttribute("rechargeTransactions", rechargeTransactions);
                model.addAttribute("rechargeOperatorIdRechargeOperatorNameMap", rechargeOperatorIdRechargeOperatorNameMap);
                
                if(RechargeType.valueOf(rechargeTypeString) == RechargeType.MOBILE) {
                        return "mobile-recharges-paginated";
                }else {
                        return "dth-recharges-paginated";
                }
        }
        
        @RequestMapping(value = "/getRecharges", method = RequestMethod.GET)
        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{
                LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
                RechargeType rechargeType = RechargeType.valueOf(rechargeTypeString);
                List<RechargeTransaction> rechargeTransactions = rechargeTransactionRepository.selectAllByRetailerIdAndType(loginDetails.getFofoId(), rechargeType, offset, limit);
                long size = rechargeTransactionRepository.selectCountByRetailerIdAndType(loginDetails.getFofoId(), rechargeType);
                Map<Integer, String> rechargeOperatorIdRechargeOperatorNameMap = this.rechargeTransactionsToRechargeOperatorIdNameMap(rechargeTransactions);
                model.addAttribute("rechargeTransactions", rechargeTransactions);
                model.addAttribute("rechargeOperatorIdRechargeOperatorNameMap", rechargeOperatorIdRechargeOperatorNameMap);
                model.addAttribute("start", offset + 1);
                model.addAttribute("size", size);
                if (rechargeTransactions.size() < limit){
                        model.addAttribute("end", offset + rechargeTransactions.size());
                }else{
                        model.addAttribute("end", offset + limit);
                }
                if(RechargeType.valueOf(rechargeTypeString) == RechargeType.MOBILE) {
                        return "mobile-recharges";
                }else {
                        return "dth-recharges";
                }
        }
        
        @RequestMapping(value = "/getPaginatedRecharges", method = RequestMethod.GET)
        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{
                LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
                RechargeType rechargeType = RechargeType.valueOf(rechargeTypeString);
                List<RechargeTransaction> rechargeTransactions = rechargeTransactionRepository.selectAllByRetailerIdAndType(loginDetails.getFofoId(), rechargeType, offset, limit);
                Map<Integer, String> rechargeOperatorIdRechargeOperatorNameMap = this.rechargeTransactionsToRechargeOperatorIdNameMap(rechargeTransactions);
                model.addAttribute("rechargeTransactions", rechargeTransactions);
                model.addAttribute("rechargeOperatorIdRechargeOperatorNameMap", rechargeOperatorIdRechargeOperatorNameMap);
                if(RechargeType.valueOf(rechargeTypeString) == RechargeType.MOBILE) {
                        return "mobile-recharges-paginated";
                }else {
                        return "dth-recharges-paginated";
                }
        }
        
        @RequestMapping(value = "/getRechargeOperators", method = RequestMethod.GET)
        public String getRechargeOperators(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.OPERATOR_TYPE) String operatorTypeString, Model model){
                //model.addAttribute("rechargeOperators", rechargeOperatorRepository.selectAllByRechargeType(RechargeType.MOBILE));
                //model.addAttribute("rechargeTypes", RechargeType.values());
                OperatorType operatorType = OperatorType.valueOf(operatorTypeString);
                List<RechargeOperator> rechargeOperators = rechargeOperatorRepository.selectAllByOperatorType(operatorType);
                model.addAttribute("rechargeOperators", rechargeOperators);
                return "recharge-operators";
        }
        
        @RequestMapping(value = "/getRechargeCommissionOperators", method = RequestMethod.GET)
        public String getRechargeCommissionOperators(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.OPERATOR_TYPE) String operatorTypeString, Model model) throws ProfitMandiBusinessException{
                //model.addAttribute("rechargeOperators", rechargeOperatorRepository.selectAllByRechargeType(RechargeType.MOBILE));
                //model.addAttribute("rechargeTypes", RechargeType.values());
                OperatorType operatorType = OperatorType.valueOf(operatorTypeString);
                List<RechargeOperator> rechargeOperators = rechargeOperatorRepository.selectAllByOperatorType(operatorType);
                List<Integer> rechargeOperatorIds = rechargeCommissionRepository.selectAllOperatorIds();
                if(!rechargeOperatorIds.isEmpty()) {
                        rechargeOperators = this.filterRechargeOperators(rechargeOperators, rechargeOperatorIds);
                        if(rechargeOperators.isEmpty()) {
                                throw new ProfitMandiBusinessException(ProfitMandiConstants.OPERATOR_TYPE, operatorType, "RCHRG_1003");
                        }
                }
                model.addAttribute("rechargeOperators", rechargeOperators);
                return "recharge-operators";
        }
        
        @RequestMapping(value = "/createRechargeCommission", method = RequestMethod.GET)
        public String createRechargeCommission(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.RECHARGE_TYPE) String rechargeTypeString, Model model) throws ProfitMandiBusinessException{
                //model.addAttribute("rechargeOperators", rechargeOperatorRepository.selectAllByRechargeType(RechargeType.MOBILE));
                //model.addAttribute("rechargeTypes", RechargeType.values());
                
                RechargeType rechargeType = RechargeType.valueOf(rechargeTypeString);
                List<RechargeOperator> rechargeOperators = null;
                if(rechargeType == RechargeType.MOBILE) {
                        model.addAttribute("operatorTypes", OperatorType.values());
                        rechargeOperators = rechargeOperatorRepository.selectAllByOperatorType(OperatorType.PREPAID);
                }else {
                        rechargeOperators = rechargeOperatorRepository.selectAllByRechargeType(rechargeType);
                }
                List<Integer> rechargeOperatorIds = rechargeCommissionRepository.selectAllOperatorIds();
                if(!rechargeOperatorIds.isEmpty()) {
                        rechargeOperators = this.filterRechargeOperators(rechargeOperators, rechargeOperatorIds);
                        if(rechargeOperators.isEmpty()) {
                                throw new ProfitMandiBusinessException(ProfitMandiConstants.RECHARGE_TYPE, rechargeType, "RCHRG_1003");
                        }
                }
                model.addAttribute("rechargeOperators", rechargeOperators);
                return "create-recharge-commission";
        }
        
        private List<RechargeOperator> filterRechargeOperators(List<RechargeOperator> rechargeOperators, List<Integer> rechargeOperatorIds){
                List<RechargeOperator> filteredRechargeOperators = new ArrayList<>();
                for(RechargeOperator rechargeOperator : rechargeOperators) {
                        if(!rechargeOperatorIds.contains(rechargeOperator.getId())) {
                                filteredRechargeOperators.add(rechargeOperator);
                        }
                }
                return filteredRechargeOperators;
        }
        
        @RequestMapping(value = "/createRechargeCommission", method = RequestMethod.POST)
        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{
                rechargeService.createRechargeCommission(rechargeCommissionRequest);
                List<RechargeCommission> rechargeCommissions = rechargeCommissionRepository.selectAllPaginated(offset, limit);
                long size = rechargeCommissionRepository.selectAllCount();
                Map<Integer, RechargeOperator> rechargeOperatorIdRechargeOperatorMap = this.rechargeCommissionsOperatorIdRechargeOperatorMap(rechargeCommissions);
                model.addAttribute("rechargeCommissions", rechargeCommissions);
                model.addAttribute("rechargeOperatorIdRechargeOperatorMap", rechargeOperatorIdRechargeOperatorMap);
                model.addAttribute("start", offset + 1);
                model.addAttribute("size", size);
                if (rechargeCommissions.size() < limit){
                        model.addAttribute("end", offset + rechargeCommissions.size());
                }else{
                        model.addAttribute("end", offset + limit);
                }
                return "recharge-commissions";
        }
        
        @RequestMapping(value = "/getRechargeCommissions", method = RequestMethod.GET)
        public String getRechargeCommissions(HttpServletRequest request, @RequestParam(name = "offset", defaultValue = "0") int offset, @RequestParam(name = "limit", defaultValue = "10") int limit, Model model) throws ProfitMandiBusinessException{
                //LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
                //RechargeType rechargeType = RechargeType.valueOf(rechargeTypeString);
                List<RechargeCommission> rechargeCommissions = rechargeCommissionRepository.selectAllPaginated(offset, limit);
                long size = rechargeCommissionRepository.selectAllCount();
                Map<Integer, RechargeOperator> rechargeOperatorIdRechargeOperatorMap = this.rechargeCommissionsOperatorIdRechargeOperatorMap(rechargeCommissions);
                model.addAttribute("rechargeCommissions", rechargeCommissions);
                model.addAttribute("rechargeOperatorIdRechargeOperatorMap", rechargeOperatorIdRechargeOperatorMap);
                model.addAttribute("start", offset + 1);
                model.addAttribute("size", size);
                if (rechargeCommissions.size() < limit){
                        model.addAttribute("end", offset + rechargeCommissions.size());
                }else{
                        model.addAttribute("end", offset + limit);
                }
                return "recharge-commissions";
        }
        
        @RequestMapping(value = "/getPaginatedRechargeCommissions", method = RequestMethod.GET)
        public String getPaginatedRechargeCommissions(HttpServletRequest request, @RequestParam(name = "offset", defaultValue = "0") int offset, @RequestParam(name = "limit", defaultValue = "10") int limit, Model model) throws ProfitMandiBusinessException{
                //LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
                //RechargeType rechargeType = RechargeType.valueOf(rechargeTypeString);
                List<RechargeCommission> rechargeCommissions = rechargeCommissionRepository.selectAllPaginated(offset, limit);
                Map<Integer, RechargeOperator> rechargeOperatorIdRechargeOperatorMap = this.rechargeCommissionsOperatorIdRechargeOperatorMap(rechargeCommissions);
                model.addAttribute("rechargeCommissions", rechargeCommissions);
                model.addAttribute("rechargeOperatorIdRechargeOperatorMap", rechargeOperatorIdRechargeOperatorMap);
                return "recharge-commissions-paginated";
        }
        
        @RequestMapping(value = "/getRechargeCommissionByOperatorId", method = RequestMethod.GET)
        public String getRechargeCommissionByOperatorId(HttpServletRequest request, @RequestParam(name = ProfitMandiConstants.OPERATOR_ID) int operatorId, Model model)  throws ProfitMandiBusinessException{
                RechargeOperator rechargeOperator = rechargeOperatorRepository.selectById(operatorId);
                RechargeCommission rechargeCommission = rechargeCommissionRepository.selectByOperatorId(operatorId);
                model.addAttribute("rechargeCommission", rechargeCommission);
                model.addAttribute("rechargeOperator", rechargeOperator);
                return "recharge-commission-details";
        }
        
        @RequestMapping(value = "/updateRechargeCommission", method = RequestMethod.PUT)
        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{
                rechargeService.updateRechargeCommission(operatorId, amountTypeString, amount);
                List<RechargeCommission> rechargeCommissions = rechargeCommissionRepository.selectAllPaginated(offset, limit);
                Map<Integer, RechargeOperator> rechargeOperatorIdRechargeOperatorMap = this.rechargeCommissionsOperatorIdRechargeOperatorMap(rechargeCommissions);
                model.addAttribute("rechargeCommissions", rechargeCommissions);
                model.addAttribute("rechargeOperatorIdRechargeOperatorMap", rechargeOperatorIdRechargeOperatorMap);
                return "recharge-commissions-paginated";
        }
        
        
}