简历系统

@TOC

springboot0745简历系统

第1章 绪论

1.1背景及意义

随着社会的快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中人们对简历系统方面的要求也在不断提高,需要工作的人数更是不断增加,使得简历系统的开发成为必需而且紧迫的事情。简历系统主要是借助计算机,通过对简历系统所需的信息管理,增加用户的选择,同时也方便对广大简历系统的及时查询、修改以及对简历系统的及时了解。简历系统对用户带来了更多的便利,该系统通过和数据库管理系统软件协作来满足用户的需求。计算机技术在现代管理中的应用,使计算机成为人们应用现代技术的重要工具。能够有效的解决获取信息便捷化、全面化的问题,提高效率。

本简历系统主要牵扯到程序,数据库与计算机技术等。覆盖知识面大,可以大大的提高系统人员工作效率。

1.2 国内外研究概况

随着国内经济形势的不断发展,中国互联网进入了一个难得的高峰发展时期,这使得中外资本家纷纷转向互联网市场。然而,许多管理领域的不合理结构,人员不足以及管理需求的增加使得更多的人具备了互联网管理的意识。

在当今高度发达的信息中,信息管理改革已成为一种更加广泛和全面的趋势。“简历系统”是基于Mysql数据库,在springboot框架程序设计的基础上实现的。为确保中国经济的持续发展,信息时代日益更新,更是蓬勃发展。同时,随着信息社会的快速发展,简历系统面临着越来越多的信息,因此很难获得他们对高效信息的需求,如何使用方便快捷的方式使查询者在广阔的简历系统信息中查询,存储,管理和共享信息方面有效,对我们的学习,工作和生活具有重要的现实意义。因此,国内外学术界对此进行了深入而广泛的研究,一个新的研究领域——简历系统诞生了。

1.3 研究的内容

目前许多人仍将传统的纸质工具作为信息管理的主要工具,而网络技术的应用只是起到辅助作用。在对网络工具的认知程度上,较为传统的office软件等仍是人们使用的主要工具,而相对全面且专业的简历系统的信息管理软件仍没有得到大多数人的了解或认可。本选题则旨在通过标签分类管理等方式,实现管理员:首页、个人中心、用户管理、简历模板管理、模板类型管理、招聘会管理、报名招聘管理、简历上传管理、求职论坛、我的收藏管理、系统管理,用户;首页、个人中心、报名招聘管理、简历上传管理、我的收藏管理,前台首页;首页、简历模板、招聘会、简历上传、求职论坛、系统公告、个人中心、后台管理、在线客服等功能。从而达到对简历系统信息的高效管理。

  1. 相关技术

2.1 B/S架构

B/S结构的特点也非常多,例如在很多浏览器中都可以做出信号请求。并且可以适当的减轻用户的工作量,通过对客户端安装或者是配置少量的运行软件就能够逐步减少用户的工作量,这些功能的操作主要是由服务器来进行控制的,由于该软件的技术不断成熟,最主要的特点就是与浏览器相互配合为软件开发带来了极大的便利,不仅能够减少开发成本,还能够不断加强系统的软件功能,层层相互独立和展现层是该B/S结构完成相互连接的主要特性。

2.2 Java技术介绍

Java语言擅长开发互联网类应用和企业级应用,现在已经相当的成熟,而且也是目前使用最多的编程语言之一。Java语言具有很好的面向对象性,可以符合人的思维模式进行设计,封装是将对象的属性和方法尽可能地隐藏起来,使得外界并不知道是如何实现的,外界能通过接口进行访问,继承是指每个类都会有一个父类,所有的子类都有父类的方法,可以进行继承,但是只有final修饰的类不能被继承,通过继承可以使得代码得到重新利用,能够提高软件的开发效率,也是多态的前提。

Java就像C语言、C#语言等,也是一种程序开发语言,而它的特点就是面向对象。作为一种程序开发与设计的语言,它有很多特性,主要特性就是面向对象、夸平台以及可以分布式运行。Java语言项目不但安全性高、稳定性强,而且可以并发运行。

