谷粒商城P85问题记录—发布商品时规格参数不显示
这一p有2个问题,折腾了很久
问题1 :数据库表中不存在 valueType这个键
但是接口文档里是需要提供这个键(而且是不能为null)
所以需要:
1、在数据库表pms_attr添加value_type字段,类型为tinyint就行。
2、在代码AttyEntity.java、AttrVo.java中各添加:private Integer valueType,
3、在AttrDao.xml中添加:
<result property="valueType" column="value_type"/>
问题2 :返回的分组中个别组的关联属性(attrs)可能为null
看了接口文档的要求,只需要在后端的实现类进行判断剔除attrs为null的组
**
* 根据分类id查出所有分组和分组属性
* @param catelogId
* @return
*/
@Override
public List<AttrGroupWithAttrsVo> getAttrGroupWithAttrsByCatelogId(Long catelogId) {
//获得在属性分组表中的所有属于当前分类的实体
List<AttrGroupEntity> attrGroupEntities = this.list(new QueryWrapper<AttrGroupEntity>().eq("catelog_id", catelogId));
List<AttrGroupWithAttrsVo> collect = attrGroupEntities.stream().map((group) -> {
AttrGroupWithAttrsVo attrsVo = new AttrGroupWithAttrsVo();
BeanUtils.copyProperties(group,attrsVo);
//当前分组下的所有属性(没有"valueType": 0,)
List<AttrEntity> attr = attrService.getRelationAttr(attrsVo.getAttrGroupId());
attrsVo.setAttrs(attr);
if ( attr!=null){
return attrsVo;
}
return null;
}).collect(Collectors.toList());
collect.removeIf(Objects::isNull);
return collect;
}