当前位置: 首页 > news >正文

分页查询面试记录和面试详情

文章目录

    • 1.分页查询面试记录
        • 1.req和vo
          • 1.InterviewHistoryReq.java
          • 2.InterviewHistoryVO.java
        • 2.InterviewController.java
        • 3.service
          • 1.InterviewHistoryService.java
          • 2.InterviewHistoryServiceImpl.java
        • 4.测试
    • 2.查询面试详情
        • 1.InterviewQuestionHistoryVO.java
        • 2.InterviewController.java
        • 3.InterviewQuestionHistoryService.java
        • 4.InterviewQuestionHistoryServiceImpl.java
        • 5.测试

1.分页查询面试记录

1.req和vo
1.InterviewHistoryReq.java
package com.sunxiansheng.interview.server.entity.req;import com.sunxiansheng.interview.server.entity.page.PageInfo;
import lombok.Data;
import lombok.experimental.Accessors;import java.io.Serializable;/*** 分页信息** @author sun* @since 2024-07-21 16:03:41*/
@Data
@Accessors(chain = true) // 支持链式调用
public class InterviewHistoryReq implements Serializable {private static final long serialVersionUID = 1L;/*** 分页信息*/private PageInfo pageInfo;}
2.InterviewHistoryVO.java
package com.sunxiansheng.interview.api.vo;import lombok.Data;import java.io.Serializable;/*** 面试汇总记录表(InterviewHistory)实体类** @author makejava* @since 2024-05-23 22:56:03*/
@Data
public class InterviewHistoryVO implements Serializable {private static final long serialVersionUID = -69404155056273562L;/*** id*/private Long id;/*** 平均分*/private double avgScore;/*** 面试关键字*/private String keyWords;/*** 面试评价*/private String tip;/*** 创建时间*/private Long createdTime;}
2.InterviewController.java
    /*** 分页查询面试记录*/@PostMapping(value = "/getHistory")public Result<PageResult<InterviewHistoryVO>> getHistory(@RequestBody InterviewHistoryReq req) {try {if (log.isInfoEnabled()) {log.info("分页查询面试记录入参{}", JSON.toJSONString(req));}Preconditions.checkArgument(!Objects.isNull(req), "参数不能为空!");PageResult<InterviewHistoryVO> result = interviewHistoryService.getHistory(req);if (log.isInfoEnabled()) {log.info("分页查询面试记录出参{}", JSON.toJSONString(result));}return Result.ok(result);} catch (IllegalArgumentException e) {log.error("参数异常!错误原因{}", e.getMessage(), e);return Result.fail(e.getMessage());} catch (Exception e) {log.error("分页查询面试记录异常!错误原因{}", e.getMessage(), e);return Result.fail("分页查询面试记录异常!");}}
3.service
1.InterviewHistoryService.java
    PageResult<InterviewHistoryVO> getHistory(InterviewHistoryReq req);
