一、商品管理-SPU检索
1.1 需求描述
1.1.1 选择商品维护 -> spu管理,我们可以根据分类,品牌,状态以及检索关键字进行查询spu信息。点击查询前端会发送这些字段信息并且这些查询字段是并且的关系。界面如下图所示。
1.2 代码实现
1.2.1 SpuInfoController 层代码
/**
* spu查询列表
* params参数会带上catelogId,brandId,status,key
* @param params
* @return
*/
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = spuInfoService.queryPageByCondition(params);
return R.ok().put("page", page);
}
1.2.2 SpuInfoService 层代码
public interface SpuInfoService extends IService<SpuInfoEntity> {
PageUtils queryPage(Map<String, Object> params);
void saveSpuInfo(SpuSaveVo vo);
void saveBaseSpuInfo(SpuInfoEntity infoEntity);
PageUtils queryPageByCondition(Map<String, Object> params);
}
1.2.3 SpuInfoServiceImpl 层代码
@Override
public PageUtils queryPageByCondition(Map<String, Object> params) {
QueryWrapper<SpuInfoEntity> wrapper = new QueryWrapper<>();
String key = (String) params.get("key");
if (!StringUtils.isEmpty(key)){
wrapper.and((w)->{
w.eq("id",key).or().like("spu_name",key);
});
}
//status=1 and (id=1 or spu_name like xxx)
String status = (String) params.get("status");
if (!StringUtils.isEmpty(status)){
wrapper.eq("publish_status",status);
}
String brandId = (String) params.get("brandId");
if (!StringUtils.isEmpty(brandId)&&!"0".equalsIgnoreCase(brandId)){
wrapper.eq("brand_id",brandId);
}
String catelogId = (String) params.get("catelogId");
if (!StringUtils.isEmpty(catelogId)&&!"0".equalsIgnoreCase(catelogId)){
wrapper.eq("catalog_id",catelogId);
}
// status: 0 key: 华为 brandId: 4 catelogId: 225
IPage<SpuInfoEntity> page = this.page(
new Query<SpuInfoEntity>().getPage(params),
wrapper
);
return new PageUtils(page);
}
创建日期和修改日期按指定的日期格式展示
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
二、商品管理-SKU检索
2.1 需求描述
2.1.1 选择商品维护 -> 商品管理,我们可以根据分类,品牌,价格区间以及检索关键字进行查询sku信息。点击查询前端会发送这些字段信息并且这些查询字段是并且的关系。界面如下图所示。
2.2 代码实现
@Override
public PageUtils queryPageByCondition(Map<String, Object> params) {
/**
* key:
* catelogId: 0
* brandId: 0
* min: 0
* max: 0
*/
QueryWrapper<SkuInfoEntity> queryWrapper = new QueryWrapper<>();
String key = (String) params.get("key");
if (!StringUtils.isEmpty(key)){
queryWrapper.and((wrapper)->{
queryWrapper.eq("sku_id",key).or().like("sku_name",key);
});
}
String catelogId = (String) params.get("catelogId");
if (!StringUtils.isEmpty(catelogId)&&!"0".equalsIgnoreCase(catelogId)){
queryWrapper.eq("catalog_id",catelogId);
}
String brandId = (String) params.get("brandId");
if (!StringUtils.isEmpty(brandId)&&!"0".equalsIgnoreCase(brandId)){
queryWrapper.eq("brand_id",brandId);
}
String min = (String) params.get("min");
if (!StringUtils.isEmpty(min)){
queryWrapper.ge("price",min);
}
String max = (String) params.get("max");
if (!StringUtils.isEmpty(max)){
try {
BigDecimal bigDecimal = new BigDecimal(max);
if (bigDecimal.compareTo(new BigDecimal("0"))==1){
queryWrapper.le("price",max);
}
}catch (Exception e){
}
}
IPage<SkuInfoEntity> page = this.page(
new Query<SkuInfoEntity>().getPage(params),
queryWrapper
);
return new PageUtils(page);
}