接口分析
今天写了一个删除用户运动指数的接口,运动指数包括了两个属性,一个每周运动次数和每次运动时间,我们需要做的就是把这两个字段清空,因为这个字段在user表中,同时我们删除他的时候不能把其他的属性删除,所以我们就不能直接使用delete方法,而是删除再添加 再修改。
问题与解决
重新启动项目时,数据库ip与配置文件中的地址不同导致报错,因为连的是我的数据库,所以我可以直接使用localhost但是这样我上传的项目给队友拷贝下来的就又会有问题,所以我需要查看我自己电脑的ip地址


Service
/**
* 用户Controller
*
* @author ruoyi
* @date 2023-03-24
*/
@RestController
@RequestMapping("/business/user")
public class TbUserController extends BaseController
{
// private String prefix = "system/user";
@Autowired
private ITbUserService tbUserService;
@Autowired
private ITbUserFamilyhistoryService tbUserFamilyhistoryService;
@Autowired
private ITbUserMedicineService tbUserMedicineService;
@Autowired
private ITbFamilyhistoryService tbFamilyhistoryService;
/**
* 删除患者用户运动情况新信息
* @param userId 用户id
* @return
*/
@DeleteMapping("/deleteMontionInfo")
public AjaxResult deleteMontionInfo(Long userId){
boolean flag = tbUserService.deleteMontionInfo(userId);
if (flag){
return AjaxResult.success("删除成功!");
}else {
return AjaxResult.error("删除失败!");
}
}
/**
* 删除患者用户体重指数信息
* @param userId 用户id
* @return
*/
@DeleteMapping("/deleteWeightInfo")
public AjaxResult deleteWeightInfo(Long userId){
boolean flag = tbUserService.deleteWeightInfo(userId);
if (flag){
return AjaxResult.success("删除成功!");
}else {
return AjaxResult.error("删除失败!");
}
}
/**
* 删除患者用户高血压敏感指数信息
* @param userId 用户id
* @return
*/
@DeleteMapping("/deleteBloodInfo")
public AjaxResult deleteBloodInfo(Long userId){
boolean flag = tbUserService.deleteBloodInfo(userId);
if (flag){
return AjaxResult.success("删除成功!");
}else {
return AjaxResult.error("删除失败!");
}
}
}
/**
* 血压Controller
*
* @author ruoyi
* @date 2023-03-29
*/
@RestController
@RequestMapping("/business/blood")
public class TbBloodController extends BaseController
{
@Autowired
private ITbBloodService tbBloodService;
/**
* 删除血压指数信息
* @param userId 用户id
* @return
*/
@DeleteMapping("/deleteBlood")
public AjaxResult deleteBlood(Long userId){
boolean flag = tbBloodService.deleteBlood(userId);
if (flag){
return AjaxResult.success("删除成功!");
}else {
return AjaxResult.error("删除失败!");
}
}
}
Impl
/**
* 用户Service业务层处理
*
* @author ruoyi
* @date 2023-03-24
*/
@Service
public class TbUserServiceImpl extends ServiceImpl<TbUserMapper,TbUser> implements ITbUserService
{
@Autowired
private TbUserMapper tbUserMapper;
@Autowired
private ITbUserService iTbUserService;
@Autowired
private ITbDoctorService iTbDoctorService;
@Autowired
private ITbFamilyhistoryService iTbFamilyhistoryService;
@Autowired
private ITbUserFamilyhistoryService iTbUserFamilyhistoryService;
@Autowired
private ITbUserMedicineService iTbUserMedicineService;
/**
* 删除用户运动指数信息
* @param userId 用户id
*/
@Override
public boolean deleteMontionInfo(Long userId) {
//先得到这个用户的信息
LambdaQueryWrapper<TbUser> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TbUser::getUserId,userId);
TbUser one = iTbUserService.getOne(queryWrapper);
//让这两个数据不进行数据库的操作,相当于就是直接把属性设置为null
one.setMotionNumber(null);
one.setMotionTime(null);
//创建一个容器,用来装原先的数据
TbUser tbUser = new TbUser();
tbUser.setUserId(one.getUserId());
//先进行删除
boolean remove = iTbUserService.remove(queryWrapper);
//进行添加
boolean save = iTbUserService.save(tbUser);
//进行修改,确保update_time可以成功更改
boolean update = iTbUserService.update(one, queryWrapper);
return remove && save && update;
}
/**
* 删除用户体重指数信息
* @param userId 用户id
* @return
*/
@Override
public boolean deleteWeightInfo(Long userId) {
//先得到这个用户的信息
LambdaQueryWrapper<TbUser> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TbUser::getUserId,userId);
TbUser one = iTbUserService.getOne(queryWrapper);
//让这两个数据不进行数据库的操作,相当于就是直接把属性设置为null
one.setWeight(null);
one.setHeight(null);
//创建一个容器,用来装原先的数据
TbUser tbUser = new TbUser();
tbUser.setUserId(one.getUserId());
//先进行删除