首页 > 其他分享 >脑干软件接口实现

脑干软件接口实现

时间:2023-04-03 11:03:56浏览次数:40  
标签:脑干 return 删除 userId 用户 接口 boolean 软件 AjaxResult

接口分析

今天写了一个删除用户运动指数的接口,运动指数包括了两个属性,一个每周运动次数和每次运动时间,我们需要做的就是把这两个字段清空,因为这个字段在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());
       //先进行删除
       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 deleteBloodInfo(Long userId) {

       //去用户与家族病史表中对数据进行删除
       LambdaQueryWrapper<TbUserFamilyhistory> queryWrapper = new LambdaQueryWrapper<>();
       queryWrapper.eq(TbUserFamilyhistory::getUserId,userId);
       boolean remove = iTbUserFamilyhistoryService.remove(queryWrapper);

       //对用户的饮食习惯进行删除
       LambdaQueryWrapper<TbUser> queryWrapper1 = new LambdaQueryWrapper<>();
       queryWrapper1.eq(TbUser::getUserId,userId);
       TbUser one2 = iTbUserService.getOne(queryWrapper1);
       //不然饮食习惯这个字段进行数据库操作
       one2.setDiet(null);
       //先进行删除
       boolean remove1 = iTbUserService.remove(queryWrapper1);
       //创建一个容器 用来装数据
       TbUser tbUser = new TbUser();
       tbUser.setUserId(one2.getUserId());
       //先保存,再进行修改,修改的目的就是更改update_time 字段
       boolean save = iTbUserService.save(tbUser);
       boolean update = iTbUserService.update(one2, queryWrapper1);

       //对服药表中的数据进行删除
       LambdaQueryWrapper<TbUserMedicine> queryWrapper2 = new LambdaQueryWrapper<>();
       queryWrapper2.eq(TbUserMedicine::getUserId,userId);
       boolean remove2 = iTbUserMedicineService.remove(queryWrapper2);

       return remove && remove1 && save && update && remove2;
  }
   
}

 

/**
* 血压Service业务层处理
*
* @author ruoyi
* @date 2023-03-29
*/
@Service
public class TbBloodServiceImpl extends ServiceImpl<TbBloodMapper,TbBlood> implements ITbBloodService
{
/**
    * 删除用户血压指数信息
    * @param userId 患者用户id
    * @return
    */
   @Override
   public boolean deleteBlood(Long userId) {
       //根据用户id去用户表中找到血压id
       LambdaQueryWrapper<TbUser> queryWrapper = new LambdaQueryWrapper<>();
       queryWrapper.eq(TbUser::getUserId,userId);
       TbUser one = iTbUserService.getOne(queryWrapper);
       //先把这个的血压id进行记录
       String bloodId = one.getBloodId();
       //不让这个属性参加数据库运算
       one.setBloodId(null);
       //删除这个用户信息
       boolean remove = iTbUserService.remove(queryWrapper);
       TbUser tbUser = new TbUser();
       tbUser.setUserId(one.getUserId());
       //添加一个空的用户信息 再把数据添加进去
       boolean save = iTbUserService.save(one);
       //进行数据的修改 更改update_time
       boolean update = iTbUserService.update(one, queryWrapper);

       //把血压表中的数据进行删除
       LambdaQueryWrapper<TbBlood> queryWrapper1 = new LambdaQueryWrapper<>();
       queryWrapper1.eq(TbBlood::getBloodId,bloodId);
       boolean remove1 = iTbBloodService.remove(queryWrapper1);

       return remove && save && update && remove1;

  }
}

Controller


/**
* 血压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("删除失败!");
      }
  }
}

 


/**
* 用户Controller
*
* @author ruoyi
* @date 2023-03-24
*/
@RestController
@RequestMapping("/business/user")
public class TbUserController extends BaseController
{

   @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("删除失败!");
      }
  }
}

总结

今天写了四个删除接口,删除接口主要的问题就是在同一张表中,多个字段不是用一个时间增加和删除的,同时还有个update_time这个字段,只要数据被修改,这个字段的值就应该被修改,所以删除的功能也要算,在用户表中,删除的一个功能,只删除几个字段,所以我们就要先把这条数据拿出来,把不需要的字段设置为null然后在把这个数据存进去,再进行修改就可以使update_time这个字段记录当前修改的时间。今天的删除功能其实原理都差不多,没有很大的难度,继续努力。