2.InterviewHistoryServiceImpl.java
    /*** 分页查询** @param req* @return*/@Overridepublic PageResult<InterviewHistoryVO> getHistory(InterviewHistoryReq req) {// 构造查询条件InterviewHistoryPo interviewHistoryPo = new InterviewHistoryPo();interviewHistoryPo.setCreatedBy(LoginUtil.getLoginId());Integer pageNo = req.getPageInfo().getPageNo();Integer pageSize = req.getPageInfo().getPageSize();PageResult<InterviewHistoryPo> paginate = SunPageHelper.paginate(pageNo, pageSize,() -> this.interviewHistoryMapper.count(interviewHistoryPo),(offset, limit) -> this.interviewHistoryMapper.queryPage(interviewHistoryPo, offset, limit));List<InterviewHistoryPo> result = paginate.getResult();List<InterviewHistoryVO> collect = result.stream().map(res -> {InterviewHistoryVO interviewHistoryVO = new InterviewHistoryVO();interviewHistoryVO.setId(res.getId());interviewHistoryVO.setAvgScore(res.getAvgScore());interviewHistoryVO.setKeyWords(res.getKeyWords());interviewHistoryVO.setTip(res.getTip());interviewHistoryVO.setCreatedTime(res.getCreatedTime().getTime());return interviewHistoryVO;}).collect(Collectors.toList());PageResult<InterviewHistoryVO> build = new PageResult.Builder<InterviewHistoryVO>().pageNo(pageNo).pageSize(pageSize).total(paginate.getTotal()).result(collect).build();return build;}
4.测试

CleanShot 2024-07-24 at 15.49.31@2x

2.查询面试详情

1.InterviewQuestionHistoryVO.java
package com.sunxiansheng.interview.api.vo;import lombok.Data;import java.io.Serializable;/*** 面试题目记录表(InterviewQuestionHistory)实体类** @author makejava* @since 2024-05-23 22:56:31*/
@Data
public class InterviewQuestionHistoryVO implements Serializable {private static final long serialVersionUID = -60560874889446691L;/*** 均分*/private Double score;/*** 面试关键字*/private String keyWords;/*** 问题*/private String question;/*** 答案*/private String answer;/*** 用户答案*/private String userAnswer;}
2.InterviewController.java
    /*** 查询详情*/@GetMapping(value = "/detail")public Result<List<InterviewQuestionHistoryVO>> detail(Long id) {try {if (log.isInfoEnabled()) {log.info("查询详情入参{}", id);}Preconditions.checkArgument(!Objects.isNull(id), "参数不能为空!");List<InterviewQuestionHistoryVO> result = interviewQuestionHistoryService.detail(id);if (log.isInfoEnabled()) {log.info("查询详情出参{}", JSON.toJSONString(result));}return Result.ok(result);} catch (IllegalArgumentException e) {log.error("参数异常!错误原因{}", e.getMessage(), e);return Result.fail(e.getMessage());} catch (Exception e) {log.error("查询详情异常!错误原因{}", e.getMessage(), e);return Result.fail("查询详情异常!");}}
3.InterviewQuestionHistoryService.java
    /*** 详情* @param id* @return*/List<InterviewQuestionHistoryVO> detail(Long id);
4.InterviewQuestionHistoryServiceImpl.java
    /*** 详情* @param id* @return*/@Overridepublic List<InterviewQuestionHistoryVO> detail(Long id) {InterviewQuestionHistoryPo interviewQuestionHistoryPo = new InterviewQuestionHistoryPo();interviewQuestionHistoryPo.setInterviewId(id);interviewQuestionHistoryPo.setCreatedBy(LoginUtil.getLoginId());List<InterviewQuestionHistoryPo> interviewQuestionHistoryPoList = this.interviewQuestionHistoryMapper.queryAllByLimit(interviewQuestionHistoryPo);List<InterviewQuestionHistoryVO> collect = interviewQuestionHistoryPoList.stream().map(interviewQuestionHistoryPo1 -> {InterviewQuestionHistoryVO interviewQuestionHistoryVO = new InterviewQuestionHistoryVO();interviewQuestionHistoryVO.setScore(interviewQuestionHistoryPo1.getScore());interviewQuestionHistoryVO.setKeyWords(interviewQuestionHistoryPo1.getKeyWords());interviewQuestionHistoryVO.setQuestion(interviewQuestionHistoryPo1.getQuestion());interviewQuestionHistoryVO.setAnswer(interviewQuestionHistoryPo1.getAnswer());interviewQuestionHistoryVO.setUserAnswer(interviewQuestionHistoryPo1.getUserAnswer());return interviewQuestionHistoryVO;}).collect(Collectors.toList());return collect;}
5.测试

CleanShot 2024-07-24 at 16.09.04@2x

相关文章:

分页查询面试记录和面试详情

文章目录 1.分页查询面试记录1.req和vo1.InterviewHistoryReq.java2.InterviewHistoryVO.java 2.InterviewController.java3.service1.InterviewHistoryService.java2.InterviewHistoryServiceImpl.java 4.测试 2.查询面试详情1.InterviewQuestionHistoryVO.java2.InterviewCon…...

Oracle 同义词SYNONYM 的实战使用

Oracle中的同义词&#xff08;SYNONYM&#xff09;是一种数据库对象&#xff0c;它为其他数据库对象&#xff08;如表、视图、序列、存储过程、函数等&#xff09;提供了一个别名。这个别名可以在SQL语句中代替原始对象的名称&#xff0c;从而简化查询和引用&#xff0c;提高数…...

实验11-1-8 查找子串

本题要求实现一个字符串查找的简单函数。 函数接口定义&#xff1a; char *search( char *s, char *t );函数search在字符串s中查找子串t&#xff0c;返回子串t在s中的首地址。若未找到&#xff0c;则返回NULL。 输入样例1&#xff1a; The C Programming Language ram输出样…...

Git存储库添加空目录-添加占位文件

Git本身并不会跟踪和管理空目录&#xff0c;它只会记录和管理文件的变化。因此&#xff0c;在操作空目录时&#xff0c;我们需要借助一些技巧来实现我们的需求。通过添加一个空的.gitignore或.gitkeep文件或添加一个占位文件&#xff0c;我们可以欺骗Git&#xff0c;并使其将空…...

基于x86 平台opencv的图像采集和seetaface6的人脸识别功能

目录 一、概述二、环境要求2.1 硬件环境2.2 软件环境三、开发流程3.1 编写测试3.2 配置资源文件3.2 验证功能一、概述 本文档是针对x86 平台opencv的图像采集和seetaface6的人脸识别功能,opencv通过读取本地图像,将采集的本地图像送给seetaface6的人脸识别模块从而实现人脸识…...

Git 的基本使用

1.创建 Git 本地仓库 仓库是进⾏版本控制的⼀个⽂件⽬录。我们要想对⽂件进⾏版本控制&#xff0c;就必须先创建⼀个仓库出来&#xff0c;例如下面代码创建了gitcode_linux的文件夹&#xff0c;之后再对其进行初始化。创建⼀个 Git 本地仓库对应的命令为 git init &#xff0c…...

如何解决 Cloudflare | 使用 Puppeteer 和 Node.JS

我认为&#xff0c;现在自动化任务越多&#xff0c;越能体现它们的价值&#xff0c;因此挑战也变得更加明显和困难。例如&#xff0c;Cloudflare 目前提供了强有力的安全措施来保护网站免受所有形式的自动化工具的侵扰。 但对于从事自动化项目&#xff08;如网络爬虫、数据提取…...

笔记redis

Redis 介绍 Redis&#xff08;Remote Dictionary Server&#xff09;是用C语言开发的一个基于内存的键值对数据库 所有数据都在内存中&#xff0c;访问速度非常快&#xff1a;读的速度是110000次/s&#xff0c;写的速度是81000次/s适合存储热点数据&#xff08;商品、新闻资…...

Django 后端架构开发:手机与邮箱验证码接入、腾讯云短信SDK和网易邮箱

Django 后端架构开发&#xff1a;手机与邮箱验证码接入、腾讯云短信SDK和网易邮箱接入 &#x1f31f; 手机短信与邮箱短信验证码的应用场景 在现代应用中&#xff0c;短信和邮箱验证码是用户验证和安全管理的关键组成部分。它们广泛应用于注册、登录、找回密码等场景&#xf…...

RAID 方案比较

RAID&#xff08;Redundant Array of Independent Disks&#xff09;技术用于将多个磁盘驱动器组合成一个逻辑单元&#xff0c;以提高性能、可靠性或两者兼顾。以下是常见 RAID 级别的比较&#xff1a; RAID 0&#xff08;条带化&#xff09; 磁盘数量&#xff1a;最少 2 块可…...

零成本搭建个人 APP 和小程序后台

前言 前面也说了&#xff0c;通过 GitHub PagesGitHub Actions 只是解决了动态数据展示&#xff0c;但是要零成本得完成将用户信息存储下来&#xff0c;并实现数据交互呢&#xff1f; 我开始是想用云文档&#xff0c;种种原因&#xff0c;我还是希望有个自己能二次修改的后台…...

LCP 633 平方数之和 [leetcode - 8]

最近是在研究双指针啊&#xff0c;leetcode刷的题都是这方面的。都记录在最近的文章里&#xff0c;大家有兴趣可以去我主页看看 LCP633 平方数之和 给定一个非负整数 c &#xff0c;你要判断是否存在两个整数 a 和 b&#xff0c;使得 a2 b2 c 。 示例 1&#xff1a; 输入&…...

c语言试题及答案

1. 一个C程序的组成部分可以是(  )。 A) 一个主函数和一至若干个其他函数 B) 一至若干个主函数 C) 一个主程序和一至若干个其他函数 D) 一个主程序和一至若干个子程序 2. 一个C程序的执行是从( )。 (A)本程序的main函数开始,到main函数结束 (B)本程序文件的第一个函…...

