Subversion Repositories SmartDukaan

Rev

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