标签:脑干,return,删除,userId,用户,接口,boolean,软件,AjaxResult
From: https://www.cnblogs.com/choajiwudibaolongzhanshi/p/17282451.html

相关文章

  • 软件开发定律:霍夫施塔特定律,为什么项目交付总是会延期?
    hi,我是熵减,见字如面。在软件项目中,你是否遇到过这种情况:一个软件工程师,要开发一个系统功,这个系统需求有点复杂,需要新增多个模块,同时也需要和多个系统交互。工程师会按照自己的经验,做一个粗略的工期评估,同时在加上一点缓冲时间,从而得出一个开发工期的总时长。但最终的结果,可能会......
  • 5款轻量易上手的团队目标管理软件(推荐收藏)
    团队目标管理的核心是团队目标的设定和管理,而在当下的互联网时代想要实现团队目标,一款好的团队目标管理软件是必不可少的,好的团队软件可以提高团队的协作效率,有效地追踪团队目标的推进情况。想要实现团队的高效管理,不妨试一下这五款团队目标管理软件。1、通用团队目标管理:Worktil......
  • 2023年五大团队任务管理软件盘点
    无论是作为企业还是个人,做好任务管理都能帮助我们很好实现项目或个人目标,但做好任务管理的前提,是要了解清楚什么是任务管理。任务管理的基本内容就是如何让一个部门或者岗位根据目标、计划形成在特定时间内最有效完成相关任务。以下任务管理软件将任务管理的基本内容结合到实际的......
  • 【测试理论-07】软件测试 -软件开发模式包含那些?
    一、常见的软件开发模式包括:瀑布模型:瀑布模型是一种线性的软件开发模式,从需求分析、设计、编码、测试到维护等各个阶段依次进行,每个阶段的输出作为下一个阶段的输入。增量模型:增量模型是一种渐进式的软件开发模式,将软件开发分为多个阶段,每个阶段都会增加新的功能或特性,直到......
  • 【测试理论-06】软件测试 -探索性测试怎么做?
    一、探索性测试定义:探索性测试是一种基于测试人员的经验和直觉进行测试的方法,它不依赖于预先定义的测试用例或脚本,而是根据测试人员的思考和探索来进行测试。探索性测试通常用于发现软件中未知的问题和缺陷,以及验证软件的可用性、易用性和性能等方面。在探索性测试中,测试人员需要......
  • 2023年4月2日(软件工程日报)
    今日学习内容:python深度学习了解python相关外部库,感知机部分知识首先numpy库    之后是matplotlib库       ......
  • JNDI(Java Naming and Directory Interface–Java命名和目录接口)
    JNDI(JavaNamingandDirectoryInterface,Java命名和目录接口)为应用程序提供了一种通过网络访问远程服务的方式。本节我们学习如何通过JNDIAPI注册和访问JDBC数据源对象。读者如果需要了解更多JNDI相关细节,则可参考JNDI规范文档。JNDIAPI的命名服务可以把一个逻辑名称和一个具......
  • python接口自动化pytest+yaml+allure
    简介分层common公共层data数据层test层+main文件其中pytest框架使用pytest.ini全局配置和conftest.py夹具test层下载对于的安装包编写对于的用例实现参数化编写对于的fixture和pytest全局配置常用pytest执行方法main方法:pytest.main(['-vs','-n2'])console:py......
  • 免费的翻译接口
     有道 示例 http://fanyi.youdao.com/translate?&doctype=json&type=AUTO&i=计算http://fanyi.youdao.com/translate?&doctype=json&type=ZH_CN2EN&i=计算http://fanyi.youdao.com/translate?&doctype=json&type=ZH_CN2KR&i=计算 返回的数据......
  • 数学软件|网络画板
    前言以前由于工作和爱好的关系,接触过几个数学软件,在初高中数学教学中能用得上的常用软件有:几何画板[1]、超级画板[2],几何图霸[3],其中几何画板是我使用数学软件的启蒙软件,还获得过2007年教育部举办的课件大赛三等奖,接触超级画板软件后又觉得其比几何画板要高级些,但总感觉这两个软......