Subversion Repositories SmartDukaan

Rev

Rev 7996 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.recharge.auxiliary;

import java.util.ArrayList;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import in.shop2020.model.v1.order.DeviceNumberInfo;
import in.shop2020.model.v1.order.FRC;
import in.shop2020.model.v1.order.PayMethod;
import in.shop2020.model.v1.order.RechargePlan;
import in.shop2020.model.v1.order.RechargeTransaction;
import in.shop2020.model.v1.order.RechargeType;
import in.shop2020.model.v1.order.TelecomCircle;
import in.shop2020.recharge.controllers.BaseController;
import in.shop2020.recharge.controllers.BulkRechargeController;
import in.shop2020.recharge.controllers.HomeController;
import in.shop2020.thrift.clients.TransactionClient;

public class BulkRechargeRunnable implements Runnable {

    private static final String TOPUP = "Topup";
    private static final String HQ_EMAIL = "gagan.sharma@spiceretail.co.in";
    private List<BulkRechargeInfo> rechargeInfoList = new ArrayList<BulkRechargeInfo>();
    private static Logger log = LoggerFactory.getLogger(BulkRechargeRunnable.class);

    public void run() {
        for(BulkRechargeInfo rechargeInfo : rechargeInfoList) {
            try {
                RechargeTransaction rechargeOrder = new RechargeTransaction();
                rechargeOrder.setAmount(rechargeInfo.getAmount());
                rechargeOrder.setEmail(HQ_EMAIL);
                rechargeOrder.setDeviceNum(rechargeInfo.getNumber().trim());
                rechargeOrder.setAlternateNumber("");
                rechargeOrder.setStoreId(rechargeInfo.getStoreId());
                rechargeOrder.setIpAddress(rechargeInfo.getIpAddress());
                rechargeOrder.setDeviceType(RechargeType.MOBILE);
                rechargeOrder.setName(rechargeInfo.getName());
                rechargeOrder.setIsFrc(false);
                rechargeOrder.setCafNum("");
                rechargeOrder.setSimNum("");
                rechargeOrder.setPayMethod(PayMethod.CHEQUE);
                rechargeOrder.setOperatorId(rechargeInfo.getOperator());
                rechargeOrder.setDiscount(0);
                rechargeOrder.setPaymentAmount(rechargeInfo.getAmount());
                rechargeOrder.setCircleId(rechargeInfo.getCircle());

                List<RechargePlan> plans = BaseController.operatorPlanMap.get(rechargeInfo.getOperator());
                if(plans != null) {
                    for(RechargePlan plan : plans) {
                        if(plan.getDisplayName().equals(TOPUP)) {
                            rechargeOrder.setPlan(plan.getName());
                            break;
                        }
                    }
                }

                TransactionClient tc1 = new TransactionClient();
                rechargeOrder = tc1.getClient().createRechargeTransaction(rechargeOrder);
            } catch (Exception e) {
                log.error("Unable to get recharge for device number : " + rechargeInfo.getNumber(), e);
                continue;
            }
        }
    }

    public void setRechargeInfoList(List<BulkRechargeInfo> rechargeInfoList) {
        this.rechargeInfoList = rechargeInfoList;
    }

    public List<BulkRechargeInfo> getRechargeInfoList() {
        return rechargeInfoList;
    }

}