Phân quyền và chức năng - Có 3 nhóm phân quyền: Người dùng chưa có tài khoản, Người dùng có tài khoản, Admin - Người dùng chưa có tài khoản Tìm kiếm sản phẩm Xem thông tin sản phẩm Đăng
Trang 1BỘ THÔNG TIN VÀ TRUYỀN THÔNG
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
CƠ SỞ TẠI THÀNH PHỐ HỒ CHÍ MINH
LẬP TRÌNH WEB
ĐỀ TÀI: WEBSITE BÁN RAU CỦ
Phạm Ngọc Bảo – N20DCCN006 Phạm Gia Bảo – N20DCCN005 Đoàn Long Âu – N20DCCN004
Hồ Chí Minh ngày 10 tháng 06 năm 2023
0
Trang 2Mục lục
I KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG 2
1 Tên đề tài: Xây dựng website bán rau củ 2
2 Sử dụng 2
3 Công cụ sử dụng 2
4 Phân quyền và chức năng 2
- Người dùng chưa có tài khoản 2
- Người dùng có tài khoản 2
- Admin 2
5 Phân tích hệ thống 2
II GIAO DIỆN 4
1 Trang chủ 4
2 Trang đăng kí và đăng nhập 6
3 Trang xem sản phẩm 7
4 Trang đặt hàng 8
5 Trang thông tin liên hệ 9
6 Trang xem đơn đặt hàng của người dùng 10
7 Trang Admin quản lý sản phẩm 11
8 Trang Admin quản lý người dùng 11
9 Trang Admin quản lí order 12
III TÍNH NĂNG 13
1 Tìm kiếm 13
2 Đăng kí – đăng nhập 13
3 Sửa thông tin người dùng 18
4 Xem danh sách đơn đặt hàng 18
5 Thêm vào giỏ hàng, xóa khỏi giỏ hàng, đặt hàng 18
a Thêm giỏ hàng 18
b Xóa sản phẩm khỏi giỏ hàng 20
c Tiến hàng đặt hàng 21
6 Liên lạc 23
7 Tính năng quản lý (Admin) 25
a Quản lý sản phẩm 25
b Thêm sản phẩm 25
c Sửa sản phẩm 26
d Thêm người dùng 28
e Quản lý giao hàng 28
Trang 3I KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG
1 Tên đề tài: Xây dựng website bán rau củ
2 Sử dụng
- Spring MVC, SQL Server
- Hibernate, Validation, Bean, Email
- HTML, CSS, Bootstrap, Jquery và một vài thư viện được thiết kế sẵn
3 Công cụ sử dụng
- Microsoft SQL Server 2019
- Eclispe IDE
4 Phân quyền và chức năng
- Có 3 nhóm phân quyền: Người dùng chưa có tài khoản, Người dùng có tài khoản, Admin
- Người dùng chưa có tài khoản
Tìm kiếm sản phẩm
Xem thông tin sản phẩm
Đăng kí tài khoản
Gửi phản hồi
- Người dùng có tài khoản
Có các quyền như người dùng chưa có tài khoản
Xem đơn hàng và trạng thái đặt hàng
Sửa thông tin cá nhân
Trang 5II. GIAO DIỆN
1 Trang chủ
4
Trang 72 Trang đăng kí và đăng nhập
6
Trang 83 Trang xem sản phẩm
Trang 94 Trang đặt hàng
8
Trang 105 Trang thông tin liên hệ
Trang 116 Trang xem đơn đặt hàng của người dùng
10
Trang 127 Trang Admin quản lý sản phẩm
8 Trang Admin quản lý người dùng
- Quản lí người dùng
- Thêm người dùng
Trang 139 Trang Admin quản lí order
12
Trang 15- Trước tiên, nó sử dụng phương thức authenticateUser của đối tượng userDao đểxác thực người dùng Nếu xác thực thành công, nó tạo một đối tượng HttpSession
để lưu trữ thông tin đăng nhập và chuyển hướng người dùng đến các trang tươngứng
- Nếu xác thực không thành công, phương thức kiểm tra xem tài khoản và mật khẩu
có được nhập không và thêm thông báo tương ứng vào mô hình model Sau đó, nótrả về trang Login/login để hiển thị lại form đăng nhập với thông báo lỗi
- Phương thức logout được sử dụng để đăng xuất người dùng Nó nhận đối tượngHttpServletRequest và HttpSession Phương thức sử dụng phương thứcremoveAttribute của đối tượng HttpSession để xóa thuộc tính loggedInUser Sau
đó, nó chuyển hướng đến trang được chỉ định trong request.getHeader("Referer"),
để quay lại trang trước đó
14
Trang 17- Sau khi đăng ký thông tin đăng ký sẽ được lưu vào cơ sở dữ liệu bằng cách sửdụng Session và Transaction để bắt đầu một giao dịch và thực hiện việc thêm mớisản phẩm Nếu tên người dùng đã tồn tại thì sẽ trả về trang Login/SignUp và thôngbáo lỗi.
16
Trang 193 Sửa thông tin người dùng
- Người dùng có thể tự sửa thông tin của mình
4 Xem danh sách đơn đặt hàng
- Khách hàng có thể xem danh sách các đơn hàng và trạng thái của đơn
5 Thêm vào giỏ hàng, xóa khỏi giỏ hàng, đặt hàng
a Thêm giỏ hàng
- Sử dụng session để lưu thông tin giỏ hàng
18
Trang 20- Phương thức addCart nhận vào HttpServletRequest, HttpSession và id củasản phẩm được chọn Đầu tiên, nó kiểm tra xem giỏ hàng có tồn tại trongsession hay không Nếu không tồn tại, nó tạo một đối tượngHashMap<Integer, cartDto> mới.
- Sau đó, phương thức gọi addCart để thêm sản phẩm vào giỏ hàng Phươngthức này truyền id của sản phẩm và giỏ hàng hiện tại vào để thực hiện việcthêm Kết quả trả về là một giỏ hàng đã được cập nhật
- Sau khi cập nhật giỏ hàng, phương thức lưu giỏ hàng vào session bằngcách gán giỏ hàng vào thuộc tính Cart của session Đồng thời, nó cũng lưutổng giá trị của giỏ hàng bằng cách gọi phương thức totalPrice của cartDao
và lưu vào thuộc tính TotalPrice của session
- Cuối cùng, phương thức chuyển hướng đến trang được chỉ định trongrequest.getHeader("Referer") để quay lại trang trước đó sau khi thêm sảnphẩm vào giỏ hàng
- Tuy nhiên, nếu người dùng đăng xuất thì giỏ hàng sẽ biến mất
Trang 21b Xóa sản phẩm khỏi giỏ hàng
- Tương tự như chức năng thêm giỏ hàng
20
Trang 22c Tiến hàng đặt hàng
- Chức năng này người dùng cần phải đăng nhập để có thể đặt hàng
- Người dùng cần phải điền đầy đủ thông tin để có thể hoàn thành việc đặt hàng
- Sau khi đặt hàng thì toàn bộ sản phẩm trong giỏ hàng sẽ được httpSession xóakhỏi giỏ hàng
Trang 246 Liên lạc
Trang 267 Tính năng quản lý (Admin)
Trang 27c Sửa sản phẩm
26
Trang 28Phương thức editProduct nhận các tham số là ModelMap và
@ModelAttribute("editProduct") Products editProduct Trong đó:
ModelMap được sử dụng để truyền dữ liệu giữa Controller và View
@ModelAttribute("editProduct") sử dụng để gắn kết đối tượng Productsđược truyền từ form với biến editProduct trong phương thức
Sau đó, phương thức mở một phiên làm việc với cơ sở dữ liệu, bắt đầu mộtgiao dịch và thực hiện việc cập nhật thông tin sản phẩm
d Thêm người dùng
Trang 29- Giống với thêm sản phẩm.
e Quản lý giao hàng
- Giống với quản lý sản phẩm
28