@Slf4j
@RequestMapping("/roducts")
@RestController
@CrossOrigin
public class ProductsController {
@Resource
private ProductsService productsService;
@Resource
private RedisService redisService;
/**
* 查询所有产品信息
* @param pageNum,
* @param pageSize
* @return
*/
@GetMapping("/getAllProducts")
public Result getAllProducts(@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize){
//获取缓存信息
List<Products> list = new ArrayList<>();
PageInfo pageInfo = null;
String str = redisService.getValue("allInfo_"+pageNum);
if(str!=null){
list = JSONArray.parseArray(str,Products.class);
int count = Integer.parseInt(redisService.getValue("allcount"));
pageInfo = new PageInfo(list);
pageInfo.setTotal(count);
}else {
PageHelper.startPage(pageNum,pageSize);
list = productsService.getAllProducts();
pageInfo = new PageInfo(list);
redisService.putValue("allInfo_"+pageInfo,JSONArray.toJSONString(list),30);
redisService.putValue("allCount",pageInfo.getTotal()+"");
}
return Result.success(pageInfo);
}
/**
* 新增产品信息
*/
@PostMapping("/addProducts")
public Result<?> addProducts(@RequestBody Products products){
productsService.addProducts(products);
log.info("*****"+products.toString());
return Result.success(products);
}
/**
* 搜索框查询,根据产品名称查询
*/
@RequestMapping("/getAllProductsInfoByName")
public Result<?> getAllProductsInfoByName(@RequestParam(defaultValue = "1") Integer pageNum,
@RequestParam(defaultValue = "10") Integer pageSize,
@RequestBody ProductsVo productsVo){
log.info(pageNum.toString());
System.out.println(productsVo.getProductName());
PageHelper.startPage(pageNum,pageSize);
List<Products> list = productsService.getAllProductsInfoByName(productsVo.getProductName());
PageInfo pageInfo = new PageInfo(list);
log.info(pageInfo.toString());
System.out.println(pageInfo.toString());
return Result.success(pageInfo);
}
/**
* 修改产品信息
*/
@PostMapping("/updateProducts")
public Result<?> updateProducts(@RequestBody UpdateProductsVo updateProductsVo){
log.info(updateProductsVo.toString());
Products products = new Products();
BeanUtils.copyProperties(updateProductsVo,products);
boolean flag = productsService.updateProducts(products);
if (flag){
return Result.success();
}else {
return Result.failure();
}
}
/**
* 删除产品信息
*/
@GetMapping("/delProducts/{id}")
public Result delProducts(@PathVariable Integer id){
log.info(id.toString());
boolean flag = productsService.delProducts(id);
if (flag){
redisService.deleteValue("user_"+id);
return Result.success();
}else {
return Result.failure();
}
}
}