为了提高开发的速度及效率,必须做到代码的重复使用和简化程序的复杂度,要达到上述的要求java语言通过封装、继承与多态等方式实现,这样可以很大程度上达到信息的封装,提高代码复用率,减少冗余度,提高效率。它使得以往程序中大量存在的内存泄漏的问题得到了较好的缓解。所谓的内存泄漏就是程序向操作系统申请了一块存储空间,比如定义了一个变量,但是由于某种原因,这个变量一直没有使用,但是仍然占用着系统的内存空间,可能一两个这样的变量对程序和操作系统造不成什么大的影响,但是试想如果这样的变量定义的多了系统的内存空间就会一步步减少,从而造成机器的性能降低甚至宕机。但是在Java中有垃圾回收机制的存在,这种机制极大地避免了内存泄漏的出现,在Java虚拟机中,垃圾回收机制会对长时间没有引用变量指向的对象实施垃圾回收,简单的说就是将这个对象销毁,以避免内存泄漏的情况出现。

2.3 mysql数据库介绍

MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实租赁环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。

本系统使用了MySQL数据库,建立了多张数据库表来存储租赁以及汽车租赁平台相关数据。系统中主要应用查询(select),修改(update),删除(delete)以及增加(insert)等语句来实现系统功能。

2.4 Spring Boot框架

Spring Boot是Pivotal团队的一个新框架,旨在简化新Spring应用程序的初始设置和开发。该框架使用特定的配置方法,无需开发人员定义样板配置。通过这种方式,Spring Boot旨在成为蓬勃发展的快速应用程序开发领域的领导者。 Spring Boot特点: 1、创建一个单独的Spring应用程序; 2、嵌入式Tomcat,无需部署WAR文件; 3、简化Maven配置; 4、自动配置Spring; 5、提供生产就绪功能,如指标,健康检查和外部配置; 6、绝对没有代码生成和XML的配置要求; 安装步骤: 最基本的是,Spring Boot是一个可以被任何项目的构建系统使用的库集合。 为简单起见,该框架还提供了一个命令行界面,可用于运行和测试Boot应用程序。 可以从Spring存储库手动下载和安装框架的已发布版本,包括集成的CLI(命令行界面)。 更简单的方法是使用Groovy enVironment Manager(GVM),它负责处理Boot版本的安装和管理。 可以从GVM命令行GVM install springboot安装Boot及其CLI。 在OS X上安装Boot时可以使用Homebrew包管理器。要完成安装,首先使用brew tap pivotal / tap切换到pivotal存储库,然后执行brew install springboot命令。

第3章 系统分析

3.1 需求分析

简历系统主要是为了提高工作人员的工作效率和更方便快捷的满足用户,更好存储所有数据信息及快速方便的检索功能,对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定考虑用户的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。

系统所要实现的功能分析,对于现在网络方便的管理,系统要实现用户可以直接在平台上进行查看所有数据信息,根据需求可以进行在线添加,删除或修改简历系统信息,这样既能节省时间,不用再像传统的方式耽误时间,真的很难去满足用户的各种需求。所以简历系统的开发不仅仅是能满足用户的需求,还能提高管理员的工作效率,减少原有不必要的工作量。

3.2 系统可行性分析

3.2.1技术可行性:技术背景

本企业网站在Windows操作系统中进行开发,并且目前PC机的性能已经可以胜任普通网站的web服务器。系统开发所使用的技术也都是自身所具有的,也是当下广泛应用的技术之一。

系统的开发环境和配置都是可以自行安装的,系统使用Java开发工具,使用比较成熟的Mysql数据库进行对系统前台及后台的数据交互,根据技术语言对数据库,结合需求进行修改维护,可以使得网站运行更具有稳定性和安全性,从而完成实现网站的开发。

(1)硬件可行性分析

系统管理及信息分析的设计对于所使用的计算机没有什么硬性的要求,计算机只要可以正常的使用进行代码的编写及页面设计就可行,主要是对于服务器有些要求,对于平台搭建完成要上传的服务器是有一定的要求的,服务器必须选择安全性比较高的,然后就是在打开网站必须顺畅,不能停顿太长时间;性价比高;安全性高。

(2)软件可行性分析

