1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng website và ứng dụng quản lý cho Hệ thống bán sách

48 450 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng website và ứng dụng quản lý cho hệ thống bán sách
Tác giả Phạm Ngọc Phi, Hồ Văn Thơm, Huỳnh Thị Như Hảo
Người hướng dẫn Th.s Cao Thái Phương Thanh
Trường học Trường Đại Học Sài Gòn
Chuyên ngành Công nghệ thông tin
Thể loại Đề tài
Năm xuất bản 2011
Thành phố Tp Hồ Chí Minh
Định dạng
Số trang 48
Dung lượng 915,62 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Xây dựng website và ứng dụng quản lý cho Hệ thống bán sách

Trang 1

Trường Đại học Sài GònKhoa Công nghệ thông tin

Đề tài

Xây dựng website và ứng dụng quản lý cho

Hệ thống bán sách

GVHD: Th.s Cao Thái Phương Thanh

Trang 2

Mục lục

Phần I: Mô tả hệ thống 3

1 Mô tả ứng dụng: 3

2 Xác định yêu cầu: 4

Phần II: Phân tích – Thiết kế mô hình 5

1 Concept class diagram 5

2 Physical data model 6

2.1 Mô hình: 6

2.2 Mô tả dữ liệu: 7

3 Sequence diagram 12

3.1 Hiển thị sách theo phân loại: 12

3.2 Tìm kiếm: 13

3.3 Đặt hàng: 14

3.4 Quản lý sách: 15

3.5 Quản lý nhập sách: 18

3.6 Xử lý đơn đặt hàng: 21

3.7 Quản lý tồn kho: 22

3.8 Báo cáo thống kê: 23

4 Class diagram 26

4.1 Hiển thị sách theo phân loại: 26

4.2 Tìm kiếm: 27

4.3 Đặt hàng: 28

Trang 3

Phần I: Mô tả hệ thống

1 Mô tả ứng dụng:

Do nhu cầu quản lý ngày càng cao và cần mở rộng thị trường kinh doanh, tìm kiếm khách hàng, nhà sách cần phát triển ứng dụng quản lý và 1 trang web để quảng bá sản phẩm đồng thời bán hàng trực tuyến.

o Đối với trang web:

tên sách hoặc tên tác giả(tùy theo khách hàng nhớ).

thể thêm hoặc xóa sách có trong giỏ hàng.

khách hàng cũ thì chỉ cần đăng nhập với tài khoản đã tạo Ngược lại nếu là khách hàng mới thì phải tạo tài khoản mới để đăng nhập Việc này giúp quản lý được thông tin khách hàng

o Đối với ứng dụng quản lý:

cung cấp Khi nhận hàng, nhân viên sẽ kiểm tra hàng và cập nhật danh mục sách Mỗi quyển sách xác định được các thông tin: mã sách, mã thể loại, tác giả và giá sách có thể thay đổi theo thị trường

viên sẽ kiểm tra danh mục sách và thông báo đến khách hàng nếu đáp ứng được hoặc không đáp ứng được đơn đặt hàng bằng việc điện thoại Đồng thời cập nhật khách hàng mới vào danh sách khách hàng Nếu đơn đặt hàng được đáp ứng, nhân viên sẽ viết phiếu xuất và lập hóa đơn bán hàng để thực hiện thanh toán với khách hàng, cập nhập lại số lượng tồn kho.

xuyên kiểm tra, theo dõi và nắm các thông tin về sách trong danh mục sách để có kế hoạch cung cấp hàng cho khách hoặc lên kế hoạch nhập hàng và đồng thời quản lý được số lượng sách tồn kho.

Trang 4

lượng sách mỗi loại được bán ra trong khoảng thời gian đó trên số lượng nhập vào Báo cáo cho quản lý nhà sách để đưa ra hướng kinh doanh có hiệu quả.

2 Xác định yêu cầu:

quan và thực hiện được các yêu cầu quản lý, cụ thể như sau:

o Đối với trang web:

o Đối với ứng dụng quản lý:

lượng(trên hoặc dưới số lượng tùy chọn).

Trang 5

Phần II: Phân tích – Thiết kế mô hình

1 Concept class diagram

Trang 6

2 Physical data model

