这是service: public WmsStoreInterOrder getLatestInterOrder(String phone) { // 根据phone查询对应的SysUser类的id QueryWrapper<SysUser> userQueryWrapper = new QueryWrapper<>(); userQueryWrapper.eq("phone", phone); SysUser user = sysUserService.getOne(userQueryWrapper); Long userId = user.getId(); // 查询roleId等于4的人 QueryWrapper<SysUserRoleRel> relQueryWrapper = new QueryWrapper<>(); relQueryWrapper.eq("roleId", 7105332176376758296L); List<SysUserRoleRel> relList = sysUserRoleRelService.list(relQueryWrapper); // 获取符合条件的userId列表 List<Long> userIdList = new ArrayList<>(); for (SysUserRoleRel rel : relList) { if (rel.getUserId().equals(userId)) { userIdList.add(rel.getUserId()); } } // 查询最新的WmsStoreInterOrder QueryWrapper<WmsStoreInterOrder> orderQueryWrapper = new QueryWrapper<>(); orderQueryWrapper.select("*") .orderByDesc("inter_time") .last("limit 1"); return getOne(orderQueryWrapper); } 这是controller: @PostMapping("/latestInterOrder") @ApiOperation(value = "仓库管理员获取消息通知") public GlobalResponse<WmsStoreInterOrder> getLatestInterOrder(@RequestParam String phone) { WmsStoreInterOrder latestInterOrder = wmsStoreInterOrderService.getLatestInterOrder(phone); return GlobalResponse.success(latestInterOrder); } 我穿了参数,但是报错org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'phone' is not present
时间: 2024-04-26 17:20:53 浏览: 5
根据你提供的代码,看起来你的请求参数是正确的,但是还是出现了缺少参数的异常。你可以检查一下以下几个方面:
1. 确认你发送的请求类型是POST类型,并且请求的URL是正确的;
2. 确认你发送的请求中的参数名是"phone",并且参数值是一个非空字符串;
3. 检查一下你的请求头是否设置了Content-Type为application/json,如果是,那么你需要将请求体中的参数转换成json格式;
4. 如果你使用的是Postman等工具发送请求,可以尝试清空浏览器缓存或者使用其他浏览器再试一下。
希望以上方法能够帮到你解决问题。
相关问题
这是service: public WmsStoreInterOrder getLatestInterOrder(String phone) { // 根据phone查询对应的SysUser类的id QueryWrapper<SysUser> userQueryWrapper = new QueryWrapper<>(); userQueryWrapper.eq("phone", phone); SysUser user = sysUserService.getOne(userQueryWrapper); Long userId = user.getId(); // 查询roleId等于4的人 QueryWrapper<SysUserRoleRel> relQueryWrapper = new QueryWrapper<>(); relQueryWrapper.eq("roleId", 7105332176376758296L); List<SysUserRoleRel> relList = sysUserRoleRelService.list(relQueryWrapper); // 获取符合条件的userId列表 List<Long> userIdList = new ArrayList<>(); for (SysUserRoleRel rel : relList) { if (rel.getUserId().equals(userId)) { userIdList.add(rel.getUserId()); } } // 查询最新的WmsStoreInterOrder QueryWrapper<WmsStoreInterOrder> orderQueryWrapper = new QueryWrapper<>(); orderQueryWrapper.select("*") .orderByDesc("inter_time") .last("limit 1"); return getOne(orderQueryWrapper); } 帮我用GlobalResponse写个controller
好的,你可以这样写:
```
@PostMapping("/latestInterOrde")
@ApiOperation(value = "仓库管理员获取消息通知")
public GlobalResponse<WmsStoreInterOrder> getLatestInterOrder(@RequestParam(required = false) String phone) {
WmsStoreInterOrder latestInterOrder = wmsStoreInterOrderService.getLatestInterOrder(phone);
if (latestInterOrder == null) {
return GlobalResponse.failure("未找到最新的入库单信息");
} else {
return GlobalResponse.success(latestInterOrder);
}
}
```
这个接口会调用`wmsStoreInterOrderService.getLatestInterOrder(phone)`方法获取最新的入库单信息,并将结果封装在`GlobalResponse<WmsStoreInterOrder>`对象中返回。如果找不到入库单信息,则返回一个失败的`GlobalResponse`对象,并包含错误信息"未找到最新的入库单信息";如果找到了入库单信息,则返回一个成功的`GlobalResponse`对象,并包含最新的入库单信息。
@PostMapping public Map<String, Object> saveUser( User user) { QueryWrapper<User> wrapper = new QueryWrapper<>();
这段代码看起来像是一个 Spring Boot 的控制器类中的一个 POST 请求方法。这个方法接收一个 User 对象作为参数,并使用 QueryWrapper 对象来构造一个查询条件。具体来说,QueryWrapper 是 MyBatis-Plus 框架中的一个查询构造器,它可以用来构造复杂的 SQL 查询条件。这个方法最终返回一个 Map 对象,可能是用来返回请求结果的。不过具体的返回值要看这个方法的具体实现。