概述
乐优商城商品分类,分页查询,新增品牌
- 商品分类
- 分页及新增品牌
商品分类
传递商品分类的父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);
}
}
}
最后
以上就是冷傲哑铃为你收集整理的乐优商城商品分类,分页查询,新增品牌商品分类分页及新增品牌的全部内容,希望文章能够帮你解决乐优商城商品分类,分页查询,新增品牌商品分类分页及新增品牌所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复