python实现链表

什么是链表 链表是由一系列节点组成的元素集合。每个节点包含两部分&#xff0c;数据域item和指向下一个节点的指针next。通过节点之间的相互连接最终串联成一个链表。 python实现一个简单链表 我们可以用python实现一个超级简单的链表 class node:# 初始化数据def __init_…...

Linux Shell 编程基础入门(一)

&#x1f600;前言 本篇博文是关于自动化工具Shell 编程的基本介绍&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大家&#xff0c;您的满意是我的动…...

大白话讲微服务的灾难性雪崩效应

讲在前面&#xff0c;为什么微服务需要有熔断等策略呢&#xff1f;今天我们用大白话来讲讲微服务的灾难性雪崩效应&#xff0c;熔断策略就是解决雪崩效应的有效解决方案。 什么是灾难性雪崩效应&#xff1f; 假设我们有两个访问量比较大的服务A和B&#xff0c;这两个服务分别依…...

配置 K3s 访问私有镜像仓库

1.修改 K3s 配置文件 1)对于较新的 K3s 版本&#xff0c;你可以通过编辑 K3s 的配置文件来指定镜像仓库。编辑 /etc/rancher/k3s/config.yaml 文件&#xff08;如果不存在则需要创建&#xff09;&#xff0c;添加或修改以下配置&#xff1a; # /etc/rancher/k3s/config.yaml …...

