Subversion Repositories SmartDukaan

Rev

Rev 6057 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.serving.controllers;

import in.shop2020.model.v1.order.OrderType;
import in.shop2020.model.v1.order.RechargeCoupon;
import in.shop2020.model.v1.order.RechargeCouponStatus;
import in.shop2020.model.v1.order.RechargeOrder;
import in.shop2020.model.v1.order.RechargeOrderStatus;
import in.shop2020.model.v1.order.RechargeType;
import in.shop2020.model.v1.order.TransactionServiceException;
import in.shop2020.model.v1.user.Coupon;
import in.shop2020.model.v1.user.Sex;
import in.shop2020.model.v1.user.User;
import in.shop2020.model.v1.user.UserContextException;
import in.shop2020.serving.interceptors.TrackingInterceptor;
import in.shop2020.serving.utils.DesEncrypter;
import in.shop2020.serving.utils.Utils;
import in.shop2020.thrift.clients.HelperClient;
import in.shop2020.thrift.clients.TransactionClient;
import in.shop2020.thrift.clients.UserClient;
import in.shop2020.utils.HelperServiceException;

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

import javax.servlet.http.Cookie;

import org.apache.log4j.Logger;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import org.apache.thrift.TException;
import org.apache.thrift.transport.TTransportException;

@SuppressWarnings({ "serial", "serial" })
@Results({
    @Result(name="pay-options-redirect", type="redirectAction", params = {"actionName" , "recharge-pay-options", "rechargeOrderId", "${rechargeOrderId}"}),
    @Result(name="create-recharge-redirect", type="redirectAction", params = {"actionName" , "recharge-payment", "rechargeOrderId", "${rechargeOrderId}"})
})

public class ConfirmController extends BaseController{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    private String amount = "";
    private String operator = "";
    private String number = "";
    private String email = "";
    private String rechargeType = "";
    private DesEncrypter desEncrypter = new DesEncrypter("saholic");
    private List<String> couponIds = null;
    private List<RechargeCoupon> coupons = null;
    private String userId;
    private static Logger log = Logger.getLogger(Class.class);
    
    public String index() {
        return "index";
    }
    
    public String create() {
        return index();
        
    }
    
    public String createRecharge(){
        try {
            RechargeOrder rechargeOrder = new RechargeOrder();
            rechargeOrder.setTotalAmount(Long.parseLong(amount));
            rechargeOrder.setUserEmailId(email);
            rechargeOrder.setUserId(Long.parseLong(userId));
            rechargeOrder.setDeviceNumber(number);
            rechargeOrder.setOperatorId(Long.parseLong(operator));
            rechargeOrder.setRechargeType(RechargeType.valueOf(rechargeType));
            rechargeOrder.setStatus(RechargeOrderStatus.PAYMENT_PENDING);
            rechargeOrder.setOrderType(OrderType.B2C);
            
            TransactionClient tc = new TransactionClient();
            rechargeOrder = tc.getClient().createRechargeOrder(rechargeOrder);
            
        } catch (TransactionServiceException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (TException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        if(amount.equals("0")) {
            return "create-recharge-redirect";
        } else {
            return "recharge-pay-options-redirect";
        }
    }
    
    public String temp() {
        try {
            UserClient ucl = new UserClient();
            User user = ucl.getClient().getUserByEmail(email);
            if(user == null) {
                user = new User();
                String password = null;
                boolean isValid = true;
                
                /**
                 * TODO : Generate password
                 * password = this.request.getParameter("txtPassword");
                 * 
                 */
                
                
                if(!Utils.isValidEmail(email))  {
                    addActionError("Please enter valid email address.");
                    isValid = false;
                }
                
                user.setEmail(email);
                String encryptedPassword = desEncrypter.encrypt(password);
                user.setPassword(encryptedPassword);
                user.setCommunicationEmail(email);
                Cookie sourceCookie = (Cookie) cookiesMap.get(TrackingInterceptor.SRC_COOKIE);
                if (sourceCookie != null) {
                    DesEncrypter des = new DesEncrypter(TrackingInterceptor.ENCRIPTION_STRING);
                    String sourceCookieVal = des.decrypt(sourceCookie.getValue());
                    user.setSource(sourceCookieVal);
                }
                
                Cookie sourceTimeCookie = (Cookie) cookiesMap.get(TrackingInterceptor.SRC_TIME_COOKIE);
                long sourceTime = 0;
                if (sourceTimeCookie != null) {
                    try {
                        sourceTime = Long.parseLong(sourceTimeCookie.getValue());
                    }
                    catch (Exception e) {
                        log.warn("Unable to parse session src time cookie.");
                    }
                    user.setSourceStartTime(sourceTime);
                }
                
                user.setSex(Sex.WONT_SAY);
                

                UserClient userContextServiceClient;
                userContextServiceClient = new UserClient();
                in.shop2020.model.v1.user.UserContextService.Client userClient = userContextServiceClient.getClient();
                user = userClient.createUser(user);
                HelperClient hc = new HelperClient();
                List<String> mailingList = new ArrayList<String>();
                mailingList.add(email);
                hc.getClient().saveUserEmailForSending(mailingList, "help@saholic.com", "Login Details", "/*body*/", "/*source*/", "/*emailType*/", null, null);
            }
            setUserId("" + user.getUserId());
            
            
            /*****************************
             * 
             * TODO : Handle Wallets
             * 
             */
            
            
            //TransactionClient tc = new TransactionClient();
            //setCoupons(tc.getClient().getRechargeCoupons(user.getUserId(), RechargeCouponStatus.ACTIVE));
        } catch (TTransportException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (UserContextException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (TException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (HelperServiceException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return index();
    }
    
    public String getAmount() {
        return amount;
    }
    public void setAmount(String amount) {
        this.amount = amount;
    }
    public String getOperator() {
        return operator;
    }
    public void setOperator(String operator) {
        this.operator = operator;
    }
    public String getNumber() {
        return number;
    }
    public void setNumber(String number) {
        this.number = number;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }

    public void setCouponIds(List<String> couponIds) {
        this.couponIds = couponIds;
    }

    public List<String> getCouponIds() {
        return couponIds;
    }

    public void setCoupons(List<RechargeCoupon> coupons) {
        this.coupons = coupons;
    }

    public List<RechargeCoupon> getCoupons() {
        return coupons;
    }

    public String getRechargeType() {
        return rechargeType;
    }

    public void setRechargeType(String rechargeType) {
        this.rechargeType = rechargeType;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }
    
}