用户会根据分类树中的分类的名称,查询它需要的商品类别
点击商品分类名称时,实际上我们获得了它的分类id(categoryId)
我们可以根据这个id到pms_spu表中查询商品信息
并进行分页显示
这个查询目标仍然为mall-pms数据库,是product模块管理的范围
所以我们在业务逻辑层中编写利用dubbo调用即可,还是不需要写mapper
下面就在业务逻辑层中创建FrontProductServiceImpl
- @Service
- @Slf4j
- public class FrontProductServiceImpl implements IFrontProductService {
-
- @DubboReference
- private IForFrontSpuService dubboSpuService;
-
- @Override
- public JsonPage
listSpuByCategoryId(Long categoryId, Integer page, Integer pageSize) { - // IForFrontSpuService实现类中已经完成了分页查询的细节,我们直接调用即可
- JsonPage
list= - dubboSpuService.listSpuByCategoryId(categoryId,page,pageSize);
- // 返回 list!!!
- return list;
- }
-
- @Override
- public SpuStandardVO getFrontSpuById(Long id) {
- return null;
- }
-
- @Override
- public List
getFrontSkusBySpuId(Long spuId) { - return null;
- }
-
- @Override
- public SpuDetailStandardVO getSpuDetail(Long spuId) {
- return null;
- }
-
- @Override
- public List
getSpuAttributesBySpuId(Long spuId) { - return null;
- }
- }
业务逻辑层实现类先只实现按分类id分页查询的功能即可
创建FrontSpuController编写调用代码如下
- @RestController
- @RequestMapping("/front/spu")
- @Api(tags = "前台商品spu模块")
- public class FrontSpuController {
- @Autowired
- private IFrontProductService frontProductService;
-
- // localhost:10004/front/spu/list/3
- @GetMapping("/list/{categoryId}")
- @ApiOperation("根据分类id分页查询spu列表")
- @ApiImplicitParams({
- @ApiImplicitParam(value = "分类id",name="categoryId",example = "3",
- required = true,dataType = "long"),
- @ApiImplicitParam(value = "页码",name="page",example = "1",
- required = true,dataType = "int"),
- @ApiImplicitParam(value = "每页条数",name="pageSize",example = "2",
- required = true,dataType = "int")
- })
- public JsonResult
> listSpuByPage( - @PathVariable Long categoryId, Integer page,Integer pageSize){
- JsonPage
jsonPage= - frontProductService.listSpuByCategoryId(categoryId,page,pageSize);
- return JsonResult.ok(jsonPage);
- }
-
-
- }
然后在Nacos\Seata\Redis启动的前提下
顺序启动Product\Front
进行测试
http://localhost:10004/doc.html
上面章节完成了查询spu列表
在商品列表中选中商品后,会显示这个商品的详情信息
商品详情页我们需要显示的信息包括
继续编写FrontProductServiceImpl其他没有实现的方法
- @Service
- @Slf4j
- public class FrontProductServiceImpl implements IFrontProductService {
-
- @DubboReference
- private IForFront