商品详情接口开发
This commit is contained in:
parent
48b1148192
commit
d1cf736317
@ -0,0 +1,25 @@
|
|||||||
|
package net.jieyuu.config;
|
||||||
|
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import net.jieyuu.interceptor.LoginInterceptor;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@Slf4j
|
||||||
|
public class InterceptorConfig implements WebMvcConfigurer {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addInterceptors(InterceptorRegistry registry) {
|
||||||
|
registry
|
||||||
|
.addInterceptor(new LoginInterceptor())
|
||||||
|
//拦截的路径
|
||||||
|
.addPathPatterns("")
|
||||||
|
//放行的路径
|
||||||
|
.excludePathPatterns("", "");
|
||||||
|
|
||||||
|
WebMvcConfigurer.super.addInterceptors(registry);
|
||||||
|
}
|
||||||
|
}
|
@ -1,21 +1,50 @@
|
|||||||
package net.jieyuu.controller;
|
package net.jieyuu.controller;
|
||||||
|
|
||||||
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiParam;
|
||||||
|
import net.jieyuu.service.ProductService;
|
||||||
|
import net.jieyuu.utils.JsonData;
|
||||||
|
import net.jieyuu.vo.ProductVO;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 前端控制器
|
* 前端控制器
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author jieyuu
|
* @author jieyuu
|
||||||
* @since 2024-08-07
|
* @since 2024-08-07
|
||||||
*/
|
*/
|
||||||
|
@Api("商品模块")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/productDO")
|
@RequestMapping("/api/product/v1")
|
||||||
public class ProductController {
|
public class ProductController {
|
||||||
|
@Autowired
|
||||||
|
private ProductService productService;
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation(value = "分页查询商品列表")
|
||||||
|
@GetMapping("page")
|
||||||
|
public JsonData page(@ApiParam("当前页")
|
||||||
|
@RequestParam(value = "page", defaultValue = "1") int page,
|
||||||
|
@ApiParam("显示多少条")
|
||||||
|
@RequestParam(value = "size", defaultValue = "20") int size) {
|
||||||
|
Map<String, Object> pageResult = productService.page(page, size);
|
||||||
|
return JsonData.buildSuccess(pageResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation("")
|
||||||
|
@GetMapping("detail/{product_id}")
|
||||||
|
public JsonData detail(@ApiParam(value = "商品id", required = true) @PathVariable("product_id") long productId) {
|
||||||
|
ProductVO productVO = productService.findDetailById(productId);
|
||||||
|
|
||||||
|
return JsonData.buildSuccess(productVO);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package net.jieyuu.service;
|
package net.jieyuu.service;
|
||||||
|
|
||||||
import net.jieyuu.model.BannerDO;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
|
||||||
import net.jieyuu.vo.BannerVO;
|
import net.jieyuu.vo.BannerVO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -2,6 +2,9 @@ package net.jieyuu.service;
|
|||||||
|
|
||||||
import net.jieyuu.model.ProductDO;
|
import net.jieyuu.model.ProductDO;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import net.jieyuu.vo.ProductVO;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@ -11,6 +14,20 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||||||
* @author jieyuu
|
* @author jieyuu
|
||||||
* @since 2024-08-07
|
* @since 2024-08-07
|
||||||
*/
|
*/
|
||||||
public interface ProductService extends IService<ProductDO> {
|
public interface ProductService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询商品列表
|
||||||
|
* @param page
|
||||||
|
* @param size
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<String, Object> page(int page,int size);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据id查找商品详情
|
||||||
|
* @param productId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
ProductVO findDetailById(long productId);
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
package net.jieyuu.service.impl;
|
package net.jieyuu.service.impl;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.jieyuu.model.BannerDO;
|
import net.jieyuu.model.BannerDO;
|
||||||
import net.jieyuu.mapper.BannerMapper;
|
import net.jieyuu.mapper.BannerMapper;
|
||||||
import net.jieyuu.service.BannerService;
|
import net.jieyuu.service.BannerService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import net.jieyuu.vo.BannerVO;
|
import net.jieyuu.vo.BannerVO;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -22,6 +22,7 @@ import java.util.stream.Collectors;
|
|||||||
* @since 2024-08-07
|
* @since 2024-08-07
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@Slf4j
|
||||||
public class BannerServiceImpl implements BannerService {
|
public class BannerServiceImpl implements BannerService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
@ -1,20 +1,62 @@
|
|||||||
package net.jieyuu.service.impl;
|
package net.jieyuu.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 lombok.extern.slf4j.Slf4j;
|
||||||
import net.jieyuu.model.ProductDO;
|
import net.jieyuu.model.ProductDO;
|
||||||
import net.jieyuu.mapper.ProductMapper;
|
import net.jieyuu.mapper.ProductMapper;
|
||||||
import net.jieyuu.service.ProductService;
|
import net.jieyuu.service.ProductService;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import net.jieyuu.vo.ProductVO;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 服务实现类
|
* 服务实现类
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author jieyuu
|
* @author jieyuu
|
||||||
* @since 2024-08-07
|
* @since 2024-08-07
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@Slf4j
|
||||||
public class ProductServiceImpl extends ServiceImpl<ProductMapper, ProductDO> implements ProductService {
|
public class ProductServiceImpl extends ServiceImpl<ProductMapper, ProductDO> implements ProductService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ProductMapper productMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> page(int page, int size) {
|
||||||
|
Page<ProductDO> pageInfo = new Page<>(page, size);
|
||||||
|
IPage<ProductDO> productDOIPage = productMapper.selectPage(pageInfo, null);
|
||||||
|
|
||||||
|
Map<String, Object> pageMap = new HashMap<>(3);
|
||||||
|
|
||||||
|
pageMap.put("total_record", productDOIPage.getTotal());
|
||||||
|
pageMap.put("total_page", productDOIPage.getPages());
|
||||||
|
pageMap.put("current_data", productDOIPage.getRecords().stream().map(obj -> beanProcess(obj)).collect(Collectors.toList()));
|
||||||
|
|
||||||
|
return pageMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ProductVO findDetailById(long productId) {
|
||||||
|
ProductDO productDO = productMapper.selectById(productId);
|
||||||
|
|
||||||
|
return beanProcess(productDO);
|
||||||
|
}
|
||||||
|
|
||||||
|
private ProductVO beanProcess(ProductDO obj) {
|
||||||
|
ProductVO productVO = new ProductVO();
|
||||||
|
BeanUtils.copyProperties(obj, productVO);
|
||||||
|
|
||||||
|
return productVO;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,57 @@
|
|||||||
|
package net.jieyuu.vo;
|
||||||
|
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author jieyuu
|
||||||
|
* @since 2024-08-07
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
public class ProductVO {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标题
|
||||||
|
*/
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 封面图
|
||||||
|
*/
|
||||||
|
@JsonProperty("cover_img")
|
||||||
|
private String coverImg;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 详情
|
||||||
|
*/
|
||||||
|
private String detail;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 老价格
|
||||||
|
*/
|
||||||
|
@JsonProperty("old_price")
|
||||||
|
private BigDecimal oldPrice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新价格
|
||||||
|
*/
|
||||||
|
private BigDecimal price;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 库存
|
||||||
|
*/
|
||||||
|
private Integer stock;
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user