Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
21101 kshitij.so 1
package in.shop2020.support.controllers;
2
 
3
import in.shop2020.model.v1.order.UserWallet;
4
import in.shop2020.model.v1.user.User;
5
import in.shop2020.model.v1.user.UserContextService.Client;
6
import in.shop2020.support.utils.ReportsUtils;
7
import in.shop2020.thrift.clients.TransactionClient;
8
import in.shop2020.thrift.clients.UserClient;
9
 
10
import javax.servlet.ServletContext;
11
import javax.servlet.http.HttpServletRequest;
12
import javax.servlet.http.HttpServletResponse;
13
import javax.servlet.http.HttpSession;
14
 
15
import org.apache.struts2.convention.annotation.InterceptorRef;
16
import org.apache.struts2.convention.annotation.InterceptorRefs;
17
import org.apache.struts2.convention.annotation.Result;
18
import org.apache.struts2.convention.annotation.Results;
19
import org.apache.struts2.interceptor.ServletRequestAware;
20
import org.apache.struts2.interceptor.ServletResponseAware;
21
import org.apache.struts2.util.ServletContextAware;
22
import org.apache.thrift.TException;
23
import org.slf4j.Logger;
24
import org.slf4j.LoggerFactory;
25
 
26
import com.opensymphony.xwork2.ValidationAwareSupport;
27
 
28
@SuppressWarnings("serial")
29
 
30
@InterceptorRefs({
31
	@InterceptorRef("defaultStack"),
32
	@InterceptorRef("login")
33
})
34
@Results({
35
	@Result(name = "redirect", location = "${url}", type = "redirect"),
36
	@Result(name="authsuccess", type="redirectAction", params = {"actionName" , "reports"})
37
})
38
public class UserWalletCreditController extends ValidationAwareSupport implements ServletRequestAware ,ServletResponseAware, ServletContextAware{
39
 
40
	private static Logger logger = LoggerFactory.getLogger(UserWalletCreditController.class);
41
 
42
	private HttpServletRequest request;
43
	private HttpSession session;
44
	private HttpServletResponse response;
45
	private String id;
46
	private String email;
47
	private User user;
48
	private String amount;
49
	private String url;
50
	private String result;
21363 kshitij.so 51
	private String cashback;
21101 kshitij.so 52
 
21363 kshitij.so 53
	public String getCashback() {
54
		return cashback;
55
	}
56
 
57
	public void setCashback(String cashback) {
58
		this.cashback = cashback;
59
	}
60
 
21101 kshitij.so 61
	public String getResult() {
62
		return result;
63
	}
64
 
65
	public void setResult(String result) {
66
		this.result = result;
67
	}
68
 
69
	public String getUrl() {
70
		return url;
71
	}
72
 
73
	public void setUrl(String url) {
74
		this.url = url;
75
	}
76
 
77
	public String getAmount() {
78
		return amount;
79
	}
80
 
81
	public void setAmount(String amount) {
82
		this.amount = amount;
83
	}
84
 
85
	public User getUser() {
86
		return user;
87
	}
88
 
89
	public void setUser(User user) {
90
		this.user = user;
91
	}
92
 
93
	private UserWallet userWallet;
94
 
95
 
96
	public UserWallet getUserWallet() {
97
		return userWallet;
98
	}
99
 
100
	public void setUserWallet(UserWallet userWallet) {
101
		this.userWallet = userWallet;
102
	}
103
 
104
	public String getEmail() {
105
		return email;
106
	}
107
 
108
	public void setEmail(String email) {
109
		this.email = email;
110
	}
111
 
112
	public String index() throws TException {
113
		if (!ReportsUtils.canAccessReport((Long) session.getAttribute(ReportsUtils.ROLE),request.getServletPath())) {
114
			return "authfail";
115
		}
116
		return "index";
117
	}
118
 
119
	public String getWallet(){
120
		try{
121
			Client uc = new UserClient().getClient();
122
			user = uc.getUserByEmail(email);
123
			if (user.getUserId()==-1){
124
				addActionError("User email not valid");
125
				return "index";
126
			}
127
		}
128
		catch(Exception e){
129
			e.printStackTrace();
130
			addActionError("Service exception.");
131
			return "index";
132
		}
133
		try{
134
			in.shop2020.model.v1.order.TransactionService.Client tc = new TransactionClient().getClient();
135
			userWallet = tc.getUserWallet(user.getUserId());
136
		}
137
		catch(Exception e){
138
			e.printStackTrace();
139
			addActionError("Service exception.");
140
			return "index";
141
		}
142
		return "user-wallet-credit-edit";
143
	}
144
 
145
	public String creditWallet(){
146
		long credit_amount;
21363 kshitij.so 147
		double cash_back; 
21101 kshitij.so 148
		try{
149
			credit_amount = Long.valueOf(amount);
150
			if (credit_amount <=0){
151
				setResult("Amount cant be negative");
152
				return "pmsa-result";
153
			}
154
		}
155
		catch(Exception e){
156
			setResult("Invalid amount");
157
			return "pmsa-result";
158
		}
21363 kshitij.so 159
 
21101 kshitij.so 160
		try{
21363 kshitij.so 161
			cash_back = Double.valueOf(cashback);
162
		}
163
		catch(Exception e){
164
			setResult("Invalid cashback");
165
			e.printStackTrace();
166
			return "pmsa-result";
167
		}
168
		try{
21101 kshitij.so 169
			Client uc = new UserClient().getClient();
170
			user = uc.getUserByEmail(email);
171
		}
172
		catch(Exception e){
173
			setResult("Service error");
174
			return "pmsa-result";
175
		}
176
 
177
		if (user.getUserId()==-1){
178
			setResult("User email not valid");
179
			return "pmsa-result";
180
		}
181
		try {
182
			in.shop2020.model.v1.order.TransactionService.Client tc = new TransactionClient().getClient();
21363 kshitij.so 183
			tc.creditUserWallet(user.getUserId(), credit_amount, cash_back);
21101 kshitij.so 184
		} catch (Exception e) {
185
			e.printStackTrace();
186
			setResult("Service error");
187
			return "pmsa-result";
188
		}
189
		setResult("Wallet updated successfully");
190
		return "pmsa-result";
191
	}
192
 
193
 
194
	public String getId() {
195
		return id;
196
	}
197
 
198
	public void setId(String id) {
199
		this.id = id;
200
	}
201
 
202
 
203
 
204
	public void setServletRequest(HttpServletRequest req) {
205
		this.request = req;
206
		this.session = req.getSession();        
207
	}
208
 
209
	@Override
210
	public void setServletContext(ServletContext arg0) {
211
		// TODO Auto-generated method stub
212
 
213
	}
214
 
215
	public void setServletResponse(HttpServletResponse response) {
216
		this.response = response;
217
	}
218
 
219
 
220
}