day 8 谷粒商城

会员等级

将前端的六个模块的代码复制到自己的前端代码中

新增一个会员

 

查询品牌表中所有信息 

CategoryBrandRelationController
    /**
     * 1.Controller:处理请求,接收和校验数据
     * 2.Service接收controller传来的数据,进行业务处理
     * 3.controller接收service处理完的数据,封装页面指定的vo
     * @param catId
     * @return
     */
    @GetMapping("/brands/list")
    public R relationBrandsList(@RequestParam(value = "catId",required = true)Long catId){
        List<BrandEntity> vos =  categoryBrandRelationService.getBrandsCatId(catId);
        final List<BrandVo> collect = vos.stream().map(item -> {
            final BrandVo brandVo = new BrandVo();
            brandVo.setBrandId(item.getBrandId());
            brandVo.setBrandName(item.getName());
            return brandVo;
        }).collect(Collectors.toList());
        return R.ok().put("data",collect);
    }
 * 1.Controller:处理请求,接收和校验数据
 * 2.Service接收controller传来的数据,进行业务处理
 * 3.controller接收service处理完的数据,封装页面指定的vo

 CategoryBrandRelationServiceImpl

@Autowired
CategoryBrandRelationDao relationDao;
@Autowired
BrandService brandService;
 @Override
    public List<BrandEntity> getBrandsCatId(Long catId) {
         List<CategoryBrandRelationEntity> catelogId = relationDao.selectList(new QueryWrapper<CategoryBrandRelationEntity>().eq("catelog_id", catId));
         //获取每一个品牌的详细信息
         List<BrandEntity> collect = catelogId.stream().map(item -> {
            Long brandId = item.getBrandId();
            BrandEntity byId = brandService.getById(brandId);
            return byId;
        }).collect(Collectors.toList());
        return collect;
    }

 效果 选择分类后有相应的品牌可以选择

 获取分类下所有属性和分组

@Data
public class AttrGroupWithAttrsVo {

    /**
     * 分组id
     */
    @TableId
    private Long attrGroupId;
    /**
     * 组名
     */
    private String attrGroupName;
    /**
     * 排序
     */
    private Integer sort;
    /**
     * 描述
     */
    private String descript;
    /**
     * 组图标
     */
    private String icon;
    /**
     * 所属分类id
     */
    private Long catelogId;
    private List<AttrEntity> attrs;
}

 AttrGroupController

  @GetMapping("/{catelogId}/withattr")
    public R getAttrGroupWithAttrs(@PathVariable("catelogId")Long catelogId){
        //1.查出当前分类下的所有属性分组
    List<AttrGroupWithAttrsVo> vos = attrGroupService.getAttrGroupWithAttrsByCatelogId(catelogId);
        //2.查询每个属性分组的所有属性
        return R.ok().put("data",vos);
    }
AttrGroupServiceImpl
  /**
     * 根据分类id查出所有的分组以及这些组里面的属性
     * @param catelogId
     * @return
     */
    @Override
    public List<AttrGroupWithAttrsVo> getAttrGroupWithAttrsByCatelogId(Long catelogId) {
        //查询分组信息
         List<AttrGroupEntity> attrGroupEntities = this.list(new QueryWrapper<AttrGroupEntity>().eq("catelog_id", catelogId));
        //查询所有属性
        final List<AttrGroupWithAttrsVo> collect = attrGroupEntities.stream().map(group -> {
            final AttrGroupWithAttrsVo attrsVo = new AttrGroupWithAttrsVo();
            BeanUtils.copyProperties(group, attrsVo);
            final List<AttrEntity> attrs = attrService.getRelationAttr(attrsVo.getAttrGroupId());
            attrsVo.setAttrs(attrs);
            return attrsVo;
        }).collect(Collectors.toList());
        return collect;
    }

暂时取消校验 

 每一个属性分组一定要至少一个关联,否则会报错,太坑了 

 在 showBaseAttrs()方法中添加判断

 

 录入数据

 复制控制台的数据

逆向生成bean,下载生成的bean并放到vo包下 

 Class类名写错了是SpusaveVo

 修改逆向生成个别属性类型

@Data
public class Attr {

    private Long attrId;
    private String attrName;
    private String attrValue;


}
@Data
public class SpuSaveVo {

   private String spuName;
    private String spuDescription;
    private Long catalogId;
    private Long brandId;
    private BigDecimal weight;
    private int publishStatus;
    private List<String> decript;
    private List<String> images;
    private Bounds bounds;
    private List<BaseAttrs> baseAttrs;
    private List<Skus> skus;



}
@Data
public class Skus {

    private List<Attr> attr;
    private String skuName;
    private BigDecimal price;
    private String skuTitle;
    private String skuSubtitle;
    private List<Images> images;
    private List<String> descar;
    private int fullCount;
    private BigDecimal discount;
    private int countStatus;
    private BigDecimal fullPrice;
    private BigDecimal reducePrice;
    private int priceStatus;
    private List<MemberPrice> memberPrice;


}
@Data
public class MemberPrice {

    private Long  id;
    private String name;
    private BigDecimal price;


}
@Data
public class BaseAttrs {

    private Long attrId;
    private String attrValues;
    private int showDesc;


}
@Data
public class Bounds {

    private BigDecimal buyBounds;
    private BigDecimal growBounds;


}
@Data
public class Images {

    private String imgUrl;
    private int defaultImg;


}

新增商品

SpuInfoController
   /**
     * 保存
     */
    @RequestMapping("/save")
    //@RequiresPermissions("product:spuinfo:save")
    public R save(@RequestBody SpuSaveVo vo){
//		spuInfoService.save(spuInfo);
      spuInfoService.saveSpuInfo(vo);
        return R.ok();
    }
保存Spu的描述图片
SpuInfoDescServiceImpl 
  @Override
    public void saveSpuInfoDesc(SpuInfoDescEntity descEntity) {
        this.baseMapper.insert(descEntity);
    }

 保存spu的图片集

批量保存图片---saveBatch需要的是传入SpuImagesEntity的集合

保存图片

 SpuImagesServiceImpl

@Override
    public void saveImages(Long id, List<String> images) {
        if(images==null ||images.size()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值