提供一个共同的机制类似的借口动态模型,设计更集中。此外,代码复用,也可以很好的体现。因此,考虑到系统的实际情况,选择Java作为本系统开发技术。通过上述分析,该系统的设计实现在软件方面是可行的。

因此,我们进行了两个方面的可行性研究,可以看出,该系统的开发是没有问题的。

3.2.2经济可行性

在简历系统开发之前所做的市场调研及其他的相关的管理系统,都是没有任何费用的,都是通过开发者自己的努力,所有的工作的都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于简历系统的开发在经济上是完全可行的,没有任何费用支出的。

使用比较成熟的技术,系统是基于Java技术的开发,采用Mysql数据库。所以系统在开发人力、财力要求不高,具有经济可行性。

3.2.3操作可行性:

可操作性主要是对简历系统设计完成后,用户的使用体验度,以及管理员可以通过系统随时管理相关的数据信息,并且对于管理员、用户二个权限角色,都可以简单明了的进入到自己的系统界面,通过界面导航菜单可以简单明了地操作功能模块,方便简历系统的操作需求和管理员管理数据信息,对于系统的操作,不需要专业人员都可以直接进行功能模块的操作管理,所以在系统的可操作性是完全可以的。本系统的操作使用的也是界面窗口进行登录,所以操作人员只要会简单的电脑操作就完全可以的。

3.3 项目设计目标与原则

1、关于简历系统的基本要求

(1)功能要求:可以管理首页、个人中心、用户管理、简历模板管理、模板类型管理、招聘会管理、报名招聘管理、简历上传管理、求职论坛、我的收藏管理、系统管理等功能模块。

(2)性能:在不同操作系统上均能无差错实现在不同类型的用户登入相应界面后能不出差错、方便地进行预期操作。

(3)安全与保密要求:用户都必须通过注册、登录才能进入系统,并且用户的权限也需要根据用户的类型进行限定。

(4)环境要求:支持多种平台,可在Windows系列、Vista系统等多种操作系统下使用。

2、开发目标

简历系统的主要开发目标如下:

(1)实现管理系统信息关系的系统化、规范化和自动化;

(2)减少维护人员的工作量以及实现用户对信息的控制和管理。

(3)方便查询信息及管理信息等;

(4)通过网络操作,改善处理问题的效率,提高操作人员利用率;

(5)考虑到用户多样性特点,要求界面简单,操作简便。

3、设计原则

本简历系统采用Java技术,Mysql数据库开发,充分保证了系统稳定性、完整性。

简历系统的设计与实现的设计思想如下:

  1. 操作简单方便、系统界面安全良好、简单明了的页面布局、方便查询相关信息。

2、即时可见:对简历系统信息的处理将立马在对应地点可以查询到,从而实现“即时发布、即时见效”的系统功能。

3.4系统流程分析

3.4.1操作流程

系统登录流程图,如图所示:

图3-1登录流程图

3.4.2添加信息流程

添加信息流程图,如图所示:

图3-2添加信息流程图

3.4.3删除信息流程

删除信息流程图,如图所示:

图3-3删除信息流程图

第4章 系统设计

4.1 系统体系结构

简历系统的结构图4-1所示:

管理员

服务器和程序

用户

图4-1 系统结构

登录系统结构图,如图4-2所示:

简历系统登录界面

用户登录

密码正确

管理员界面

用户界面

图4-2 登录结构图

简历系统结构图,如图4-3所示。

图4-3 简历系统结构图

4.2开发流程设计

系统流程的分析是通过调查系统所涉及问题的识别、可行性、可操作性、系统分析处理能力等具体环节来调节、整理系统的设计方案以确保系统能达到理想的状态。这些操作都要从注册、登录处着眼进行一系列的流程测试保证数据库的完整,从而把控系统所涉及信息管理的安全、保证信息输入、输出正常转换。然后,通过实际操作完成流程图的绘制工作。

简历系统的开发对管理模块和系统使用的数据库进行分析,编写代码,系统测试,如图4-4所示。

图4-4开发系统流程图

4.3 数据库设计原则

