test

Форк
1
/
UserServiceImpl.java 
98 строк · 3.6 Кб
1
package com.bittercode.service.impl;
2

3
import java.sql.Connection;
4
import java.sql.PreparedStatement;
5
import java.sql.ResultSet;
6
import java.sql.SQLException;
7

8
import javax.servlet.http.HttpSession;
9

10
import com.bittercode.constant.ResponseCode;
11
import com.bittercode.constant.db.UsersDBConstants;
12
import com.bittercode.model.StoreException;
13
import com.bittercode.model.User;
14
import com.bittercode.model.UserRole;
15
import com.bittercode.service.UserService;
16
import com.bittercode.util.DBUtil;
17

18
public class UserServiceImpl implements UserService {
19

20
    private static final String registerUserQuery = "INSERT INTO " + UsersDBConstants.TABLE_USERS
21
            + "  VALUES(?,?,?,?,?,?,?,?)";
22

23
    private static final String loginUserQuery = "SELECT * FROM " + UsersDBConstants.TABLE_USERS + " WHERE "
24
            + UsersDBConstants.COLUMN_USERNAME + "=? AND " + UsersDBConstants.COLUMN_PASSWORD + "=? AND "
25
            + UsersDBConstants.COLUMN_USERTYPE + "=?";
26

27
    @Override
28
    public User login(UserRole role, String email, String password, HttpSession session) throws StoreException {
29
        Connection con = DBUtil.getConnection();
30
        PreparedStatement ps;
31
        User user = null;
32
        try {
33
            String userType = UserRole.SELLER.equals(role) ? "1" : "2";
34
            ps = con.prepareStatement(loginUserQuery);
35
            ps.setString(1, email);
36
            ps.setString(2, password);
37
            ps.setString(3, userType);
38
            ResultSet rs = ps.executeQuery();
39
            if (rs.next()) {
40
                user = new User();
41
                user.setFirstName(rs.getString("firstName"));
42
                user.setLastName(rs.getString("lastName"));
43
                user.setPhone(rs.getLong("phone"));
44
                user.setEmailId(email);
45
                user.setPassword(password);
46
                session.setAttribute(role.toString(), user.getEmailId());
47
            }
48
        } catch (SQLException e) {
49
            e.printStackTrace();
50
        }
51
        return user;
52
    }
53

54
    @Override
55
    public boolean isLoggedIn(UserRole role, HttpSession session) {
56
        if (role == null)
57
            role = UserRole.CUSTOMER;
58
        return session.getAttribute(role.toString()) != null;
59
    }
60

61
    @Override
62
    public boolean logout(HttpSession session) {
63
        session.removeAttribute(UserRole.CUSTOMER.toString());
64
        session.removeAttribute(UserRole.SELLER.toString());
65
        session.invalidate();
66
        return true;
67
    }
68

69
    @Override
70
    public String register(UserRole role, User user) throws StoreException {
71
        String responseMessage = ResponseCode.FAILURE.name();
72
        Connection con = DBUtil.getConnection();
73
        try {
74
            PreparedStatement ps = con.prepareStatement(registerUserQuery);
75
            ps.setString(1, user.getEmailId());
76
            ps.setString(2, user.getPassword());
77
            ps.setString(3, user.getFirstName());
78
            ps.setString(4, user.getLastName());
79
            ps.setString(5, user.getAddress());
80
            ps.setLong(6, user.getPhone());
81
            ps.setString(7, user.getEmailId());
82
            int userType = UserRole.SELLER.equals(role) ? 1 : 2;
83
            ps.setInt(8, userType);
84
            int k = ps.executeUpdate();
85
            if (k == 1) {
86
                responseMessage = ResponseCode.SUCCESS.name();
87
                ;
88
            }
89
        } catch (Exception e) {
90
            responseMessage += " : " + e.getMessage();
91
            if (responseMessage.contains("Duplicate"))
92
                responseMessage = "User already registered with this email !!";
93
            e.printStackTrace();
94
        }
95
        return responseMessage;
96
    }
97

98
}
99

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.