2.1 Mô hình:

Trang 7

mã số khác nhau để phân biệt với các quyển sách khác.

sách.

Trang 8

Bảng 4: ChuDe – Chủ đề

cho mỗi chủ đề 1 id khác nhau để phân biệt.

Trang 9

Bảng 7: CT_DonDatHang – Chi tiết đơn đặt hàng

cho mỗi chi tiết đơn đặt hàng

1 id khác nhau để phân biệt.

Khóa chính.

trong đơn đặt hàng.

thanh toán.

Trang 10

Bảng 8: Admin – Người quản trị hệ thống

Khóa chính.

nhập vào hệ thống web.

đăng nhập ứng với mỗi tên đăng nhập.

giao hàng.

Trang 11

Bảng 11: CT_PhieuNhapHang – Chi tiết phiếu nhập hàng

cho mỗi chi tiết phiếu nhập 1

id khác nhau để phân biệt.

Khóa chính.

chi tiết phiếu.

phiếu nhập.

Trang 13

3.2 Tìm kiếm:

Trang 14

3.3 Đặt hàng:

: KhachHang

: KhachHang : wfrmDs_SachTheoPLoai : wfrmDs_SachTheoPLoai : wfrmChiTietGioHang : wfrmChiTietGioHang : XuLyDonDatHang : XuLyDonDatHang : XuLyCT_DonDatHang : XuLyCT_DonDatHang : DonDatHang : CT_DonDatHang