学习编程,我们都知道数据库设计是基于需要设计的系统功能,我们需要建立一个数据库关系模型,用于存储数据信息,这样当我们在程序中时,就没有必要为程序页面添加数据,从而提高系统的效率。数据库存储了很多信息,可以说是信息管理系统的核心和基础,数据库还提供了添加、删除、修改和检查,使系统能够快速找到自己想要的信息,而不是在程序代码中找到。数据库中信息表的每个部分根据一定的关系精确地组合,排列和组合成数据表。

通过简历系统的功能进行规划分成几个实体信息,实体信息将通过ER图进行说明,本系统的主要实体图如下:

管理员信息属性图如图4-5所示。

图4-5 管理员信息实体属性图

用户信息实体属性图如图4-6所示。

图4-6用户信息属性图

简历上传信息实体属性图如图4-7所示。

图4-7简历上传信息实体属性图

报名招聘信息实体属性图如图4-8所示。

图4-8报名招聘信息实体属性图

4.4 数据表

将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表现在表的字段上。

表4-1 allusers表

列名数据类型长度约束
idint11NOT NULL
usernamevarchar50default NULL
pwdvarchar50default NULL
cxvarchar50default NULL

表4-2:baomingzhaopin表

列名数据类型长度约束
idint11NOT NULL
addtimevarchar50default NULL
gongsivarchar50default NULL
fabushijianvarchar50default NULL
jiezhishijianvarchar50default NULL
zhaopianvarchar50default NULL
zhanghaovarchar50default NULL
xingmingvarchar50default NULL
jianlivarchar50default NULL
sfshvarchar50default NULL
shhfvarchar50default NULL

表4-3:jianlimoban表

列名数据类型长度约束
idint11NOT NULL
addtimevarchar50default NULL
mobanmingchengvarchar50default NULL
mobanleixingvarchar50default NULL
jianjievarchar50default NULL
zhaopianvarchar50default NULL

表4-4:jianlishangchuan表

列名数据类型长度约束
idint11NOT NULL
addtimevarchar50default NULL
zhanghaovarchar50default NULL
xingmingvarchar50default NULL
jianlivarchar50default NULL
fankuivarchar50default NULL
shangchuanshijianvarchar50default NULL
sfshvarchar50default NULL
shhfvarchar50default NULL

表4-5:yonghu表

列名数据类型长度约束
IDint11NOT NULL
addtimevarchar50default NULL
zhanghaovarchar50default NULL
mimavarchar50default NULL
xingmingvarchar50default NULL
xingbievarchar50default NULL
nianlingvarchar50default NULL
shoujivarchar50default NULL
youxiangvarchar50default NULL
shenfenzhengvarchar50default NULL
touxiangvarchar50default NULL

第5章 系统详细设计

5.1管理员功能模块

管理员登录,通过填写用户名、密码、角色进行登录,如图5-1所示。

图5-1管理员登录界面图

管理员登录进入简历系统可以查看首页、个人中心、用户管理、简历模板管理、模板类型管理、招聘会管理、报名招聘管理、简历上传管理、求职论坛、我的收藏管理、系统管理等信息。

用户管理,在用户管理页面中可以通过查看账号、姓名、性别、年龄、手机、邮箱、身份证、头像进行详情、修改,如图5-2所示。还可以根据需要对简历模板管理进行详情,修改或删除等详细操作,如图5-3所示。

图5-2用户管理界面图

图5-3简历模板管理界面图

模板类型管理,在模板类型管理页面中可以查看类型等信息,并可根据需要对模板类型管理进行详情、修改或删除等操作,如图5-4所示。

图5-4模板类型管理界面图

招聘会管理,在招聘会管理页面中可以查看公司、发布时间、截止时间、地点、照片等信息,并可根据需要对招聘会管理进行详情、修改或删除等详细操作,如图5-5所示。

图5-5招聘会管理界面图

报名招聘管理,在报名招聘管理页面中可以查看公司、发布时间、截止时间、照片、账号、姓名、简历、审核回复、审核状态、审核等内容,并且根据需要对报名招聘管理进行详情、修改或删除等详细操作,如图5-6所示。

图5-6报名招聘管理界面图

