复习概念spu和sku
spu = Standard Product Unit(标准产品单位)
SPU
是商品信息聚合
的最小单位,是一组可复用
、易检索
的标准化信息
的集合,该集合描述了一个产品的特性。SPU
多见于后台商品的管理。通俗的来说,可以把SPU
理解为商品中的款
,例如在电商网站输入iPhone,iPhoneXS就是一款商品。
sku = stock keeping unit(库存量单位)
SKU
是库存进出计量
的单位,SKU是物理上不可分割的最小存货单元
。SKU
多见于前台商品的编号。通俗的来说,可以把SPU
理解为商品中的件
,例如在电商网站购买iPhoneXS时选择的128G、土豪金
和64G、土豪金
是不同的SKU。
参考链接:https://www.jianshu.com/p/830e03816632
查询商品库存
接口文档
02、查询商品库存
Websocket测试
GET
/ware/waresku/list
接口描述
请求参数
{
page: 1,//当前页码
limit: 10,//每页记录数
sidx: 'id',//排序字段
order: 'asc/desc',//排序方式
wareId: 123,//仓库id
skuId: 123//商品id
}
分页数据
响应数据
{
"msg": "success",
"code": 0,
"page": {
"totalCount": 0,
"pageSize": 10,
"totalPage": 0,
"currPage": 1,
"list": [{
"id": 1,
"skuId": 1,
"wareId": 1,
"stock": 1,
"skuName": "dd",
"stockLocked": 1
}]
}
}
控制层
@RestController // RESTful风格,方法返回值类型被注解@ResponseBody修饰,表示返回的是json数据而不是视图页面
@RequestMapping("ware/waresku")
public class WareSkuController {
@Autowired // 区分@Resource
private WareSkuService wareSkuService;
@RequestMapping("/list")
//@RequiresPermissions("ware:waresku:list")
public R list(@RequestParam Map<String, Object> params){//@RequestParam区分@RequestBody
PageUtils page = wareSkuService.queryPage(params);
return R.ok().put("page", page);
}
//...
}
业务层接口
public interface WareSkuService extends IService<WareSkuEntity> {
PageUtils queryPage(Map<String, Object> params);
}
业务层实现
@Service("wareSkuService")
public class WareSkuServiceImpl extends ServiceImpl<WareSkuDao, WareSkuEntity> implements WareSkuService {
// ServiceImpl<M extends BaseMapper<T>, T> implements IService<T>
@Override
public PageUtils queryPage(Map<String, Object> params) {
/**
* skuId: 1
* wareId: 2
*/
QueryWrapper<WareSkuEntity> queryWrapper = new QueryWrapper<>();
String skuId = (String) params.get("skuId");
if(!StringUtils.isEmpty(skuId)){
queryWrapper.eq("sku_id",skuId);
}
String wareId = (String) params.get("wareId");
if(!StringUtils.isEmpty(wareId)){
queryWrapper.eq("ware_id",wareId);
}
// mybatis-plus 方法, 自动生成
IPage<WareSkuEntity> page = this.page(
new Query<WareSkuEntity>().getPage(params),
queryWrapper
);
return new PageUtils(page);
}
查询采购需求
03、查询采购需求
Websocket测试
GET
/ware/purchasedetail/list
接口描述
请求参数
{
page: 1,//当前页码
limit: 10,//每页记录数
sidx: 'id',//排序字段
order: 'asc/desc',//排序方式
key: '华为',//检索关键字
status: 0,//状态
wareId: 1,//仓库id
}
分页数据
响应数据
{
"msg": "success",
"code": 0,
"page": {
"totalCount": 0,
"pageSize": 10,
"totalPage": 0,
"currPage": 1,
"list": [{
"id": 2,
"purchaseId": 1,
"skuId": 1,
"skuNum": 2,
"skuPrice": 22.0000,
"wareId": 1,
"status": 1
}]
}
}
@RestController
@RequestMapping("ware/purchasedetail")
public class PurchaseDetailController {
@Autowired
private PurchaseDetailService purchaseDetailService;
@RequestMapping("/list")
//@RequiresPermissions("ware:purchasedetail:list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = purchaseDetailService.queryPage(params);
return R.ok().put("page", page);
}
//。。。
}
public interface PurchaseDetailService extends IService<PurchaseDetailEntity> {
PageUtils queryPage(Map<String, Object> params);
//List<PurchaseDetailEntity> listDetailByPurchaseId(Long id);
}
@Service("purchaseDetailService")
public class PurchaseDetailServiceImpl extends ServiceImpl<PurchaseDetailDao, PurchaseDetailEntity> implements PurchaseDetailService {
@Override
public PageUtils queryPage(Map<String, Object> params) {
/**
* status: 0,//状态
* wareId: 1,//仓库id
*/
QueryWrapper<PurchaseDetailEntity> queryWrapper = new QueryWrapper<>();
String key = (String) params.get("key");
if(!StringUtils.isEmpty(key)){
//purchase_id sku_id
queryWrapper.and(w->{
w.eq("purchase_id",key).or().eq("sku_id",key);
});
}
String status = (String) params.get("status");
if(!StringUtils.isEmpty(status)){
//purchase_id sku_id
queryWrapper.eq("status",status);
}
String wareId = (String) params.get("wareId");
if(!StringUtils.isEmpty(wareId)){
//purchase_id sku_id
queryWrapper.eq("ware_id",wareId);
}
IPage<PurchaseDetailEntity> page = this.page(
new Query<PurchaseDetailEntity>().getPage(params),
queryWrapper
);
return new PageUtils(page);
}