【尚庭公寓SpringBoot + Vue 项目实战】后台岗位管理(十六)

【尚庭公寓SpringBoot + Vue 项目实战】后台岗位管理(十六)


文章目录

      • 【尚庭公寓SpringBoot + Vue 项目实战】后台岗位管理(十六)
        • 1、业务说明
        • 2、逻辑模型介绍
        • 3、接口开发
          • 3.1、分页查询岗位信息
          • 3.2、保存或更新岗位信息
          • 3.3、根据ID删除岗位信息
          • 3.4、获取全部岗位列表
          • 3.5、根据ID获取岗位信息
          • 3.6、根据岗位id修改状态

1、业务说明

后台用户信息管理共有六个接口

  1. 分页查询岗位信息
  2. 保存或更新岗位信息
  3. 根据ID删除岗位信息
  4. 获取全部岗位列表
  5. 根据ID获取岗位信息
  6. 根据ID修改岗位状态

接口定义-后台-系统岗位管理-岗位列表

2、逻辑模型介绍

image-20240618115625874

3、接口开发
3.1、分页查询岗位信息

查看接口

image-20240618120021507

代码开发

查看请求和响应的数据结构

  • 请求的数据结构

    • currentsize为分页相关参数,分别表示当前所处页面每个页面的记录数

    • SystemUserQueryVo为房间的查询条件,详细结构如下:

      @Data
      @Schema(description = "员工查询实体")
      public class SystemUserQueryVo {
      
          @Schema(description= "员工姓名")
          private String name;
      
          @Schema(description= "手机号码")
          private String phone;
      }
      
  • 响应的数据结构

    单个系统用户信息的结构可查看web-admin模块下的com.atguigu.lease.web.admin.vo.system.user.SystemUserItemVo,具体内容如下:

    @Data
    @Schema(description = "后台管理系统用户基本信息实体")
    public class SystemUserItemVo extends SystemUser {
    
        @Schema(description = "岗位名称")
        @TableField(value = "post_name")
        private String postName;
    }
    

编写Controller层逻辑

@RestController
@Tag(name = "后台用户岗位管理")
@RequestMapping("/admin/system/post")
public class SystemPostController {

    @Autowired
    private SystemPostService systemPostService;

    @Operation(summary = "分页获取岗位信息")
    @GetMapping("page")
    private Result<IPage<SystemPost>> page(@RequestParam long current, @RequestParam long size) {
        Page<SystemPost> page = new Page<>(current,size);
        Page<SystemPost> systemPostPage = systemPostService.page(page);
        return Result.ok(systemPostPage);
    }
}
3.2、保存或更新岗位信息

查看接口

image-20240618120448636

代码开发

SystemPostController中增加saveOrUpdate方法,如下内容

@Operation(summary = "保存或更新岗位信息")
@PostMapping("saveOrUpdate")
public Result saveOrUpdate(@RequestBody SystemPost systemPost) {
    systemPostService.saveOrUpdate(systemPost);
    return Result.ok();
}
3.3、根据ID删除岗位信息

查看接口

image-20240618120556164

代码开发

SystemPostController中增加removeById方法,如下内容

@DeleteMapping("deleteById")
@Operation(summary = "根据id删除岗位")
public Result removeById(@RequestParam Long id) {
    systemPostService.removeById(id);
    return Result.ok();
}
3.4、获取全部岗位列表

查看接口

image-20240618120734885

代码开发

SystemPostController增加list方法,如下内容

@Operation(summary = "获取全部岗位列表")
@GetMapping("list")
public Result<List<SystemPost>> list() {
    List<SystemPost> list = systemPostService.list();
    return Result.ok(list);
}
3.5、根据ID获取岗位信息

查看接口

image-20240618120850929

代码开发

SystemPostController中增加getById方法,如下内容

@GetMapping("getById")
@Operation(summary = "根据id获取岗位信息")
public Result<SystemPost> getById(@RequestParam Long id) {
    SystemPost systemPost = systemPostService.getById(id);
    return Result.ok(systemPost);
}
3.6、根据岗位id修改状态

查看接口

image-20240618121055623

代码开发

SystemPostController中增加如下内容

@Operation(summary = "根据岗位id修改状态")
@PostMapping("updateStatusByPostId")
public Result updateStatusByPostId(@RequestParam Long id, @RequestParam BaseStatus status) {
    LambdaUpdateWrapper<SystemPost> updateWrapper = new LambdaUpdateWrapper<>();
    updateWrapper.eq(SystemPost::getId, id);
    updateWrapper.set(SystemPost::getStatus, status);
    service.update(updateWrapper);
    return Result.ok();    
}

