Subversion Repositories SmartDukaan

Rev

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