我是靠谱客的博主 冷傲哑铃,最近开发中收集的这篇文章主要介绍乐优商城商品分类,分页查询,新增品牌商品分类分页及新增品牌,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

乐优商城商品分类,分页查询,新增品牌

  • 商品分类
  • 分页及新增品牌

商品分类

传递商品分类的父id值,获取属于这个父id的所有分类信息

CategoryController:
CategoryDTO:实体类TbCategory的数据传输对象
根据pid查询返回的是一个集合ResponseEntity<List<>>
ResponseEntity.ok= 200 ; 查询成功时返回时的状态码为200

//根据pid 查询分类信息集合
@RestController
@RequestMapping("/category")
public class CategoryController {
    @Autowired
    private TbCategoryService categoryService;
    @GetMapping("/of/parent")
    public ResponseEntity<List<CategoryDTO>> findCategoryByParentId(@RequestParam(name = "pid")Long parentId){
        return ResponseEntity.ok(categoryService.findCategoryByParentId(parentId));
    }
}

TbCategoryService:接口

/**
 * <p>
 * 商品类目表,类目和商品(spu)是一对多关系,类目与品牌是多对多关系 服务类
 * </p>
 *
 * @author HM
 * @since 2020-01-07
 */
public interface TbCategoryService extends IService<TbCategory> {

    List<CategoryDTO> findCategoryByParentId(Long parentId);
}

TbCategoryServiceImpl:实现类

bean的拷贝 BeanHelper.copyProperties() , BeanHelper.copyWithCollection
前提:属性的名字相同才会拷贝。

/**
 * <p>
 * 商品类目表,类目和商品(spu)是一对多关系,类目与品牌是多对多关系 服务实现类
 * </p>
 *
 * @author HM
 * @since 2020-01-07
 */
@Service
public class TbCategoryServiceImpl extends ServiceImpl<TbCategoryMapper, TbCategory> implements TbCategoryService {
/*根据parentId查询category集合*/
    @Override
    public List<CategoryDTO> findCategoryByParentId(Long parentId) {
        /*查询条件的对象*/
        QueryWrapper<TbCategory> queryWrapper = new QueryWrapper<>();
        /*select * from tb_category where parent_id = ? */
        queryWrapper.eq("parent_id",parentId);
        /*查询集合   this 内置方法*/
        List<TbCategory> tbCategoryList = this.list(queryWrapper);
        /*判断集合是否为空*/
        if (CollectionUtils.isEmpty(tbCategoryList)){
            throw new LyException(ExceptionEnums.CATEGORY_NOT_FOUND);
        }
        return BeanHelper.copyWithCollection(tbCategoryList,CategoryDTO.class);
    }
}

分页及新增品牌

PageResult:

@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageResult<T> {
    private List<T> items;//当前页数据
    private Long total;//总条数
    private Long totalPage; //总页数

}

BrandController:

/*品牌管理*/
@RestController
@RequestMapping("/brand")
public class BrandController {
    @Autowired
    private TbBrandService brandService;

    @GetMapping("/page")
    public ResponseEntity<PageResult<BrandDTO>> findBrandByPage(
            @RequestParam(value = "key" , required = false) String key,
            @RequestParam(value = "page" , defaultValue = "1") Integer page,
            @RequestParam(value = "rows" , defaultValue = "10") Integer rows,
            @RequestParam(value = "sortBy" , required = false) String sortBy,
            @RequestParam(value = "desc" , defaultValue = "false") Boolean desc
    ){
        return ResponseEntity.ok(brandService.findBrandByPage(key,page,rows,sortBy,desc));
    }

//新增品牌
    @PostMapping
    public ResponseEntity<Void> addBrand(TbBrand brand, @RequestParam(name = "cids") List<Long> cids){
        brandService.addBrand(brand,cids);
        return ResponseEntity.status(HttpStatus.CREATED).build();
    }
}

TbBrandService:

/**
 * <p>
 * 品牌表,一个品牌下有多个商品(spu),一对多关系 服务类
 * </p>
 *
 * @author HM
 * @since 2020-01-07
 */
public interface TbBrandService extends IService<TbBrand> {

    PageResult<BrandDTO> findBrandByPage(String key, Integer page, Integer rows, String sortBy, Boolean desc);

    void addBrand(TbBrand brand, List<Long> cids);
}

TbBrandServiceImpl:

/**
 * <p>
 * 品牌表,一个品牌下有多个商品(spu),一对多关系 服务实现类
 * </p>
 *
 * @author HM
 * @since 2020-01-07
 */
@Service
public class TbBrandServiceImpl extends ServiceImpl<TbBrandMapper, TbBrand> implements TbBrandService {

    @Override
    public PageResult<BrandDTO> findBrandByPage(String key, Integer page, Integer rows, String sortBy, Boolean desc) {
//        构造分页的条件
        IPage<TbBrand> page1 = new Page<>(page, rows);
//        构造查询的条件
        QueryWrapper<TbBrand> queryWrapper = new QueryWrapper<>();
//        select * from tb_brand where name like ?  or letter like
        if(!StringUtils.isEmpty(key)){
            queryWrapper.lambda().like(TbBrand::getName,key).or().like(TbBrand::getLetter,key) ;
        }
//        排序
        if(!StringUtils.isEmpty(sortBy)){
            if(!desc){
                queryWrapper.orderByAsc(sortBy);
            }else{
                queryWrapper.orderByDesc(sortBy);
            }

        }
        IPage<TbBrand> brandIPage = this.page(page1, queryWrapper);
        //brandIPage.getRecords()返回的是一个集合
        if(brandIPage == null || CollectionUtils.isEmpty(brandIPage.getRecords())){
            throw new  LyException(ExceptionEnums.BRAND_NOT_FOUND);
        }
//        转对象
        List<BrandDTO> brandDTOList = BeanHelper.copyWithCollection(brandIPage.getRecords(), BrandDTO.class);
//        构造分页结果
        return new PageResult<BrandDTO>(brandDTOList,brandIPage.getTotal(),brandIPage.getPages());
    }

    /*新增品牌*/
    @Autowired
    private TbCategoryBrandService categoryBrandService;

    @Override
    @Transactional(rollbackFor = Exception.class)
    public void addBrand(TbBrand brand, List<Long> cids) {
//        新增品牌
        boolean b = this.save(brand);
        if (!b){
            throw new LyException(ExceptionEnums.INSERT_OPERATION_FAIL);
        }
        Long brandId = brand.getId();
//        新增中间表
        List<TbCategoryBrand> categoryBrandList = new ArrayList<>();
//        构造list包含多个TBCategoryBrand
        for (Long cid : cids) {
            TbCategoryBrand tbCategoryBrand = new TbCategoryBrand();
            tbCategoryBrand.setCategoryId(cid);
            tbCategoryBrand.setBrandId(brandId);
            categoryBrandList.add(tbCategoryBrand);
        }
        boolean b1 = categoryBrandService.saveBatch(categoryBrandList);
        if (!b1){
            throw new LyException(ExceptionEnums.INSERT_OPERATION_FAIL);
        }
    }
}

最后

以上就是冷傲哑铃为你收集整理的乐优商城商品分类,分页查询,新增品牌商品分类分页及新增品牌的全部内容,希望文章能够帮你解决乐优商城商品分类,分页查询,新增品牌商品分类分页及新增品牌所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部