Subversion Repositories SmartDukaan

Rev

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