Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
419 rajveer 1
package in.shop2020.serving.controllers;
2
 
894 rajveer 3
import in.shop2020.model.v1.user.ShoppingCartException;
419 rajveer 4
import in.shop2020.serving.controllers.BaseController;
1318 rajveer 5
import in.shop2020.serving.services.HdfcPaymentService;
517 rajveer 6
import in.shop2020.thrift.clients.UserContextServiceClient;
7
 
832 rajveer 8
import org.apache.log4j.Logger;
822 vikas 9
import org.apache.struts2.convention.annotation.InterceptorRef;
10
import org.apache.struts2.convention.annotation.InterceptorRefs;
419 rajveer 11
import org.apache.struts2.convention.annotation.Result;
12
import org.apache.struts2.convention.annotation.Results;
517 rajveer 13
import org.apache.thrift.TException;
419 rajveer 14
 
822 vikas 15
@InterceptorRefs({
16
    @InterceptorRef("myDefault"),
17
    @InterceptorRef("login")
18
})
19
 
419 rajveer 20
@Results({
693 rajveer 21
    @Result(name="shipping-redirect", type="redirectAction", 
894 rajveer 22
    		params = {"actionName" , "shipping"})
419 rajveer 23
})
650 rajveer 24
public class OrderController extends BaseController {
419 rajveer 25
 
26
	private static final long serialVersionUID = 1L;
27
 
832 rajveer 28
	private static Logger log = Logger.getLogger(Class.class);
507 rajveer 29
	private String id;
712 rajveer 30
	private long txnId = 0;
650 rajveer 31
 
1318 rajveer 32
	private String redirectURL;
681 rajveer 33
 
419 rajveer 34
	public OrderController(){
507 rajveer 35
		super();
419 rajveer 36
	}
37
 
507 rajveer 38
    // GET /order/ orderid
39
    public String show() {
40
    	log.info("id=" + id);
822 vikas 41
    	htmlSnippets.put("MYACCOUNT_HEADER", pageLoader.getMyaccountHeaderHtml());
1527 ankur.sing 42
    	htmlSnippets.put("ORDER_DETAILS", pageLoader.getOrderDetailsHtml(Long.parseLong(id), userinfo.getUserId()));
507 rajveer 43
    	return "show";
419 rajveer 44
    }
517 rajveer 45
 
572 chandransh 46
    // POST /order/
47
    public String create(){
786 rajveer 48
    	String addressIdString = this.request.getParameter("addressid");
49
    	if(addressIdString == null){
894 rajveer 50
    		addActionError("Please specify shipping address to continue.");
786 rajveer 51
    		return "shipping-redirect";
52
    	}
53
    	long addressId = Long.parseLong(addressIdString);
572 chandransh 54
    	long currentCartId = userinfo.getCartId();
894 rajveer 55
    	try{
1318 rajveer 56
    		if(!createOrders(addressId, currentCartId)){
1128 rajveer 57
    			addActionError("We are experiencing some problems. Please try later.");
894 rajveer 58
    			return "shipping-redirect";
59
    		}
60
    	}catch (Exception e) {
1128 rajveer 61
    		addActionError("We are experiencing some problems. Please try later.");
894 rajveer 62
    		log.error("Exception in createOrders function. Something want wrong.");
63
    		e.printStackTrace();
64
    		return "shipping-redirect";
693 rajveer 65
		}
894 rajveer 66
 
1318 rajveer 67
    	HdfcPaymentService hdfcPaymentService = new HdfcPaymentService();
68
    	boolean paymentStatus = hdfcPaymentService.createPayment(userinfo.getCartId(), userinfo.getUserId(), txnId);
69
    	if(paymentStatus == true){
70
    		this.redirectURL = hdfcPaymentService.getRedirectUrl();
71
    		log.info(this.redirectURL);
72
    		return "success";
73
    	}else{
74
    		addActionError("We are experiencing some problems. Please try later.");
75
			return "shipping-redirect";
76
    	}
77
 
572 chandransh 78
    }
79
 
507 rajveer 80
	public String getId(){
81
		return id;
82
	}
419 rajveer 83
 
507 rajveer 84
	public void setId(String id){
85
		this.id = id;
86
	}
419 rajveer 87
 
507 rajveer 88
	public String getMyaccountHeaderSnippet(){
89
		return htmlSnippets.get("MYACCOUNT_HEADER");
90
	}
91
 
92
	public String getOrderDetailsSnippet(){
93
		return htmlSnippets.get("ORDER_DETAILS");
94
	}
95
 
712 rajveer 96
	public long getTxn(){
97
		return this.txnId;
517 rajveer 98
	}
894 rajveer 99
 
100
	/**
101
	 * 
102
	 * @param addressId
103
	 * @param currentCartId
104
	 * @return
105
	 */
1318 rajveer 106
	private boolean createOrders(long addressId, long currentCartId){
894 rajveer 107
		UserContextServiceClient userServiceClient = null;
108
		try {
109
			userServiceClient = new UserContextServiceClient();
110
		} catch (Exception e) {
111
			e.printStackTrace();
112
			return false;
113
		}
114
 
115
		in.shop2020.model.v1.user.UserContextService.Client userClient = userServiceClient.getClient();
116
		try {
117
			userClient.addAddressToCart(currentCartId, addressId);
118
		} catch (ShoppingCartException e1) {
119
			log.error("Not able to set address in the cart." + e1.getId() + e1.getMessage());
120
			e1.printStackTrace();
121
			return false;
122
		} catch (TException e1) {
123
			log.error("Thrift exception while setting address in cart." + e1.getMessage());
124
			e1.printStackTrace();
125
			return false;
126
		}
127
 
128
 
129
		try {
1466 ankur.sing 130
			String errorMsg = userClient.validateCart(currentCartId); 
131
			if(!errorMsg.isEmpty()){
132
				addActionError(errorMsg);
894 rajveer 133
				return false;
134
			}
135
		} catch (ShoppingCartException e1) {
136
			log.error("Error while validating shopping cart." + e1.getId() + e1.getMessage());
137
			e1.printStackTrace();
138
			return false;
139
		} catch (TException e) {
140
			log.error("Thrift exception while validating cart." + e.getMessage());
141
			e.printStackTrace();
142
			return false;
143
		}
144
 
145
 
146
		try {
147
			txnId = userClient.createOrders(currentCartId);
148
		} catch (ShoppingCartException e1) {
149
			log.error("Error while creating orders from cart." + e1.getId() + e1.getMessage());
150
			e1.printStackTrace();
151
			return false;
152
		} catch (TException e) {
153
			log.error("Thrift exception while creating orders from cart." + e.getMessage());
154
			e.printStackTrace();
155
			return false;
156
		}
157
 
158
 
159
 
160
		return true;
161
	}
1318 rajveer 162
 
163
	public String getRedirectURL(){
164
		return this.redirectURL;
165
	}
419 rajveer 166
}