Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
24383 amit.gupta 1
package com.spice.profitmandi.web.controller;
2
 
3
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
4
import com.spice.profitmandi.common.model.ProfitMandiConstants;
5
import com.spice.profitmandi.dao.entity.auth.AuthUser;
27806 tejbeer 6
import com.spice.profitmandi.dao.entity.cs.PartnerPosition;
7
import com.spice.profitmandi.dao.entity.cs.Position;
24383 amit.gupta 8
import com.spice.profitmandi.dao.entity.dtr.Role;
9
import com.spice.profitmandi.dao.entity.dtr.User;
10
import com.spice.profitmandi.dao.entity.dtr.UserRole;
11
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
27806 tejbeer 12
import com.spice.profitmandi.dao.repository.cs.PartnersPositionRepository;
13
import com.spice.profitmandi.dao.repository.cs.PositionRepository;
24383 amit.gupta 14
import com.spice.profitmandi.dao.repository.dtr.RoleRepository;
15
import com.spice.profitmandi.dao.repository.dtr.UserRepository;
16
import com.spice.profitmandi.dao.repository.dtr.UserRoleRepository;
17
import com.spice.profitmandi.service.AuthService;
18
import com.spice.profitmandi.web.model.LoginDetails;
19
import com.spice.profitmandi.web.util.CookiesProcessor;
29209 manish 20
import com.spice.profitmandi.web.util.MVCResponseSender;
31238 amit.gupta 21
import org.apache.logging.log4j.LogManager;
22
import org.apache.logging.log4j.Logger;
23
import org.springframework.beans.factory.annotation.Autowired;
24
import org.springframework.beans.factory.annotation.Qualifier;
25
import org.springframework.stereotype.Controller;
26
import org.springframework.transaction.annotation.Transactional;
27
import org.springframework.ui.Model;
28
import org.springframework.web.bind.annotation.GetMapping;
29
import org.springframework.web.bind.annotation.PostMapping;
30
import org.springframework.web.bind.annotation.RequestParam;
24383 amit.gupta 31
 
31238 amit.gupta 32
import javax.servlet.http.HttpServletRequest;
33
import java.time.LocalDateTime;
34
import java.util.HashMap;
35
import java.util.List;
36
import java.util.Map;
37
 
