diff --git a/app/(main)/admin/(dashboard-layout)/orders/page.jsx b/app/(main)/admin/(dashboard-layout)/orders/page.jsx index fd657d9..bedad21 100644 --- a/app/(main)/admin/(dashboard-layout)/orders/page.jsx +++ b/app/(main)/admin/(dashboard-layout)/orders/page.jsx @@ -1,6 +1,6 @@ 'use client' -import { useGetOrdersQuery } from '@/store/services' +import { useGetOrdersListQuery } from '@/store/services' import { Pagination, @@ -24,7 +24,7 @@ const OrdersHome = () => { const changeRoute = useChangeRoute() //? Get Orders Query - const { data, isSuccess, isFetching, error, isError, refetch } = useGetOrdersQuery({ + const { data, isSuccess, isFetching, error, isError, refetch } = useGetOrdersListQuery({ page, pageSize: 5, }) diff --git a/app/(main)/admin/(dashboard-layout)/reviews/page.jsx b/app/(main)/admin/(dashboard-layout)/reviews/page.jsx index 1b85e28..919062a 100644 --- a/app/(main)/admin/(dashboard-layout)/reviews/page.jsx +++ b/app/(main)/admin/(dashboard-layout)/reviews/page.jsx @@ -1,6 +1,6 @@ 'use client' -import { useGetReviewsQuery } from '@/store/services' +import { useGetReviewsListQuery } from '@/store/services' import { Pagination, @@ -23,7 +23,7 @@ const ReviewsPage = () => { const changeRoute = useChangeRoute() //? Get Review Data - const { data, isError, error, isFetching, refetch, isSuccess } = useGetReviewsQuery({ + const { data, isError, error, isFetching, refetch, isSuccess } = useGetReviewsListQuery({ page, }) diff --git a/app/api/order/list/route.js b/app/api/order/list/route.js new file mode 100644 index 0000000..21eea9b --- /dev/null +++ b/app/api/order/list/route.js @@ -0,0 +1,23 @@ +import { setJson, apiHandler } from '@/helpers/api' +import { getQuery, orderRepo } from '@/helpers' + +const getOrders = apiHandler( + async req => { + const query = getQuery(req) + const page = query.page ? +query.page : 1 + const page_size = query.page_size ? +query.page_size : 10 + const result = await orderRepo.getAll({ + page, + page_size, + }) + return setJson({ + data: result, + }) + }, + { + isJwt: true, + identity: 'admin', + } +) + +export const GET = getOrders diff --git a/app/api/order/route.js b/app/api/order/route.js index 05e3b6a..6a35b0b 100644 --- a/app/api/order/route.js +++ b/app/api/order/route.js @@ -1,5 +1,4 @@ import joi from 'joi' - import { setJson, apiHandler } from '@/helpers/api' import { getQuery, orderRepo } from '@/helpers' @@ -9,13 +8,13 @@ const getOrders = apiHandler( const page = query.page ? +query.page : 1 const page_size = query.page_size ? +query.page_size : 10 const userId = req.headers.get('userId') - const role = req.headers.get('userRole') - const result = await orderRepo.getAll({ - userId, - role, - page, - page_size, - }) + const result = await orderRepo.getAll( + { + page, + page_size, + }, + { user: userId } + ) return setJson({ data: result, }) diff --git a/app/api/reviews/list/route.js b/app/api/reviews/list/route.js new file mode 100644 index 0000000..d61cddc --- /dev/null +++ b/app/api/reviews/list/route.js @@ -0,0 +1,26 @@ +import { getQuery, reviewRepo } from '@/helpers' +import { apiHandler, setJson } from '@/helpers/api' + +const getAll = apiHandler( + async req => { + const query = getQuery(req) + + const page = query.page ? +query.page : 1 + const page_size = query.page_size ? +query.page_size : 10 + + const result = await reviewRepo.getAll({ + page, + page_size, + }) + + return setJson({ + data: result, + }) + }, + { + isJwt: true, + identity: 'admin', + } +) + +export const GET = getAll diff --git a/app/api/reviews/route.js b/app/api/reviews/route.js index 933367b..90a285d 100644 --- a/app/api/reviews/route.js +++ b/app/api/reviews/route.js @@ -5,31 +5,21 @@ import { getQuery, reviewRepo } from '@/helpers' const getAll = apiHandler( async req => { - const userRoot = req.headers.get('userRoot') const userId = req.headers.get('userId') const query = getQuery(req) const page = query.page ? +query.page : 1 const page_size = query.page_size ? +query.page_size : 10 - let result - - if (userRoot === 'true') { - result = await reviewRepo.getAll({ + const result = await reviewRepo.getAll( + { page, page_size, - }) - } else { - result = await reviewRepo.getAll( - { - page, - page_size, - }, - { - user: userId, - } - ) - } + }, + { + user: userId, + } + ) return setJson({ data: result, diff --git a/components/Search.js b/components/Search.js index 1aa8298..ea64396 100644 --- a/components/Search.js +++ b/components/Search.js @@ -7,10 +7,10 @@ export default function Search() { //? Render(s) return ( - <> +
- +
) } diff --git a/components/cart/CartDropdown.jsx b/components/cart/CartDropdown.jsx index 484eebc..a694762 100644 --- a/components/cart/CartDropdown.jsx +++ b/components/cart/CartDropdown.jsx @@ -55,7 +55,7 @@ export default function CartDropdown() { <> {/* Header */}
- {totalItems} 个商品 + {totalItems} 件商品 查看购物车
{/* Itmes */} diff --git a/components/modals/SearchModal.jsx b/components/modals/SearchModal.jsx index dda7b9e..e71c1eb 100644 --- a/components/modals/SearchModal.jsx +++ b/components/modals/SearchModal.jsx @@ -65,7 +65,7 @@ const SearchModal = props => {
- +
{ onChange={handleChange} />
diff --git a/components/product/ProductCard.jsx b/components/product/ProductCard.jsx index 355c418..604bbd5 100644 --- a/components/product/ProductCard.jsx +++ b/components/product/ProductCard.jsx @@ -21,7 +21,7 @@ const ProductCard = props => { }`} > -
+
- + { +const getAll = async ({ page, page_size }, filter) => { await db.connect() - let orders - let ordersLength - if (role !== 'admin') { - orders = await Order.find({ user: userId }) - .populate('user', '-password') - .skip((page - 1) * page_size) - .limit(page_size) - ordersLength = await Order.countDocuments({ user: userId }) - } else { - orders = await Order.find() - .populate('user', '-password') - .skip((page - 1) * page_size) - .limit(page_size) - ordersLength = await Order.countDocuments() - } + const orders = await Order.find(filter) + .populate('user', '-password') + .skip((page - 1) * page_size) + .limit(page_size) + const ordersLength = await Order.countDocuments(filter) await db.disconnect() + return { orders, ordersLength, diff --git a/store/services/order.service.js b/store/services/order.service.js index 33a5ace..2cc5ca3 100644 --- a/store/services/order.service.js +++ b/store/services/order.service.js @@ -2,9 +2,9 @@ import apiSlice from './api' export const orderApiSlice = apiSlice.injectEndpoints({ endpoints: builder => ({ - getOrders: builder.query({ + getOrdersList: builder.query({ query: ({ page = 1, pageSize = 10 }) => ({ - url: `/api/order?page=${page}&page_size=${pageSize}`, + url: `/api/order/list?page=${page}&page_size=${pageSize}`, method: 'GET', }), providesTags: (result, error, arg) => @@ -19,6 +19,13 @@ export const orderApiSlice = apiSlice.injectEndpoints({ : ['Order'], }), + getOrders: builder.query({ + query: ({ page = 1, pageSize = 10 }) => ({ + url: `/api/order?page=${page}&page_size=${pageSize}`, + method: 'GET', + }), + }), + getSingleOrder: builder.query({ query: ({ id }) => ({ url: `/api/order/${id}`, @@ -52,4 +59,5 @@ export const { useGetSingleOrderQuery, useUpdateOrderMutation, useCreateOrderMutation, + useGetOrdersListQuery, } = orderApiSlice diff --git a/store/services/review.service.js b/store/services/review.service.js index 4ef05c0..899dd45 100644 --- a/store/services/review.service.js +++ b/store/services/review.service.js @@ -1,9 +1,9 @@ import apiSlice from './api' export const reviewApiSlice = apiSlice.injectEndpoints({ endpoints: builder => ({ - getReviews: builder.query({ + getReviewsList: builder.query({ query: ({ page }) => ({ - url: `/api/reviews?page=${page}`, + url: `/api/reviews/list?page=${page}`, method: 'GET', }), providesTags: result => @@ -18,6 +18,13 @@ export const reviewApiSlice = apiSlice.injectEndpoints({ : ['Review'], }), + getReviews: builder.query({ + query: ({ page }) => ({ + url: `/api/reviews?page=${page}`, + method: 'GET', + }), + }), + createReview: builder.mutation({ query: ({ body }) => ({ url: `/api/reviews`, @@ -78,4 +85,5 @@ export const { useGetProductReviewsQuery, useEditReviewMutation, useCreateReviewMutation, + useGetReviewsListQuery, } = reviewApiSlice diff --git a/store/services/user.service.js b/store/services/user.service.js index 51bc2ab..48937e3 100644 --- a/store/services/user.service.js +++ b/store/services/user.service.js @@ -8,7 +8,16 @@ export const userApiSlice = apiSlice.injectEndpoints({ method: 'POST', body, }), - invalidatesTags: ['User'], + invalidatesTags: [ + 'User', + 'Review', + 'Details', + 'Order', + 'Product', + 'Category', + 'Slider', + 'Banner', + ], }), getUserInfo: builder.query({ @@ -25,7 +34,16 @@ export const userApiSlice = apiSlice.injectEndpoints({ method: 'POST', body, }), - invalidatesTags: ['User'], + invalidatesTags: [ + 'User', + 'Review', + 'Details', + 'Order', + 'Product', + 'Category', + 'Slider', + 'Banner', + ], }), getUsers: builder.query({ query: ({ page }) => ({