// 新增或者更新 @PostMapping public Result save(@RequestBody Collect collect) { User currentUser = TokenUtils.getCurrentUser(); try { collect.setUserid(TokenUtils.getCurrentUser().getId()); collectService.saveOrUpdate(collect); } catch (Exception e) { collectService.remove(new UpdateWrapper<Collect>().eq("goodsid", collect.getGoodsid()) .eq("userid", currentUser.getId())); } return Result.success(); }
时间: 2023-06-20 08:07:57 浏览: 54
这是一个使用 Spring Boot 框架编写的 RESTful API 接口,使用 @PostMapping 注解来处理 HTTP POST 请求。该接口用于新增或更新一个收藏记录,接收一个 Collect 对象作为请求体。通过 TokenUtils 获取当前用户,将当前用户的 ID 设置为 Collect 对象的 userid 属性。接着调用 collectService 的 saveOrUpdate 方法保存或更新收藏记录。如果保存或更新过程中出现异常,将会删除之前保存的相同商品ID和用户ID的收藏记录。最后返回一个 Result 对象表示操作成功。
相关问题
@PostMapping("/import") public Result imp(MultipartFile file) throws Exception { InputStream inputStream = file.getInputStream(); ExcelReader reader = ExcelUtil.getReader(inputStream); // 通过 javabean的方式读取Excel内的对象,但是要求表头必须是英文,跟javabean的属性要对应起来 List<Collect> list = reader.readAll(Collect.class); collectService.saveBatch(list); return Result.success(); } private User getUser() { return TokenUtils.getCurrentUser(); } }
这段代码的作用是通过 POST 方式导入 Excel 表格数据,并将其转化为 Collect 对象,并将其批量保存到数据库中。
具体来说,这个方法的参数是一个 MultipartFile 类型的文件,通过调用它的 getInputStream() 方法,可以获取到上传文件的 InputStream 流。然后通过 ExcelUtil 工具类中的 getReader() 方法获取到 ExcelReader 对象,利用该对象的 readAll() 方法将 Excel 中的数据转化为 Collect 对象,并存储在一个 List 集合中。最后,调用 collectService.saveBatch() 方法将 Collect 对象批量保存到数据库中。
此外,该类中还定义了一个 getUser() 方法,用于获取当前请求的用户信息。
// 收藏书评 @ResponseBody @RequestMapping("/add") public Map<String, Object> add (@RequestBody int id, HttpSession session) { User user = (User) session.getAttribute(WebConstant.SESSION_KEY_USER); Collect collect = new Collect(); collect.setDebookId(id); collect.setUserId(user.getId()); collectService.insertSelective(collect); // 收藏量 + 1 debookService.updateCollectCount(id); return new ResponseBean().getResponseMap(); }
这段代码是一个Spring MVC的控制器方法,使用了@RequestMapping注解映射HTTP请求URL为"/add",并且使用了@ResponseBody注解来将返回值转换为JSON格式的响应数据。该方法接收一个int类型的id参数和一个HttpSession对象作为参数,其中id表示要收藏的书籍的id,HttpSession对象则用于获取当前登录的用户信息。该方法首先从session中获取当前用户信息,然后创建一个Collect对象并设置相关属性,再调用collectService的insertSelective方法将该Collect对象插入到数据库中。接着调用debookService的updateCollectCount方法将该书籍的收藏量加1。最后返回一个ResponseBean对象的响应Map,表示操作成功。