轮播图;该页面为轮播图管理界面。管理员可以在此页面进行首页轮播图的管理,通过新建操作可在轮播图中加入新的图片,还可以对以上传的图片进行修改操作,以及图片的删除操作,如图5-7所示。

图5-7轮播图管理界面图

简历上传管理,在简历上传管理页面中可以查看账号、姓名、简历、反馈、上传时间、审核回复、审核状态、审核等内容,并且根据需要对简历上传管理进行详情、修改或删除等详细操作,如图5-8所示。

图5-8简历上传管理界面图

求职论坛,在求职论坛页面中可以查看帖子标题、用户名、状态等内容,并且根据需要对求职论坛进行详情、修改或删除等详细操作,如图5-9所示。

图5-9求职论坛界面图

5.2用户功能模块

用户登录进入简历系统可以查看首页、个人中心、报名招聘管理、简历上传管理、我的收藏管理等内容。

报名招聘管理,在报名招聘管理页面中通过查看公司、发布时间、截止时间、照片、账号、姓名、简历、审核回复、审核状态等信息还可以根据需要对报名招聘管理进行详情,如图5-10所示。

图5-10报名招聘管理界面图

简历上传管理,在简历上传管理页面中可以查看账号、姓名、简历、反馈、上传时间、审核回复、审核状态等信息内容,并且根据需要对简历上传管理进行修改或删除等其他详细操作,如图5-11所示。

图5-11简历上传管理界面图

个人信息,在个人信息页面中通过填写账号、姓名、性别、年龄、手机、邮箱、身份证、头像等内容进行详情、修改,如图5-12所示。

图5-12个人信息界面图

5.3前台首页功能模块

简历系统,在简历系统可以查看首页、简历模板、招聘会、简历上传、求职论坛、系统公告、个人中心、后台管理、在线客服等内容,如图5-13所示。

图5-13前台首页界面图

用户登录、用户注册,通过注册获取账号、密码、姓名、性别、年龄、手机、邮箱、身份证等信息进行注册、登录,如图5-14所示。

图5-14用户登录、用户注册界面图

简历模板,在简历模板页面可以查看模板名称、模板类型、点击次数等信息进行点我收藏,如图5-15所示。

图5-15简历模板界面图

求职论坛,在求职论坛页面可以填写标题、类型、内容等进行发布帖子如图5-16所示。

图5-16求职论坛界面图