GioHang ~ session["GioHang']

1: click nut ChonMua

3: click Xem gio hang

13: Insert() 14: return 7: KiemTraDangNhap()

Trang 15

: XuLyTheLoai : XuLyTacGia : XuLyGiaSach : XuLySach : XuLyTonKho : TheLoai : GiaSach : TacGia : Sach : TonKho

15: Nhap thong tin chi tiet sach

25: bt_LuuSach_Click( ) 24: Nhap thong tin gia

28: InsertGia( )

29: InsertGia( )

26: Insert( )

27: Insert( ) 14: frmSach_Load( )

16: Chon the loai

23:

30: CapNhatTonKho( )

31: CapNhatTonKho( ) 32:

33:

set slTon = 0

Trang 16

3: GetAll( )

4: GetAll( )

9: GetAllTacGia( )

10: GetAllTacGia( ) 11:

16: Sua chi tiet sach

17: Cap nhat gia

15: frmSach_Load( )

5:

14: KhoiTao( )

Trang 18

7: KhoiTao( )

8: frmPhieuNhap_Load( )

9: GetAll( )

10: GetAll( ) 11:

Trang 19

32:

Trang 20

21:

Trang 21

3.6 Xử lý đơn đặt hàng:

: ADmin : frmQuanLyDonDatHang : XuLyDonDatHang : XuLyTonKho : DonDatHang : TonKho

10: thay doi tinh trang Don hang

11: click Nut Luu()

20: CapNhatTonKho( ) 21:

1: Chon Qly DDh

2: KhoiTao( )

3: GetAll( )

4: GetAll( ) 5: return list<ddh>

8: Chon Sua Don Hang

9: Chuyen trang thai Sua

6: return list<ddh>

7: ShowALL( )

12: KiemTraTonKho( )

13: GetSLTon( ) 14:

15:

Trang 22

3.7 Quản lý tồn kho:

: ADmin

: frmTonKho

: XuLyTonKho : TonKho 1: KhoiTao( )

Trang 23

3.8 Báo cáo thống kê:

a Báo cáo tồn kho:

: ADmin

: frmThongKeBC

: XuLyTheLoai : XuLyTonKho : TheLoai : TonKho 1: KhoiTao( )

7: Chon ngay xem ton kho

8: Chon the loai

Trang 24

b Báo cáo số lượng bán ra theo thể loại và trong khoảng thời gian nhất định:

: ADmin

: frmThongKeBC

: XuLyTheLoai : XuLyCT_DonDatHang : TheLoai : CT_DonDatHang 1: KhoiTao( )

7: Chon khoang thoi gian

8: Chon the loai

Trang 25

c Báo cáo số lượng bán ra theo giới hạn số lượng và trong khoảng thời gian nhất định:

: ADmin

: frmThongKeBC

: XuLyTheLoai : XuLyCT_DonDatHang : TheLoai : CT_DonDatHang 1: KhoiTao( )

7: Chon khoang thoi gian

8: Chon gioi han sl

Trang 26

4 Class diagram

4.1 Hiển thị sách theo phân loại:

Sach

Delete() GetSachById() GetAll() Update() Insert() GetSacgbyTheLoaij() GetSachBySearch()

(from Design Model)

<<entity>>

wfrmIndex Load_DsSach() (from Design Model)

<<boundary>>

XuLySach

Insert() Delete() GetSachById() GetAll() Update() GetSachByTheLoai() GetSachBySearch()

(from Design Model)

<<control>>

XuLyTheLoai

GetTheLoaiById() GetALL()

GetSachByTheLoai()

(from Design Model)

<<control>>

0 n 1

Trang 27

4.2 Tìm kiếm:

Sach

Delete() GetSachById() GetAll() Update() Insert() GetSacgbyTheLoaij() GetSachBySearch()

(from Design Model)

<<entity>>

wUC_TimKiem

btnTim_click() KiemtraThongTinNhap()

(from Design Model)

<<boundary>>

XuLySach

Insert() Delete() GetSachById() GetAll() Update() GetSachByTheLoai() GetSachBySearch()

(from Design Model)

<<control>>

1 1

wfrmKetQuaTimKiem Load_KqTimKiem() (from Design Model)

<<boundary>>

1 n 1

1 n 1

1 1

1

1 n

Trang 28

4.3 Đặt hàng:

XuLyDonDatHang

InsertDdh() UpdateTrangThai() GetCtDdhByDdh() GetDDhByID() GetAll()

(from Design Model )

<<control>> XuLyCT_DonDatHang

InsertCtDdh() Delete() GetSlBanByLoaiSpAndGioiHan() GetSlBanByTheLoaiAndThoiGian()

(from Design Model )

<<control>>

wfrmChiTietGioHang

Load_dsGioHang() btnDatHangClick()()

(from Design Model )

<<boundary>>

1 n

1

1 n 1

DonDatHang

Insert() GetDDhByID()() Delete()() UpdateTrangThai() GetAll()

(from Design Model )

<<entity>>

1 1

CT_DonDatHang

Insert() Delete() GetCtDDhByDdh() GetSlBanByTheLoaiAndThoiGian() GetSlBanByLoaiSpAndGioiHan()

(from Design Model )

<<entity>>

1 1

1 n 1

1 n 1

1

1

1

1

Trang 29

4.4 Quản lý sách:

frmDanhMucSach

KhoiTao() bt_ThemSach_Click() frmDanhMucSach_Load() bt_SuaSach_Click() bt_XoaSach_Click() ShowMessage()

(from Design Model)

<<boundary>>

XuLySach

Insert() Delete() GetSachById() GetAll() Update() GetSachByTheLoai() GetSachBySearch()

(from Design Model)

<<control>> XuLyTheLoai

GetTheLoaiById() GetALL() GetSachByTheLoai()

(from Design Model)

<<control>> XuLyGiaSach

InsertGia() UpdateGiaBySach() DeleteALLGiaBySach()

(from Design Model)

<<control>>

TonKho

CapNhatTonKho() GetSLTon() GetTonKhoByNgay() GetTonKhoByDateAndTheLoai()

(from Design Model)

<<entity>>

XuLyTonKho

CapNhatTonKho() KiemTraTonKho() LoadTonKhoTheoNgay() GetTonKhoByDateAndTheLoai()

(from Design Model)

<<control>>

1 1

1

1 GiaSach

InsertGia() UpdateGiaBySach() DeleteAllGiaBySach()

(from Design Model)

<<entity>>1

1 1 1

frmSach

KhoiTao() frmSach_Load() bt_LuuSach_Click()

(from Design Model)

<<boundary>>

1 n 11 n 1

1 n

1 1 n 1

1

1 n

1

1 n 1

(from Design Model)

<<entity>> 1

(from Design Model)

<<entity>>

1

1 1 1

1

1 n 1 1 n

1 n 1

1 n 1

1 n

Trang 30

Insert() Delete() GetSachById() GetAll() Update() GetSachByTheLoai() GetSachBySearch()

(from Design Model)

<<control>>

XuLyCT_PhieuNhap

InsertCT_PhieuNhap() GetCT_PhieuNhap() UpdateCT_PhieuNhap() DeleteCtPhieuNhapByPhieuNhap()

(from Design Model)

<<control>>

frmPhieuNhap

KhoiTao() frmPhieuNhap_Load() bt_LuuPhieu_Click() ShowMessage()

(from Design Model)

<<boundary>>

1 n 1

1 n

1

1 n 1

1 n 1

XuLyTonKho

CapNhatTonKho() KiemTraTonKho() LoadTonKhoTheoNgay() GetTonKhoByDateAndTheLoai()

(from Design Model)

<<control>>

1 n

11 1 n 1 n

1 1

TonKho

CapNhatTonKho() GetSLTon() GetTonKhoByNgay() GetTonKhoByDateAndTheLoai()

(from Design Model)

(from Design Model)

<<entity>>

1 1

1 1

1 n 1 n

Trang 31

4.6 Xử lý đơn đặt hàng:

DonDatHang

Insert() GetDDhByID()() Delete()() UpdateTrangThai() GetAll()

(from Design Model)

<<entity>>

XuLyDonDatHang

InsertDdh() UpdateTrangThai() GetCtDdhByDdh() GetDDhByID() GetAll()

(from Design Model)

(from Design Model)

<<control>>

1 n 1

TonKho

CapNhatTonKho() GetSLTon() GetTonKhoByNgay() GetTonKhoByDateAndTheLoai()

(from Design Model)

<<entity>>

1

1 1

1

1

1 n

1 n 1

1 1

Trang 32

4.7 Báo cáo thống kê:

TheLoai

GetTheLoaiById() GetALL()()

(from Design Model)

<<entity>>

XuLyTheLoai

GetTheLoaiById() GetALL() GetSachByTheLoai()

(from Design Model)

<<control>>

1

1 CT_DonDatHang

(from Design Model)

(from Design Model)

(from Design Model)

<<control>>

1

1

1 n 1

1 1

1

1

1 1

Trang 33

Decription Khách hàng cần tìm kiếm sách, trang web cung cấp chức năng

tìm kiếm theo tùy chọn của khách hàng

Set up Nếu khách hàng nhớ rõ tên sách thì có thể tìm sách rất dễ dàng

bằng cách nhập tên sách ở phần tìm kiếm của trang web

Instructions Khách hàng A cần tìm quyển sách “Chiến tranh và hòa bình”:

i Khách hàng sẽ nhập tên quyển sách này vào mục tên sách trong phần tìm kiếm

ii Khách hàng click vào nút “Tìm kiếm”

iii Hệ thống tiến hành tìm và hiển thị kết quả

Expected results Có 2 kết quả:

 Quyển sách khách hàng cần tìm sẽ được hiển thị trên web nếu trong danh mục sách có quyển sách “Chiến tranh và hòa bình” Khách hàng có thể xem chi tiết về quyển sách

và đặt mua nếu muốn

 Ngược lại, trang web sẽ hiển thị thông báo không tìm thấy

Trang 34

Tìm theo tên tác giả:

Decription Khách hàng cần tìm kiếm sách, trang web cung cấp chức năng

tìm kiếm theo tùy chọn của khách hàng

Set up Nếu khách hàng chỉ nhớ tên tác giả mà không nhớ tên sách thì có

thể tìm sách bằng cách nhập tên tác giả ở phần tìm kiếm của trangweb

Instructions Khách hàng B sẽ thực hiện các thao tác:

i Khách hàng nhập tên tác giả “Nguyễn Nhật Ánh” vào mụctên tác giả trong phần tìm kiếm

ii Khách hàng click vào nút “Tìm kiếm”

iii Hệ thống tiến hành tìm kiếm và hiển thị kết quả

Expected results Có 2 kết quả:

 Trang web sẽ hiển thị tất cả sách của tác giả “Nguyễn NhậtÁnh” có trong danh mục sách Khách hàng sẽ chọn quyển sách cần tìm trong các kết quả hiển thị

 Trang web sẽ hiển thị thông báo không tìm thấy kết quả nào

Tìm theo thể loại:

Decription Khách hàng cần tìm kiếm sách, trang web cung cấp chức năng

tìm kiếm theo tùy chọn của khách hàng

Set up Khách hàng muốn tìm sách theo một thể loại cụ thể

Instructions Khách hàng C sẽ thực hiện các thao tác:

Trang 35

Expected results Kết quả đạt được sau khi đặt hàng - trong đơn đặt hàng của khách

hàng A được lưu gồm có:

 Sách “Oxford yêu thương”

Trang 37

ii Khách hàng B click nút “Đăng kí”.

iii Hệ thống tiến hành lưu thông tin đăng kí và hiển thị thông báo

iv Website chuyển qua trang chi tiết giỏ hàng

v Khách hàng nhấn nút “Đặt hàng”

vi Hệ thống kiểm tra và thông báo đặt hàng thành công

Expected results Kết quả đạt được sau khi đặt hàng - trong đơn đặt hàng được lưu

Trang 38

Set up Truyện “Tôi thấy hoa vàng trên cỏ xanh” mới nhập về lần đầu

cần thêm vào danh mục

Instructions Nhân viên thực hiện các thao tác sau:

i Chọn chức năng “Quản lý sách” trên Menu

ii Màn hình “Danh mục sách” được mở và nhân viên click nút “Thêm” trên màn hình này

iii Màn hình “Thông tin sách” được mở và nhân viên tiến hành nhập thông tin chi tiết của 1 quyển sách

o Tên sách: “Tôi thấy hoa vàng trên cỏ xanh”

iv Sau khi nhập đầy đủ thông tin, nhân viên nhấn nút “Lưu”

Hệ thống sẽ tiến hành thêm sách này vào cơ sở dữ liệu vàthông báo nếu có

Expected results Nhân viên đóng và mở lại màn hình “Danh mục sách”, truyện

“Tôi thấy hoa vàng trên cỏ xanh” đã có trong danh mục

Trang 39

Sửa sách:

Decription Thông tin 1 quyển sách đã bị nhập sai, nhân viên được yêu cầu

phải sửa thông tin bị sai

Set up Quyển sách “Ngôn ngữ quảng cáo – Advertising language”, mục

thể loại bị sai

Instructions Nhân viên thực hiện các thao tác sau:

i Chọn chức năng “Quản lý sách” trên Menu

ii Màn hình “Danh mục sách” được mở, nhân viên chọn sách cần sửa và click vào cột “Sửa” trên cùng dòng với sách được chọn

iii Màn hình “Thông tin sách” được mở và nhân viên tiến hành sửa thông tin bị sai:

o Tên sách: “Ngôn ngữ quảng cáo – Advertising language”

o Tác giả: “Lưu Trọng Tuấn”

Expected results Nhân viên đóng và mở lại màn hình “Danh mục sách”, thông tin

sách “Ngôn ngữ quảng cáo – Advertising language” đã được sửa lại

Decription Quá trình xóa 1 quyển sách trong danh mục

Set up Nhân viên muốn xóa quyển sách “Tây du kí”

Instructions Nhân viên thực hiện các thao tác sau:

i Chọn chức năng “Quản lý sách” trên Menu

ii Màn hình “Danh mục sách” được mở, nhân viên chọn

Trang 40

Expected results  Quyển sách đã được xóa và có hiển thị thông báo xóa

thành công

b Quản lý nhập kho:

Decription Quá trình nhân viên tạo phiếu nhập

Set up Sau khi nhận hàng, nhân viên cần tạo 1 phiếu nhập kho

Instructions Nhân viên thực hiện các thao tác sau:

i Nhân viên chọn chức năng “Quản lý phiếu nhập” trên Menu

ii Màn hình “Quản lý phiếu nhập” được mở và nhân viên click nút “Thêm”

iii Màn hình “Phiếu nhập” được mở, nhân viên tiến hành tạo phiếu nhập

iv Nhân viên nhập thông tin phiếu nhập

v Nhân viên tạo chi tiết phiếu nhập bằng việc chọn sách trong danh mục sách và nhập số lượng:

 “Đi qua hoa cúc”

o Tác giả: Nguyễn Nhật Ánh

o Số lượng: 100

 “Oxford yêu thương”

o Tác giả: Dương Thụy

o Số lượng: 300

 “Tôi tài giỏi, bạn cũng thế”

o Tác giả: Adam Khoo

o Số lượng: 100

 “Cấu trúc dữ liệu và giải thuật”

Trang 41

 “Cấu trúc dữ liệu và giải thuật”: Số lượng 50

 “Kỹ thuật lập trình C”: Số lượng 100

Decription Quá trình nhân viên sửa phiếu nhập

Set up Thông tin của 1 phiếu nhập bị sai, nhân viên phải sửa lại thông

iii Màn hình “Phiếu nhập” được mở và thông tin chi tiết của phiếu nhập này được load lên màn hình

iv Nhân viên tiến hành sửa thông tin phiếu nhập:

 “Đi qua hoa cúc”

o Tác giả: Nguyễn Nhật Ánh

o Số lượng: 50 40

 “Oxford yêu thương”

o Tác giả: Dương Thụy

o Số lượng: 300

 “Tôi tài giỏi, bạn cũng thế”

o Tác giả: Adam Khoo

o Số lượng: 100

 “Cấu trúc dữ liệu và giải thuật”

o Tác giả: Đỗ Xuân Lôi

o Số lượng: 50

 “Kỹ thuật lập trình C”

o Tác giả: Dương Thiên Tứ

o Số lượng: 100

v Nhân viên click nút “Lưu” trên màn hình này

vi Hệ thống tiến hành xử lý và hiển thị thông báo nếu có

Trang 42

Decription Quá trình nhân viên xóa 1 phiếu nhập.

Set up Nhân viên muốn xóa 1 phiếu nhập

Instructions i Nhân viên chọn chức năng “Quản lý phiếu nhập” trên

Menu

ii Màn hình “Quản lý phiếu nhập” được mở, nhân viên chọn phiếu nhập cần sửa và click vào cột “Xóa” trên cùng dòng với phiếu nhập được chọn

iii Hệ thống tiến hành xử lý và hiển thị thông báo nếu có.Expected results Phiếu nhập đã được xóa

Ngày đăng: 27/04/2013, 08:10

HÌNH ẢNH LIÊN QUAN

Bảng 2: GiaSach – Giá sách - Xây dựng website và ứng dụng quản lý cho  Hệ thống bán sách
Bảng 2 GiaSach – Giá sách (Trang 6)
Bảng 1: Sach - Sách - Xây dựng website và ứng dụng quản lý cho  Hệ thống bán sách
Bảng 1 Sach - Sách (Trang 6)
Bảng 5: TonKho – Tồn kho - Xây dựng website và ứng dụng quản lý cho  Hệ thống bán sách
Bảng 5 TonKho – Tồn kho (Trang 7)
Bảng 4: ChuDe – Chủ đề - Xây dựng website và ứng dụng quản lý cho  Hệ thống bán sách
Bảng 4 ChuDe – Chủ đề (Trang 7)
Bảng 3: TacGia – Tác giả - Xây dựng website và ứng dụng quản lý cho  Hệ thống bán sách
Bảng 3 TacGia – Tác giả (Trang 7)
Bảng 7: CT_DonDatHang – Chi tiết đơn đặt hàng - Xây dựng website và ứng dụng quản lý cho  Hệ thống bán sách
Bảng 7 CT_DonDatHang – Chi tiết đơn đặt hàng (Trang 8)
Bảng 10: PhieuNhapHang – Phiếu nhập hàng - Xây dựng website và ứng dụng quản lý cho  Hệ thống bán sách
Bảng 10 PhieuNhapHang – Phiếu nhập hàng (Trang 9)
Bảng 8: Admin – Người quản trị hệ thống - Xây dựng website và ứng dụng quản lý cho  Hệ thống bán sách
Bảng 8 Admin – Người quản trị hệ thống (Trang 9)
Bảng 11: CT_PhieuNhapHang – Chi tiết phiếu nhập hàng - Xây dựng website và ứng dụng quản lý cho  Hệ thống bán sách
Bảng 11 CT_PhieuNhapHang – Chi tiết phiếu nhập hàng (Trang 10)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w