这段代码通过一个 POST 请求来更新数据库中特定岗位的状态。它使用 MyBatis-Plus 的 LambdaUpdateWrapper 来构建更新条件,并调用服务层的方法执行更新操作。最终,它返回一个表示成功的结果给客户端。

依赖项和前提条件
Spring Boot: 用于快速构建基于 Spring 的应用程序。
MyBatis-Plus: 一个增强的 MyBatis 框架,用于简化数据库操作。
Swagger: 用于生成 API 文档。
服务层: service 对象需要被正确注入,并且实现了 update 方法。
可能的改进
错误处理: 当前代码假设更新操作总是成功的。可以添加错误处理逻辑,以处理可能的异常情况并返回适当的错误信息。
验证: 可以添加参数验证逻辑,确保传入的 id 和 status 有效。
日志记录: 可以添加日志记录,以便于调试和监控。
通过这些改进,可以使代码更健壮和可维护。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/720438.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Flutter 小技巧之面试题里有意思的异步问题

很久没更新小技巧系列了&#xff0c;本次简单介绍一下 Flutter 面试里我认为比较有意思的异步基础知识点。 首先我们简单看一段代码&#xff0c;如下代码所示&#xff0c;是一个循环定时器任务&#xff0c;这段代码里&#xff1a; testFunc 循环每 1 秒执行一次 asyncWorkasy…

PAT B1008. 数组元素循环右移问题

题目描述 一个数组A中存有N(N>O)个整数&#xff0c;在不允许使用另外数组的前提下&#xff0c;将每个整数循环向右移M(M≥0)个位置,即将A中的数据由( …)变换为(……)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,则应如何设计移动的方法?输…

[vue3]掌握pinia

pinia Pinna是vue的最新状态管理工具, 用来替代vuex 官网: Pinia | The intuitive store for Vue.js 优势 更简洁的API, 去掉了mutaion与Vue3配套的组合式API风格去掉了modules, 每个store都是独立的模块更好的TS支持, 提供可靠的类型推断 安装 命令: npm i piniamain.js挂…

国内docker镜像加速

自己注册一个阿里云或者华为云的账户&#xff0c;搜索镜像 点击开通&#xff0c;再点击镜像加速器&#xff0c;可以看到自己的加速器地址&#xff0c;然后替换就可以了。再去pull即可成功&#xff0c;但是响应还是要慢一点

【多模态】39、HRVDA | 基于高分辨率输入的高效文档助手(CVPR2024)

论文&#xff1a;HRVDA: High-Resolution Visual Document Assistant 代码&#xff1a;暂无 出处&#xff1a;中国科学技术大学 | 腾讯优图 贡献点&#xff1a; 作者提出了高分辨率视觉文档助手 HRVDA&#xff0c;能直接处理高分辨率图像输入作者提出了内容过滤机制和指令过…

Altair 人工智能技术助力MABE预测消费者行为,实现设备性能优化

主要看点 行业&#xff1a; 家电行业 挑战&#xff1a; 企业面临的挑战是如何利用已收集的大量数据&#xff0c;深入了解消费者在产品使用过程中对某些保鲜程序的影响。 Altair 解决方案&#xff1a; Altair采用了Altair RapidMiner人工智能平台来解决问题&#xff0c;特别是…

C++ 60 之 虚析构和纯虚析构

#include <iostream> #include <string> #include <cstring> using namespace std;class Animal13{ public:Animal13(){cout << "Animal的默认构造函数" << endl;}virtual void speak(){cout << "动物叫" << en…

CP AUTOSAR标准之MemoryDriver(AUTOSAR_CP_SWS_MemoryDriver)

1 简介和功能概述 该规范描述了AUTOSAR基础软件模块内存驱动程序(Mem)的功能、API和配置。   内存驱动程序提供访问不同类型内存设备的基本服务,如读取、写入、擦除和空白检查。   尽管闪存仍然是最常见的非易失性存储器技术,但内存驱动程序规范考虑了所有相关的内存设备…

【价值主张画布】以产品思维,将自己打造成“爆款”

经营自己等于经营公司&#xff1a; 1.客户细分&#xff1a;我能帮助谁&#xff1f;谁是我们最重要的客户&#xff1f; 2. 客户关系&#xff1a;怎样和对方打交道&#xff1f;一次交付还是持续交付&#xff1f; 3.渠道通路&#xff1a;怎样宣传自己和服务&#xff1f; 4. 价值主…

身份证二要素API在Java、Python、PHP中的使用教程