数学建模之数据分析【七】:对Pandas DataFrame 进行切片

文章目录 一、切片简介二、创建Pandas数据框三、使用iloc进行切片3.1 对行进行切片3.2 对列进行切片3.3 Dataframe选中特定单元格 四、使用loc创建切片4.1 使用Python对Dataframe中的行进行切片4.2 指定单元格 五、在Python中使用布尔条件六、结论 对 Pandas DataFrames 进行切…...

删除 Docker 容器的日志文件

删除 Docker 容器的日志文件可以帮助释放磁盘空间。以下是步骤: 1、查找日志文件路径: Docker 容器的日志通常存储在 /var/lib/docker/containers/<container_id>/ 目录下。日志文件通常名为 container_id-json.log。 通过以下命令找到日志文件的位置: docker ins…...

DevOps入门(上)

1: DevOps概念 &#xfeff;&#xfeff;DevOps: Development 和 Operations 的组合 DevOps 看作开发&#xff08;软件工程&#xff09;、技术运营和质量保障&#xff08;QA&#xff09;三者的交集。 突出重视软件开发人员和运维人员的沟通合作&#xff0c;通过自动化流程来使…...

别再吹牛了,% Vibe Coding 存在无法自洽的逻辑漏洞!故

简介 langchain中提供的chain链组件&#xff0c;能够帮助我门快速的实现各个组件的流水线式的调用&#xff0c;和模型的问答 Chain链的组成 根据查阅的资料&#xff0c;langchain的chain链结构如下&#xff1a; $$Input \rightarrow Prompt \rightarrow Model \rightarrow Outp…...

