diff --git a/waynboot-common/src/main/java/com/wayn/common/core/mapper/shop/GoodsMapper.java b/waynboot-common/src/main/java/com/wayn/common/core/mapper/shop/GoodsMapper.java
index ffacbc7..99e9683 100644
--- a/waynboot-common/src/main/java/com/wayn/common/core/mapper/shop/GoodsMapper.java
+++ b/waynboot-common/src/main/java/com/wayn/common/core/mapper/shop/GoodsMapper.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wayn.common.core.domain.shop.Goods;
+import org.apache.ibatis.annotations.Param;
/**
*
@@ -15,5 +16,5 @@ import com.wayn.common.core.domain.shop.Goods;
*/
public interface GoodsMapper extends BaseMapper {
- IPage selectGoodsListPage(Page page, Goods goods);
+ IPage selectGoodsListPage(Page page,Goods goods);
}
diff --git a/waynboot-mobile-api/src/main/java/com/wayn/mobile/api/controller/HomeController.java b/waynboot-mobile-api/src/main/java/com/wayn/mobile/api/controller/HomeController.java
index c817208..4ee686a 100644
--- a/waynboot-mobile-api/src/main/java/com/wayn/mobile/api/controller/HomeController.java
+++ b/waynboot-mobile-api/src/main/java/com/wayn/mobile/api/controller/HomeController.java
@@ -1,11 +1,17 @@
package com.wayn.mobile.api.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.wayn.common.base.BaseController;
import com.wayn.common.core.domain.shop.Banner;
import com.wayn.common.core.domain.shop.Category;
+import com.wayn.common.core.domain.shop.Goods;
+import com.wayn.common.core.domain.system.Dict;
import com.wayn.common.core.service.shop.IBannerService;
import com.wayn.common.core.service.shop.ICategoryService;
+import com.wayn.common.core.service.shop.IGoodsService;
import com.wayn.common.util.R;
+import com.wayn.mobile.api.service.HomeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -16,35 +22,20 @@ import java.util.concurrent.*;
@RestController
@RequestMapping("home")
-public class HomeController {
+public class HomeController extends BaseController {
@Autowired
- private IBannerService iBannerService;
-
- @Autowired
- private ICategoryService iCategoryService;
+ private HomeService homeService;
@PostMapping("index")
- public R getInfo() {
- R success = R.success();
- ThreadPoolExecutor poolExecutor = new ThreadPoolExecutor(10, 10,
- 0L, TimeUnit.MILLISECONDS,
- new LinkedBlockingQueue<>(), r -> new Thread(r,"首页线程"));
- Callable> bannerCall = () -> iBannerService.list(new QueryWrapper().eq("status", 0).orderByAsc("sort_order"));
- Callable> categoryCall = () -> iCategoryService.list(new QueryWrapper().eq("level", "L1").orderByAsc("sort_order"));
- FutureTask> bannerTask = new FutureTask<>(bannerCall);
- poolExecutor.submit(bannerTask);
- FutureTask> categoryTask = new FutureTask<>(categoryCall);
- poolExecutor.submit(categoryTask);
- try {
- success.add("bannerList", bannerTask.get());
- success.add("categoryList", categoryTask.get());
- } catch (InterruptedException | ExecutionException e) {
- e.printStackTrace();
- } finally {
- poolExecutor.shutdown();
- }
- return success;
+ public R getHomeIndex() {
+ return homeService.getHomeIndexData();
+ }
+
+ @PostMapping("goodsList")
+ public R getGoodsList() {
+ Page page = getPage();
+ return homeService.listGoodsPage(page);
}
}
diff --git a/waynboot-mobile-api/src/main/java/com/wayn/mobile/api/service/HomeService.java b/waynboot-mobile-api/src/main/java/com/wayn/mobile/api/service/HomeService.java
new file mode 100644
index 0000000..b9a474a
--- /dev/null
+++ b/waynboot-mobile-api/src/main/java/com/wayn/mobile/api/service/HomeService.java
@@ -0,0 +1,18 @@
+package com.wayn.mobile.api.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.wayn.common.core.domain.shop.Goods;
+import com.wayn.common.util.R;
+
+public interface HomeService {
+
+ /**
+ * 获取首月数据(bannerList,category List,newGoodsList,hotGoodsList)
+ * @return
+ */
+ R getHomeIndexData();
+
+ R getGoodsList();
+
+ R listGoodsPage(Page page);
+}
diff --git a/waynboot-mobile-api/src/main/java/com/wayn/mobile/api/service/impl/HomeServiceImpl.java b/waynboot-mobile-api/src/main/java/com/wayn/mobile/api/service/impl/HomeServiceImpl.java
new file mode 100644
index 0000000..b316cb2
--- /dev/null
+++ b/waynboot-mobile-api/src/main/java/com/wayn/mobile/api/service/impl/HomeServiceImpl.java
@@ -0,0 +1,83 @@
+package com.wayn.mobile.api.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.wayn.common.base.BaseController;
+import com.wayn.common.core.domain.shop.Banner;
+import com.wayn.common.core.domain.shop.Category;
+import com.wayn.common.core.domain.shop.Goods;
+import com.wayn.common.core.service.shop.IBannerService;
+import com.wayn.common.core.service.shop.ICategoryService;
+import com.wayn.common.core.service.shop.IGoodsService;
+import com.wayn.common.util.R;
+import com.wayn.mobile.api.service.HomeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.concurrent.*;
+
+@Service
+public class HomeServiceImpl implements HomeService {
+ @Autowired
+ private IBannerService iBannerService;
+
+ @Autowired
+ private ICategoryService iCategoryService;
+
+ @Autowired
+ private IGoodsService IGoodsService;
+
+ @Override
+ public R getHomeIndexData() {
+ R success = R.success();
+ ThreadPoolExecutor poolExecutor = new ThreadPoolExecutor(10, 10,
+ 0L, TimeUnit.MILLISECONDS,
+ new LinkedBlockingQueue<>(), r -> new Thread(r, "首页线程"));
+ Callable> bannerCall = () -> iBannerService.list(new QueryWrapper().eq("status", 0).orderByAsc("sort_order"));
+ Callable> categoryCall = () -> iCategoryService.list(new QueryWrapper().eq("level", "L1").orderByAsc("sort_order"));
+ Callable> newGoodsCall = () -> IGoodsService.list(new QueryWrapper()
+ .eq("is_new", true)
+ .eq("is_on_sale", true)
+ .orderByAsc("create_time")
+ .last("limit 6"));
+ Callable> hotGoodsCall = () -> IGoodsService.list(new QueryWrapper()
+ .eq("is_hot", true)
+ .eq("is_on_sale", true)
+ .orderByAsc("create_time")
+ .last("limit 6"));
+ FutureTask> bannerTask = new FutureTask<>(bannerCall);
+ FutureTask> categoryTask = new FutureTask<>(categoryCall);
+ FutureTask> newGoodsTask = new FutureTask<>(newGoodsCall);
+ FutureTask> hotGoodsTask = new FutureTask<>(hotGoodsCall);
+ poolExecutor.submit(bannerTask);
+ poolExecutor.submit(categoryTask);
+ poolExecutor.submit(newGoodsTask);
+ poolExecutor.submit(hotGoodsTask);
+ try {
+ success.add("bannerList", bannerTask.get());
+ success.add("categoryList", categoryTask.get());
+ success.add("newGoodsList", newGoodsTask.get());
+ success.add("hotGoodsList", hotGoodsTask.get());
+ } catch (InterruptedException | ExecutionException e) {
+ e.printStackTrace();
+ } finally {
+ poolExecutor.shutdown();
+ }
+ return success;
+ }
+
+ @Override
+ public R getGoodsList() {
+
+ return null;
+ }
+
+ @Override
+ public R listGoodsPage(Page page) {
+ IPage goodsIPage = IGoodsService.listPage(page, new Goods());
+ return R.success().add("data", goodsIPage.getRecords());
+ }
+
+}