根据商品id查询商品参数信息。
数据库操作直接使用tkMapper的默认方法实现。
业务层实现:
ProductService :
public interface ProductService {
public ResultVO listRecommendProducts();
public ResultVO getProductBasicInfo(String productId);
public ResultVO getProductParamsById(String productId);
}
ProductServiceImpl :
@Service
public class ProductServiceImpl implements ProductService {
@Autowired
private ProductMapper productMapper;
@Autowired
private ProductImgMapper productImgMapper;
@Autowired
private ProductSkuMapper productSkuMapper;
@Autowired
private ProductParamsMapper productParamsMapper;
public ResultVO listRecommendProducts() {
List<ProductVO> productVOS = productMapper.selectRecommendProducts();
ResultVO resultVO = new ResultVO(ResStatus.OK, "success", productVOS);
return resultVO;
}
@Transactional(propagation = Propagation.SUPPORTS)
public ResultVO getProductBasicInfo(String productId) {
//1.商品信息
Example example = new Example(Product.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("productId",productId);
criteria.andEqualTo("productStatus",1);//状态为1表示上架商品
List<Product> products = productMapper.selectByExample(example);
if (products.size()>0){
//2,商品图片
Example example1 = new Example(ProductImg.class);
Example.Criteria criteria1 = example1.createCriteria();
criteria1.andEqualTo("itemId",productId);
List<ProductImg> productImgs = productImgMapper.selectByExample(example1);
//3.商品套餐
Example example2 = new Example(ProductSku.class);
Example.Criteria criteria2 = example2.createCriteria();
criteria2.andEqualTo("productId",productId);
criteria2.andEqualTo("status",1);
List<ProductSku> productSkus = productSkuMapper.selectByExample(example2);
HashMap<String,Object> basicInfo = new HashMap<>();
basicInfo.put("product",products.get(0));
basicInfo.put("productImgs",productImgs);
basicInfo.put("productSkus",productSkus);
return new ResultVO(ResStatus.OK,"success",basicInfo);
}else {
return new ResultVO(ResStatus.NO,"查询的商品不存在",null);
}
}
public ResultVO getProductParamsById(String productId) {
Example example = new Example(ProductParams.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("productId",productId);
List<ProductParams> productParams = productParamsMapper.selectByExample(example);
if (productParams.size()>0){
return new ResultVO(ResStatus.OK,"success",productParams.get(0));
}else {
return new ResultVO(ResStatus.NO,"此商品为三无产品",null);
}
}
}
控制层实现:
ProductController:
@RestController
@CrossOrigin
@RequestMapping("/product")
@Api(value = "提供商品信息相关的接口",tags = "商品管理")
public class ProductController {
@Autowired
private ProductService productService;
@ApiOperation("商品基本信息查询接口")
@GetMapping("/detail-info/{pid}")
public ResultVO getProductBasicInfo(@PathVariable("pid") String pid){
return productService.getProductBasicInfo(pid);
}
@ApiOperation("商品参数信息查询接口")
@GetMapping("/detail-params/{pid}")
public ResultVO getProductParams(@PathVariable("pid") String pid){
return productService.getProductParamsById(pid);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/128105.html