winpeas使用教程

winpeas是PEASS&#xff08;Privilege Escalation Awesome Scripts SUITE&#xff0c;权限提升优秀脚本套件&#xff09;中的Windows平台专用模块&#xff0c;全称为Windows Privilege Escalation Awesome Script。它是一款专为Windows系统设计的自动化权限提升扫描工具&#x…...

STM32 UDS Bootloader完整方案:简化学习ISO15765与ISO14429协...

uds bootloader stm32 完整方案 iso15765 iso14429 简化学习难度 需要可以加好友。 下载42k速度在15秒左右 第二版上位机:模仿vector vflash 设计简洁高效&#xff0c;下载速度提高到11k byte/s。01-firmware :包含stm32 boot 软件 设备驱动 应用程序 02-上位机 &#xf…...

手机维修师傅的“内功心法”:看懂手机屏排线上的MIPI、I2C、SPI信号,快速定位不开机、花屏、触摸失灵故障

手机维修实战&#xff1a;通过屏排线信号诊断显示与触摸故障的黄金法则 当你面对一部摔落后屏幕全黑但能听见系统声音的iPhone&#xff0c;或是进水后出现彩色条纹的安卓手机时&#xff0c;90%的维修师傅会直接更换屏幕总成。而真正的高手&#xff0c;会拿起万用表和示波器&…...

OBS多路推流插件窗口消失?三步快速找回+终极预防指南

OBS多路推流插件窗口消失&#xff1f;三步快速找回终极预防指南 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 你是否正在使用OBS进行多平台直播&#xff0c;却发现obs-multi-rtmp插件…...

一维最佳快递站问题(暴力 + DP 两种解法,专业版)

一、题目描述&#xff08;CSP-J 入门难度&#xff09;一条笔直公路上分布 n 个村庄&#xff0c;各村庄按坐标 1、2、…、n 依次排列&#xff0c;相邻村庄间距为 1。每个村庄有固定人口&#xff08;权值&#xff09;&#xff0c;需在某一村庄建立快递站&#xff0c;使得所有村庄…...

Vue大屏自适应终极指南:v-scale-screen组件高效实战方案

Vue大屏自适应终极指南&#xff1a;v-scale-screen组件高效实战方案 【免费下载链接】v-scale-screen Vue large screen adaptive component vue大屏自适应组件 项目地址: https://gitcode.com/gh_mirrors/vs/v-scale-screen 在现代企业级数据可视化项目中&#xff0c;大…...

当AI学会编程,我们还能做什么邑

基础示例&#xff1a;单工作表 Excel 转 TXT 以下是将一个 Excel 文件中的第一个工作表转换为 TXT 的完整步骤&#xff1a; 1. 加载并读取Excel文件 from spire.xls import * from spire.xls.common import * workbook Workbook() workbook.LoadFromFile("示例.xlsx"…...

使用Docker快速部署Sentinel Dashboard:从构建到运行的全流程指南

1. 为什么选择Docker部署Sentinel Dashboard 第一次接触Sentinel Dashboard时&#xff0c;我尝试过直接在服务器上运行jar包。结果遇到各种环境问题&#xff1a;JDK版本不匹配、端口冲突、时区设置错误...折腾半天都没跑起来。后来改用Docker部署&#xff0c;整个过程变得异常简…...

Android权限延时动态声明机制和可行的解决方案

Android权限延时动态声明机制和可行的解决方案核心结论Android系统权限无法真正做到"运行时动态声明"&#xff0c;但可以通过以下方案实现类似效果&#xff1a;方案一&#xff1a;动态功能模块&#xff08;官方推荐&#xff09;原理说明┌─────────────…...