随着信息时代的迅猛发展&#xff0c;数字化已经深刻影响了我们生活的各个方面。从社交互动到金融交易&#xff0c;人们越来越多地依赖在线平台和数字服务。然而&#xff0c;随之而来的是身份验证和数据安全方面的挑战。在这个信息泛滥的时代&#xff0c;确保每个在线身份的真实…

丹麦海外媒体报道:媒体投放发稿助力企业在海外扭转战局

大舍传媒 丹麦海外媒体报道中&#xff0c;大舍传媒作为一家专业的媒体投放公司&#xff0c;正发挥着重要作用&#xff0c;帮助企业在海外扭转战局。作为丹麦领先的媒体投放机构&#xff0c;他们为企业提供了全方位的品牌传播服务&#xff0c;帮助企业在海外市场取得成功。 大舍…

Unity制作透明材质直接方法——6.15山大软院项目实训

之前没有在unity里面接触过材质的问题&#xff0c;一般都是在maya或这是其他建模软件里面直接得到编辑好材质的模型&#xff0c;然后将他导入Unity里面&#xff0c;然后现在碰到了需要自己在Unity制作透明材质的情况&#xff0c;所以先搜索了一下有没有现成的方法&#xff0c;很…

Linux时间子系统5:timekeeper、timecountercyclecounter

1. 前言 前面我们介绍了用户态获取时间的接口clock_gettime&#xff0c;时钟的种类posix_clocks以及时钟源clocksource。那么我们思考这样一个问题&#xff0c;无论clock_gettime或者posix_clock定义的时间都是相对于某个起始点的时间&#xff0c;即相对于Linux Epoch的秒数&am…

如何用Excel随机抽取幸运儿

在举行年会等活动&#xff0c;会在大屏幕互动随机滚动抽取幸运观众&#xff0c;有专门开发的软件或程序&#xff1b; 对于我们日常工作中有时会遇到&#xff0c;如何在群体中随机抽取部分幸运儿的问题&#xff1f; 除了抓阄&#xff0c;当然也可以用Excel解决哦&#xff0c;今…

示例:WPF中应用MarkupExtention自定义IValueConverter

一、目的&#xff1a;应用MarkupExtention定义IValueConverter&#xff0c;使得应用起来更简单和高效 二、实现 public abstract class MarkupValueConverterBase : MarkupExtension, IValueConverter{public abstract object Convert(object value, Type targetType, object …

排序模型的奥秘:如何用AI大模型提升电商、广告和用户增长的效果

摘要 排序模型是数字化营销中最重要的工具之一&#xff0c;它可以帮助我们在海量的信息中筛选出最符合用户需求和偏好的内容&#xff0c;从而提高用户的满意度和转化率。本文从产品经理的视角&#xff0c;介绍了常见的排序模型的原理和应用&#xff0c;包括基于规则的排序、基…

Ubuntu 24.04 SSH Server 修改默认端口重启无效

试用最新的乌班图版本&#xff0c;常规修改ssh端口&#xff0c;修改完毕后重启sshd提示没有找到service&#xff0c;然后尝试去掉d重启ssh后查看状态&#xff0c;端口仍然是默认的22&#xff0c;各种尝试都试了不行&#xff0c;重启服务器后倒是端口修改成功了&#xff0c;心想…

MDPO:Conditional Preference Optimization for Multimodal Large Language Models

MDPO: Conditional Preference Optimization for Multimodal Large Language Models 相关链接&#xff1a;arxiv 关键字&#xff1a;多模态、大型语言模型、偏好优化、条件偏好优化、幻觉减少 摘要 直接偏好优化&#xff08;DPO&#xff09;已被证明是大型语言模型&#xff08…

开源表单流程设计器:做好流程化办公 实现提质增效!

在社会竞争激烈的今天&#xff0c;如何通过各种渠道和方式实现提质增效&#xff1f;低代码技术平台、开源表单流程设计器的出现&#xff0c;正是助力企业实现流程化办公&#xff0c;进入数字化转型的得力助手。想要利用好企业内部数据资源&#xff0c;打破信息化孤岛&#xff0…

排序算法、堆排序、大顶堆、小顶堆、手写快排-215. 数组中的第K个最大元素、2336. 无限集中的最小数字

目录 215. 数组中的第K个最大元素 题目链接及描述 题目分析 堆排序分析 堆排序代码编写 快排分析 快排代码编写 2336、无限集中的最小数字 题目链接及描述 题目分析 代码编写 215. 数组中的第K个最大元素 题目链接及描述 215. 数组中的第K个最大元素 - 力扣&#…