StoreupController.java
package com.controller;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;import com.entity.StoreupEntity;
import com.entity.view.StoreupView;import com.service.StoreupService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;/*** 收藏表* 后端接口* @author * @email * @date 2021-03-29 21:10:33*/
@RestController
@RequestMapping("/storeup")
public class StoreupController {@Autowiredprivate StoreupService storeupService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,StoreupEntity storeup,HttpServletRequest request){if(!request.getSession().getAttribute("role").toString().equals("管理员")) {storeup.setUserid((Long)request.getSession().getAttribute("userId"));}EntityWrapper<StoreupEntity> ew = new EntityWrapper<StoreupEntity>();PageUtils page = storeupService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, storeup), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,StoreupEntity storeup, HttpServletRequest request){if(!request.getSession().getAttribute("role").toString().equals("管理员")) {storeup.setUserid((Long)request.getSession().getAttribute("userId"));}EntityWrapper<StoreupEntity> ew = new EntityWrapper<StoreupEntity>();PageUtils page = storeupService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, storeup), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( StoreupEntity storeup){EntityWrapper<StoreupEntity> ew = new EntityWrapper<StoreupEntity>();ew.allEq(MPUtil.allEQMapPre( storeup, "storeup")); return R.ok().put("data", storeupService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(StoreupEntity storeup){EntityWrapper< StoreupEntity> ew = new EntityWrapper< StoreupEntity>();ew.allEq(MPUtil.allEQMapPre( storeup, "storeup")); StoreupView storeupView =  storeupService.selectView(ew);return R.ok("查询收藏表成功").put("data", storeupView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){StoreupEntity storeup = storeupService.selectById(id);return R.ok().put("data", storeup);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){StoreupEntity storeup = storeupService.selectById(id);return R.ok().put("data", storeup);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody StoreupEntity storeup, HttpServletRequest request){storeup.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(storeup);storeup.setUserid((Long)request.getSession().getAttribute("userId"));storeupService.insert(storeup);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody StoreupEntity storeup, HttpServletRequest request){storeup.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(storeup);storeup.setUserid((Long)request.getSession().getAttribute("userId"));storeupService.insert(storeup);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody StoreupEntity storeup, HttpServletRequest request){//ValidatorUtils.validateEntity(storeup);storeupService.updateById(storeup);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){storeupService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<StoreupEntity> wrapper = new EntityWrapper<StoreupEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}if(!request.getSession().getAttribute("role").toString().equals("管理员")) {wrapper.eq("userid", (Long)request.getSession().getAttribute("userId"));}int count = storeupService.selectCount(wrapper);return R.ok().put("count", count);}}
CommonUtil.java
package com.utils;import java.util.Random;public class CommonUtil {/*** 获取随机字符串** @param num* @return*/public static String getRandomString(Integer num) {String base = "abcdefghijklmnopqrstuvwxyz0123456789";Random random = new Random();StringBuffer sb = new StringBuffer();for (int i = 0; i < num; i++) {int number = random.nextInt(base.length());sb.append(base.charAt(number));}return sb.toString();}
}
MobanleixingController.java
package com.controller;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;import com.entity.MobanleixingEntity;
import com.entity.view.MobanleixingView;import com.service.MobanleixingService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;/*** 模板类型* 后端接口* @author * @email * @date 2021-03-29 21:10:33*/
@RestController
@RequestMapping("/mobanleixing")
public class MobanleixingController {@Autowiredprivate MobanleixingService mobanleixingService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,MobanleixingEntity mobanleixing,HttpServletRequest request){EntityWrapper<MobanleixingEntity> ew = new EntityWrapper<MobanleixingEntity>();PageUtils page = mobanleixingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, mobanleixing), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,MobanleixingEntity mobanleixing, HttpServletRequest request){EntityWrapper<MobanleixingEntity> ew = new EntityWrapper<MobanleixingEntity>();PageUtils page = mobanleixingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, mobanleixing), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( MobanleixingEntity mobanleixing){EntityWrapper<MobanleixingEntity> ew = new EntityWrapper<MobanleixingEntity>();ew.allEq(MPUtil.allEQMapPre( mobanleixing, "mobanleixing")); return R.ok().put("data", mobanleixingService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(MobanleixingEntity mobanleixing){EntityWrapper< MobanleixingEntity> ew = new EntityWrapper< MobanleixingEntity>();ew.allEq(MPUtil.allEQMapPre( mobanleixing, "mobanleixing")); MobanleixingView mobanleixingView =  mobanleixingService.selectView(ew);return R.ok("查询模板类型成功").put("data", mobanleixingView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){MobanleixingEntity mobanleixing = mobanleixingService.selectById(id);return R.ok().put("data", mobanleixing);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){MobanleixingEntity mobanleixing = mobanleixingService.selectById(id);return R.ok().put("data", mobanleixing);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody MobanleixingEntity mobanleixing, HttpServletRequest request){mobanleixing.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(mobanleixing);mobanleixingService.insert(mobanleixing);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody MobanleixingEntity mobanleixing, HttpServletRequest request){mobanleixing.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(mobanleixing);mobanleixingService.insert(mobanleixing);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody MobanleixingEntity mobanleixing, HttpServletRequest request){//ValidatorUtils.validateEntity(mobanleixing);mobanleixingService.updateById(mobanleixing);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){mobanleixingService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<MobanleixingEntity> wrapper = new EntityWrapper<MobanleixingEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = mobanleixingService.selectCount(wrapper);return R.ok().put("count", count);}}
http.js
import axios from 'axios'
import router from '@/router/router-static'
import storage from '@/utils/storage'const http = axios.create({timeout: 1000 * 86400,withCredentials: true,baseURL: '/springbootz9481',headers: {'Content-Type': 'application/json; charset=utf-8'}
})
// 请求拦截
http.interceptors.request.use(config => {config.headers['Token'] = storage.get('Token') // 请求头带上tokenreturn config
}, error => {return Promise.reject(error)
})
// 响应拦截
http.interceptors.response.use(response => {if (response.data && response.data.code === 401) { // 401, token失效router.push({ name: 'login' })}return response
}, error => {return Promise.reject(error)
})
export default http

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

论文解读:LONGWRITER: UNLEASHING 10,000+ WORD GENERATION FROM LONG CONTEXT LLMS

摘要 现象&#xff1a;当前的大预言模型可以接受超过100,000个tokens的输入&#xff0c;但是却难以生成超过2000个token的输出。 原因&#xff1a;监督微调过程(SFT)中看到的样本没有足够长的样本。 解决方法&#xff1a; Agent Write&#xff0c;可以将长任务分解为子任务&a…

Java CompletableFuture:你真的了解它吗?

文章目录 1 什么是 CompletableFuture&#xff1f;2 如何正确使用 CompletableFuture 对象&#xff1f;3 如何结合回调函数处理异步任务结果&#xff1f;4 如何组合并处理多个 CompletableFuture&#xff1f; 1 什么是 CompletableFuture&#xff1f; CompletableFuture 是 Ja…

Coze插件发布!PDF转Markdown功能便捷集成,打造你的专属智能体

近日&#xff0c;TextIn开发的PDF转Markdown插件正式上架Coze。 在扣子搜索“pdf转markdown”&#xff0c;或在Coze搜索“pdf2markdown” 即可找到插件&#xff0c;在你的专属智能体中便捷使用文档解析功能。 如果想测试解析插件在你需要的场景下表现如何&#xff0c;可以直接…

后端开发刷题 | 合并k个已排序的链表

描述 合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。 数据范围&#xff1a;节点总数 0≤n≤5000&#xff0c;每个节点的val满足 ∣val∣<1000 要求&#xff1a;时间复杂度 O(nlogn) 示例1 输入&#xff1a; [{1,2,3},{4,5,6,7}] 返回值&#xff1a; …

【数据结构】二叉树的深度理解

&#x1f36c;个人主页&#xff1a;Yanni.— &#x1f308;数据结构&#xff1a;Data Structure.​​​​​​ &#x1f382;C语言笔记&#xff1a;C Language Notes 前言 在之前学习了二叉树的基本概念&#xff0c;但二叉树有着更深入知识理解&#xff0c;这篇文章可以帮助大…

使用Obsidian实现Anki快速制卡

文章目录 前言准备双双启用遇到问题查看是什么问题解决问题 开始使用使用前的一些设置快速制卡 前言 我现在使用 Anki 的同时也使用 Obsidian&#xff0c;正好可以通过插件来让这两个十分好用的软件实现联动。 在 Obsidian 中实现 Anki 的快速制卡。 准备 首先要在这两个软…

原型制作 | 歌词与进度条的位置呼应

在之前的案例里面咱们做过了歌词滚动的效果&#xff0c;具体效果是这样的&#xff0c;点击播放按钮&#xff0c;歌词开始滚动&#xff1b;点击暂停按钮&#xff0c;歌词停止滚动&#xff0c;再次点击播放&#xff0c;歌词会继续滚动&#xff1b;一直播放直到结束&#xff0c;歌…

java常见面试题汇总

&#x1f30f;个人博客主页&#xff1a;意疏-CSDN博客 希望文章能够给到初学的你一些启发&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏支持一下笔者吧&#xff5e; 阅读指南&#xff1a; 开篇说明一、封装 继承 多态1.封装2.继承3.多态 二、什么是重载…

【前端】VUE 在线运行 模拟器 通过字符串动态渲染页面 可以灵活使用

【前端】VUE2 在线运行 模拟器 通过字符串动态渲染页面 可以灵活使用 <template><div><!-- 这里是动态组件--><component :is"component"></component><!-- 这里是动态组件--><br /><br /><br />可…

Gitlab添加ssh秘钥download项目

1. 查看 、设置 git 用户名和邮箱 git config user.namegit config user.email git config --global user.name 用户名git config --global user.email 邮箱 2. 查看本地是否有ssh秘钥 秘钥默认放在C:\Users\用户\.ssh\目录下&#xff0c;进入这个目录&#xff0c;如果有 …

elasticsearch的高亮查询三种模式查询及可能存在的问题

目录 高亮查询使用介绍 高亮参数 三种分析器 可能存在的查询问题 fvh查询时出现StringIndexOutOfBoundsException越界 检索高亮不正确 参考文档 高亮查询使用介绍 Elasticsearch 的高亮&#xff08;highlight&#xff09;可以从搜索结果中的一个或多个字段中获取突出显…

社区维修平台

TOC springboot0751社区维修平台 第一章 绪 论 1.1背景及意义 系统管理也都将通过计算机进行整体智能化操作&#xff0c;对于社区维修平台所牵扯的管理及数据保存都是非常多的&#xff0c;例如住户管理、社区公告管理、维修工管理、维修订单管理、接单信息管理、订单信息管…

谁将解锁储能的未来?迈威通信邀您共探EESA储能展的秘密

九月金秋&#xff0c;硕果盈枝&#xff0c;迈威通信诚挚邀请您共赴一场科技盛宴——第三届EESA储能展&#xff0c;时间锁定9月2日至4日&#xff0c;地点&#xff1a;国家会展中心(上海)&#xff0c;一场关于绿色能源、智慧储能的梦幻之旅即将启航&#xff01; 您准备好迎接未来…

利用大型语言模型协作提升甲状腺结节超声诊断的一致性和准确性| 文献速递-基于深度学习的癌症风险预测与疾病预后应用

Title 题目 Collaborative Enhancement of Consistency and Accuracy in US Diagnosis of Thyroid Nodules Using Large Language Models 利用大型语言模型协作提升甲状腺结节超声诊断的一致性和准确性 Background 背景 Large language models (LLMs) hold substantial …

Redis内存管理

Redis使用Jemalloc(默认编译)来进行内存的管理&#xff1a; Jemalloc将内存分成许多不同的区域&#xff0c;每个区域成为arena&#xff0c;areana之间相互独立。Jemalloc通过创建多个arena来减少线程申请内存的操作冲突。一般arena数量为cpu数量*4. arena以chunk为单位向操作…

FPGA 综合笔记

仿真时阻塞赋值和非阻塞赋值 Use of Non-Blocking Assignment in Testbench : Verilog Use of Non-Blocking Assignment in Testbench : Verilog - Stack Overflow non-blocking assignment does not work as expected in Verilog non-blocking assignment does not work a…

Python使用QtSide6(PyQt)编写界面

1、安装QtSide6 开始菜单cmd 创建虚拟环境 python -m venv env2 进入虚拟环境 call env2/scripts/activate 安装Pyside6 pip install Pyside6 2、设计Qt界面 打开designer.exe&#xff0c;设计界面 点击菜单【窗体】【View Python Code...】&#xff0c;点击【全部复制】…

HarmonyOs透明弹窗(选择照片弹窗样式)

1.鸿蒙中需要实现一个如下图的弹窗 2.由上图中可以得出&#xff0c;只需要三个Text组件依次向下排列&#xff0c;弹窗背景设置透明即可&#xff0c;弹窗代码如下(仅展示弹窗样式)&#xff1a; /**** 自定义选择图片弹窗** 外部定义需要导出*/ CustomDialog //自定义弹窗 export…

android13顶部状态栏里面调节背光,不隐藏状态栏面板

总纲 android13 rom 开发总纲说明 目录 1.前言 2.代码分析 3.修改方法 4.编译运行 5.彩蛋 1.前言 android13顶部状态栏里面调节背光,这个时候状态栏面板会被隐藏掉,有些需求就需要不隐藏这个面板。 2.代码分析 查找亮度条属性 id/brightness_slider ./frameworks/b…

TOMCAT入门到精通

目录 一 WEB技术 1.1 HTTP协议和B/S 结构 1.2 前端三大核心技术 1.2.1 HTML 1.2.2 CSS&#xff08;Cascading Style Sheets&#xff09;层叠样式表 1.2.3 JavaScript 二 WEB框架 2.2后台应用架构 2.2.1单体架构 2.2.2微服务 2.2.3单体架构和微服务比较 三 tomcat的…