@ApiOperation(value = "根据名称和年龄段查找用户") // 修改API文档描述 @ApiImplicitParams(value = { @ApiImplicitParam(name = "名称", value = "年龄段", dataTypeClass = String.class) }) @GetMapping ("/find") public UserInfo findDeviceInfo(@RequestParam String name,@RequestParam int age) throws Exception { return deviceService.findUserInfoByIdAndName(age, name); }通过控制层代码编写出业务层代码
时间: 2024-01-29 21:01:50 浏览: 61
MybatisPlus中@TableField注解的使用详解
3星 · 编辑精心推荐
以下是通过控制层代码编写出的业务层代码:
```java
@Service
public class DeviceService {
@Autowired
private UserInfoMapper userInfoMapper;
public UserInfo findUserInfoByIdAndName(int age, String name) throws Exception {
if (StringUtils.isBlank(name)) {
throw new Exception("名称不能为空");
}
if (age < 0 || age > 120) {
throw new Exception("年龄超出范围");
}
UserInfoExample example = new UserInfoExample();
UserInfoExample.Criteria criteria = example.createCriteria();
criteria.andNameEqualTo(name);
criteria.andAgeBetween(age - 10, age + 10);
List<UserInfo> list = userInfoMapper.selectByExample(example);
if (list == null || list.size() == 0) {
throw new Exception("未找到符合条件的用户");
}
return list.get(0);
}
}
```
这段代码是业务层的代码,它通过调用userInfoMapper中的selectByExample方法来查找符合条件的用户信息。在方法中添加了参数校验,如果名称为空、年龄超出范围或未找到符合条件的用户则抛出异常。
阅读全文