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!!!
日常学习的总结,主要是为了自己以后看,当然大家有什么好的建议,欢迎评论留言。