答辩问使用spring boot和 vue如何实现商品库存的减少具体代码
时间: 2023-06-26 22:09:24 浏览: 47
要实现商品库存的减少,可以使用Spring Boot作为后端框架,Vue作为前端框架。
具体代码如下:
后端代码:
```
@RestController
@RequestMapping("/api")
public class ProductController {
@Autowired
private ProductService productService;
@PostMapping("/products/{productId}/reduce")
public ResponseEntity<?> reduceProductStock(@PathVariable Long productId, @RequestBody Integer quantity) {
Product product = productService.getProductById(productId);
if (product == null) {
return ResponseEntity.notFound().build();
}
if (quantity > product.getStock()) {
return ResponseEntity.badRequest().body("库存不足");
}
product.setStock(product.getStock() - quantity);
productService.saveProduct(product);
return ResponseEntity.ok().build();
}
}
```
前端代码:
```
<template>
<div>
<input type="number" v-model="quantity" />
<button @click="reduceStock">减少库存</button>
</div>
</template>
<script>
import axios from 'axios';
export default {
name: 'Product',
data() {
return {
productId: 1,
quantity: 1
};
},
methods: {
reduceStock() {
axios.post(`/api/products/${this.productId}/reduce`, this.quantity)
.then(() => {
alert('减少库存成功');
})
.catch(error => {
alert(error.response.data);
});
}
}
};
</script>
```
这段代码中,我们在ProductController中定义了一个减少商品库存的接口,前端页面中有一个input元素用于输入减少的数量,以及一个按钮用于触发减少库存的操作。当点击按钮时,前端会向后端发送一个POST请求,请求路径为 `/api/products/{productId}/reduce`,其中productId表示要减少库存的商品ID,quantity表示要减少的数量。后端接收到请求后,会检查该商品是否存在并且库存是否足够,如果满足条件,就减少库存并保存。如果库存不足,则返回错误信息。前端在接收到响应后,如果减少库存成功,则弹出成功提示,否则弹出错误提示。