24383 amit.gupta 38
@Controller
25192 tejbeer 39
@Transactional(rollbackFor = Throwable.class)
24383 amit.gupta 40
public class AuthUserController {
41
 
42
	private static final Logger LOGGER = LogManager.getLogger(AuthUserController.class);
43
 
44
	@Autowired
45
	private AuthService authService;
46
 
47
	@Autowired
48
	private AuthRepository authRepository;
49
 
50
	@Autowired
51
	private UserRepository userRepository;
52
 
53
	@Autowired
54
	private RoleRepository roleRepository;
55
 
56
	@Autowired
29209 manish 57
	private MVCResponseSender mvcResponseSender;
58
 
59
	@Autowired
24383 amit.gupta 60
	private UserRoleRepository userRoleRepository;
61
 
62
	@Autowired
63
	private CookiesProcessor cookiesProcessor;
64
 
65
	@Autowired
27806 tejbeer 66
	private PositionRepository positionRepository;
67
 
68
	@Autowired
69
	private PartnersPositionRepository partnerPositionRepository;
70
 
71
	@Autowired
24383 amit.gupta 72
	@Qualifier("userUserRepository")
73
	private com.spice.profitmandi.dao.repository.user.UserRepository userUserRepository;
74
 
75
	@GetMapping(value = "/createAuthUser")
76
	public String getcreateAuthUser(HttpServletRequest request,
77
			@RequestParam(name = "offset", defaultValue = "0") int offset,
78
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
79
			throws ProfitMandiBusinessException {
25570 tejbeer 80
		// List<AuthUser> authUsers = authRepository.selectAll(offset, limit);
81
		List<AuthUser> authUsers = authRepository.selectAllActiveUser(offset, limit);
82
 
24383 amit.gupta 83
		long size = authRepository.selectCountAuthUser();
29209 manish 84
 
85
		List<AuthUser> activeAuthUsers = authRepository.selectAllActiveUser();
86
 
87
		Map<Integer, AuthUser> userManagerMap = new HashMap<>();
88
 
89
		for (AuthUser authUser : authUsers) {
90
			if (authUser.getManagerId() != 0) {
91
				userManagerMap.put(authUser.getId(), authRepository.selectById(authUser.getManagerId()));
92
			}
93
		}
94
		model.addAttribute("userManagerMap", userManagerMap);
95
		model.addAttribute("activeAuthUsers", activeAuthUsers);
24383 amit.gupta 96
		model.addAttribute("authUsers", authUsers);
97
		model.addAttribute("start", offset + 1);
98
		model.addAttribute("size", size);
29209 manish 99
		model.addAttribute("url", "/getPaginatedAuthUser");
24383 amit.gupta 100
		if (authUsers.size() < limit) {
101
			model.addAttribute("end", offset + authUsers.size());
102
		} else {
103
			model.addAttribute("end", offset + limit);
104
		}
29209 manish 105
 
24383 amit.gupta 106
		return "create-auth-user";
107
 
108
	}
109
 
29209 manish 110
	@PostMapping(value = "/addManagerId")
111
	public String addManagerId(HttpServletRequest request, @RequestParam(name = "authId") int authId,
112
			@RequestParam(name = "managerId") int managerId, Model model) throws Exception {
113
		// List<AuthUser> authUsers = authRepository.selectAll(offset, limit);
114
		AuthUser authUser = authRepository.selectById(authId);
115
 
116
		if (authUser.getId() != 0) {
117
 
118
			authUser.setManagerId(managerId);
119
		}
120
		List<AuthUser> activeAuthUsers = authRepository.selectAllActiveUser();
121
 
122
		AuthUser manager = authRepository.selectById(authUser.getManagerId());
123
 
124
		model.addAttribute("activeAuthUsers", activeAuthUsers);
125
		model.addAttribute("authUser", authUser);
126
		model.addAttribute("manager", manager);
127
 
128
		return "create-auth-user";
129
 
130
	}
131
 
24383 amit.gupta 132
	@PostMapping(value = "/createAuthUser")
133
	public String createAuthUser(HttpServletRequest request,
134
			@RequestParam(name = ProfitMandiConstants.FIRST_NAME, defaultValue = "") String firstName,
135
			@RequestParam(name = ProfitMandiConstants.LAST_NAME, defaultValue = "") String lastName,
136
			@RequestParam(name = ProfitMandiConstants.EMAIL_ID, defaultValue = "") String emailId,
137
			@RequestParam(name = ProfitMandiConstants.MOBILE_NUMBER, defaultValue = "") String mobileNumber,
25366 tejbeer 138
			@RequestParam(name = ProfitMandiConstants.GMAIL_ID, defaultValue = "") String gmailId,
27595 tejbeer 139
			@RequestParam(name = "employeeCode", defaultValue = "") String employeeCode,
24383 amit.gupta 140
			@RequestParam(name = "offset", defaultValue = "0") int offset,
141
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
142
			throws ProfitMandiBusinessException {
143
		AuthUser authUser = null;
144
		User user = null;
145
		List<Role> roles = roleRepository.selectAll();
146
		try {
147
			user = userRepository.selectByEmailId(emailId);
148
			userRoleRepository.deleteByUserId(user.getId());
149
			for (Role role : roles) {
150
				UserRole userRole = new UserRole();
151
				userRole.setRoleId(role.getId());
152
				userRole.setUserId(user.getId());
153
				userRoleRepository.persist(userRole);
154
			}
155
		} catch (Exception ex) {
156
			user = new User();
157
			user.setFirstName(firstName);
158
			user.setLastName(lastName);
159
			user.setUsername(emailId);
160
			user.setEmailId(emailId);
161
			user.setPassword("");
162
			user.setMobileNumber(mobileNumber);
163
			user.setCity("Noida");
164
			user.setPinCode(201301);
165
			user.setActivated(true);
166
			user.setMobile_verified(true);
167
			user.setReferral_url("");
168
			user.setUpdateTimestamp(LocalDateTime.now());
169
			user.setStatus(0);
170
			user.setCreateTimestamp(LocalDateTime.now());
171
			userRepository.persist(user);
172
			LOGGER.info("User created successfully");
173
			for (Role role : roles) {
174
				UserRole userRole = new UserRole();
175
				userRole.setRoleId(role.getId());
176
				userRole.setUserId(user.getId());
177
				userRoleRepository.persist(userRole);
178
			}
179
		}
180
		authUser = new AuthUser();
181
		authUser.setEmailId(emailId);
182
		authUser.setFirstName(firstName);
183
		authUser.setLastName(lastName);
184
		authUser.setMobileNumber(mobileNumber);
25366 tejbeer 185
		authUser.setGmailId(gmailId);
27595 tejbeer 186
		authUser.setEmployeeCode(employeeCode);
25587 tejbeer 187
		authUser.setActive(true);
25570 tejbeer 188
 
24383 amit.gupta 189
		authUser.setCreatedTimestamp(LocalDateTime.now());
190
		authService.addAuthUser(authUser);
191
 
192
		List<AuthUser> authUsers = authRepository.selectAll(offset, limit);
193
		long size = authRepository.selectCountAuthUser();
194
		model.addAttribute("authUsers", authUsers);
195
		model.addAttribute("start", offset + 1);
196
		model.addAttribute("size", size);
197
		if (authUsers.size() < limit) {
198
			model.addAttribute("end", offset + authUsers.size());
199
		} else {
200
			model.addAttribute("end", offset + limit);
201
		}
202
		return "create-auth-user";
203
	}
204
 
205
	@GetMapping(value = "/changePassword")
206
	public String getChangePassword(HttpServletRequest request, Model model) {
207
		return "change-auth-user-password";
208
	}
209
 
210
	@PostMapping(value = "/changePassword")
211
	public String changePassword(HttpServletRequest request,
212
			@RequestParam(name = "oldPassword", defaultValue = "") String oldPassword,
213
			@RequestParam(name = "newPassword", defaultValue = "") String newPassword, Model model)
214
			throws ProfitMandiBusinessException {
215
 
216
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
217
		authService.changePassword(loginDetails.getEmailId(), oldPassword, newPassword);
218
		return "change-auth-user-password";
219
	}
220
 
221
	@GetMapping(value = "/getPaginatedAuthUser")
222
	public String getPaginatedAuthUser(HttpServletRequest request,
223
			@RequestParam(name = "offset", defaultValue = "0") int offset,
224
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model) {
27806 tejbeer 225
		// List<AuthUser> authUsers = authRepository.selectAll(offset, limit);
29209 manish 226
 
227
		List<AuthUser> activeAuthUsers = authRepository.selectAllActiveUser();
228
 
25570 tejbeer 229
		List<AuthUser> authUsers = authRepository.selectAllActiveUser(offset, limit);
29209 manish 230
 
231
		Map<Integer, AuthUser> userManagerMap = new HashMap<>();
232
 
233
		for (AuthUser authUser : authUsers) {
234
			if (authUser.getManagerId() != 0) {
235
				userManagerMap.put(authUser.getId(), authRepository.selectById(authUser.getManagerId()));
236
			}
237
		}
238
		model.addAttribute("userManagerMap", userManagerMap);
24383 amit.gupta 239
		model.addAttribute("authUsers", authUsers);
29209 manish 240
		model.addAttribute("activeAuthUsers", activeAuthUsers);
241
		model.addAttribute("url", "/getPaginatedAuthUser");
24383 amit.gupta 242
		return "auth-users-paginated";
243
	}
25570 tejbeer 244
 
245
	@GetMapping(value = "/authuser/edit")
246
	public String updateAuthUser(Model model, @RequestParam String gmailId, @RequestParam String emailId)
247
			throws Exception {
24478 amit.gupta 248
		AuthUser user = authRepository.selectByEmailOrMobile(emailId);
249
		user.setGmailId(gmailId);
24489 amit.gupta 250
		authRepository.persist(user);
31238 amit.gupta 251
		model.addAttribute("response1", "true");
24478 amit.gupta 252
		return "response";
253
	}
27595 tejbeer 254
 
25570 tejbeer 255
	@PostMapping(value = "/authuser/remove")
27595 tejbeer 256
	public String removeAuthUser(Model model, @RequestParam int id) throws Exception {
25570 tejbeer 257
		AuthUser user = authRepository.selectById(id);
27806 tejbeer 258
 
25570 tejbeer 259
		user.setActive(false);
260
		authRepository.persist(user);
27806 tejbeer 261
		List<Position> positions = positionRepository.selectAll(user.getId());
262
		for (Position position : positions) {
263
			List<PartnerPosition> partnerPositions = partnerPositionRepository.selectByPositionId(position.getId());
264
			positionRepository.delete(position.getId());
265
			for (PartnerPosition partnerPosition : partnerPositions) {
266
				partnerPositionRepository.delete(partnerPosition.getPositionId());
267
			}
268
		}
31238 amit.gupta 269
		model.addAttribute("response1", "true");
25570 tejbeer 270
		return "response";
271
	}
25366 tejbeer 272
 
24383 amit.gupta 273
}