学习记录(day14-changgou后台:查询所有品牌、商品添加)

changgou后台-day02

[TOC]

1、查询所有品牌

Brand

/**
 * @author 庭前云落
 * @date 2019/11/14 16:53
 * @description
 */
@Table(name = "tb_brand")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Brand {
    @Id
    private Integer id;
    private String image;
    private String letter;
    private String name;
    private Integer seq;
}

BrandController

/**
 * @author 庭前云落
 * @date 2019/11/14 16:58
 * @description
 */
@RestController
@RequestMapping("/brand")
public class BrandController {

    @Resource
    private BrandService brandServiceImpl;

    @GetMapping
    public BaseResult selectAll(){
          List<Brand> blist = brandServiceImpl.selectAll();
          return BaseResult.ok("查询成功",blist);
    }
}

BrandServiceImpl

/**
 * @author 庭前云落
 * @date 2019/11/14 16:58
 * @description
 */
@Service
@Transactional
public class BrandServiceImpl implements BrandService {

    @Resource
    private BrandMapper brandMapper;

    @Override
    public List<Brand> selectAll() {
        return brandMapper.selectAll();
    }
}

2、商品添加【重点】

2.1、流程图

2.2、创建JavaBean

Sku

/**
 * @author 庭前云落
 * @date 2019/11/14 17:14
 * @description
 */
@Table(name = "tb_sku")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Sku {
    @Id
    private String id;              //商品id
    private String sn;              //商品条码
    private String name;            //SKU名称

    private Integer price;          //价格(分)
    private Integer num;            //库存数量
    @Column(name="alert_num")
    private Integer alertNum;      //库存预警数量

    private String image;           //商品图片
    private String images;          //商品图片列表
    private Integer weight;         //重量(克)

    @Column(name="create_time")
    private Date createTime;        //创建时间
    @Column(name="update_time")
    private Date updateTime;       //更新时间

    @Column(name="spu_id")
    private String spuId;          //SPUID
    @Column(name="category_id")
    private Integer categoryId;    //类目ID
    @Column(name="category_name")
    private String categoryName;    //类目名称
    
    @Column(name="brand_name")
    private String brandName;      //品牌名称
    private String spec;            //规格
    @Column(name="sale_num")
    private Integer saleNum;       //销量
    
    @Column(name="comment_num")
    private Integer commentNum;    //评论数
    private String status;          //商品状态 1-正常,2-下架,3-删除
}

Spu

/**
 * @author 庭前云落
 * @date 2019/11/14 17:14
 * @description
 */
@Data
@Table(name = "tb_spu")
@AllArgsConstructor
@NoArgsConstructor
public class Spu {
    @Id
    private String id;              //主键
    private String sn;              //货号
    private String name;            //SPU名
    private String caption;         //副标题

    @Column(name="brand_id")
    private Integer brandId;       //品牌ID
    @Column(name="category1_id")
    private Integer category1Id;   //一级分类
    @Column(name="category2_id")
    private Integer category2Id;   //二级分类
    @Column(name="category3_id")
    private Integer category3Id;   //三级分类
    
    @Column(name="template_id")
    private Integer templateId;    //模板ID
    @Column(name="freight_id")
    private Integer freightId;     //运费模板id
    private String image;           //图片
    private String images;          //图片列表
    
    @Column(name="sale_service")
    private String saleService;    //售后服务
    private String introduction;    //介绍
    @Column(name="spec_items")
    private String specItems;      //规格列表
    @Column(name="para_items")
    private String paraItems;      //参数列表
    
    @Column(name="sale_num")
    private Integer saleNum;       //销量
    @Column(name="comment_num")
    private Integer commentNum;    //评论数
    @Column(name="is_marketable")
    private String isMarketable;   //是否上架
    @Column(name="is_enable_spec")
    private String isEnableSpec;  //是否启用规格
    
    @Column(name="is_delete")
    private String isDelete;       //是否删除
    private String status;          //审核状态

    private List<Sku> skuData;      //所有sku信息
}
2.3、工具类配置
2.3.1、配置流程

2.3.2、编写配置

IdWorkerConfig

//启用IdWorkerProperties
@EnableConfigurationProperties(IdWorkerProperties.class)
@Component    //@Service作用一样
public class IdWorkerConfig {

    @Bean
    public IdWorker idWorker(IdWorkerProperties idWorkerProperties){
        return new IdWorker(idWorkerProperties.getWorkerId() ,idWorkerProperties.getDatacenterId());
    }
}

IdWorkerProperties

@ConfigurationProperties(prefix = "sc.worker")//对应yml
@Data
public class IdWorkerProperties {

    private Long  workerId;

    private Long datacenterId;


}
2.4、代码实现

SpuController

/**
 * @author 庭前云落
 * @date 2019/11/15 16:54
 * @description
 */
@RestController
@RequestMapping("/spu")
public class SpuController {

    @Resource
    private SpuService spuServiceImpl;

    @PostMapping
    public BaseResult add(@RequestBody Spu spu){
        spuServiceImpl.add(spu);
        return BaseResult.ok("添加成功");
    }
}

SpuServiceImpl

/**
 * @author 庭前云落
 * @date 2019/11/15 17:00
 * @description
 */
@Service
@Transactional
public class SpuServiceImpl implements SpuService {

    @Resource
    private IdWorker idWorker;

    @Resource
    private SpuMapper spuMapper;

    @Resource
    private SkuMapper skuMapper;

    @Resource
    private CategoryMapper categoryMapper;

    @Resource
    private BrandMapper brandMapper;

    @Override
    public void add(Spu spu) {
        //1、spu
        //1.1自动生成id,全局唯一,使用IdWorker
        spu.setId(idWorker.nextId() + "");
         //1.2其他
        spu.setSaleNum(0);//销量
        spu.setCommentNum(0); //评论数
        spu.setIsEnableSpec("1");//是否启用规格
        spu.setIsDelete("0");//是否删除,逻辑删除,数据库没有真删
        //1.3保存spu
        spuMapper.insertSelective(spu);


        //3.1、查询分类--三级分类
        Category category = categoryMapper.selectByPrimaryKey(spu.getCategory3Id());
        Brand brand = brandMapper.selectByPrimaryKey(spu.getBrandId());

        //2、保存sku
        spu.getSkuData().forEach((sku)->{
           //2.1生成id
           sku.setId(idWorker.nextId()+"");

           //2.2
            sku.setCreateTime(new Date());
            sku.setUpdateTime(new Date());

            //2.3skuid
            sku.setSpuId(spu.getId());

            //2.4分类
            sku.setCategoryId(category.getId());
            sku.setCategoryName(category.getName());

            //2.5品牌
            sku.setBrandName(brand.getName());

            //2.6其他
            sku.setSaleNum(0);
            sku.setCommentNum(0);

            skuMapper.insertSelective(sku);
        });
        // for(Sku sku :spu.getSkuData()){
        // 同上遍历
        // }
    }
}

3、测试

perfect!!!


日常学习的总结,主要是为了自己以后看,当然大家有什么好的建议,欢迎评论留言。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值