从利用便利角度上讲,用手机上的运用场置业务,不用考虑网线是否存在,不用考虑位置是否变革,依托无处不在的手机旗子暗记就可以在任何有旗子暗记的地方处理事务,这是多么的方便和利用,不限定韶光,不限定地点,高山平原山谷都可以作为利用的地点而不影相应用的效果。
从操作角度上讲,手机的操作先天性的高于电脑的操作,由于电脑适宜处理繁芜的操作,而手机便是为了简化操作而生的,方便高效操作大略。
这次开拓这个高校毕业生就业管理系统,不仅仅知足用户的须要,也能跟上时期的发展风向,从技能的角度还是用户的角度上进行开拓都是很故意义的。 ## 1.4 论文研究内容 论文设计的构造也是依照程序开拓的流程进展的,也涉及到功能需求剖析,功能设计与实现,程序测试等流程。
绪论:讲解课题的背景与意义,展示论文构造。
程序开拓技能:讲解程序利用到的工具与技能知识。
系统剖析:讲解程序的功能需求与开拓可行性问题。
系统设计:讲解程序的功能与数据库的设计。
系统实现:讲解程序功能与界面实现。
系统测试:讲解程序的功能测试。 # 第2章 程序开拓技能 ## 2.1 JSP技能先容 Java Server Pages这三个英文词汇的首字母的组合便是JSP。以是JSP是一个简写的名字,代表动态网页开拓技能。JSP与Java的关系可以利用公式表示,即:JSP= HTML+Java,HTML便是编写静态内容的标记措辞。JSP则是可以编写网页动态内容的技能,与同属于SUN公司的动态网页技能之一Servlet技能比较,JSP在输出动态内容上面比较随意马虎,但是Servlet技能更适宜编写Java逻辑代码,常日在动态网页的开拓上,利用Servlet技能须要承担巨大的事情量,每每这个时候,JSP就已经可以算作是Servlet事情的替代品,换句话说便是,在对HTML进行输出时,就靠JSP进行输出。利用JSP技能开拓完成的WEB程序,是从属于Java程序的。因此JSP也具备了Java具有的跨平台特性。JSP的运行事理为了能够方便理解,现以图片的办法进行描述。
22f9
图2.1 JSP运行事理图 ## 2.2 B/S构造先容在早期,一些利用HTML措辞编写的文件,再凑集一些其它资源文件就可以组成一个最大略的Web程序,理解了Web程序也须要理解Web站点,它们之间的关系便是一个或者多个Web程序可以放在Internet上的一个Web站点(Web做事器)中进行利用。可以说Web运用程序的开拓也带动了B/S这种网络构造模式的兴起。B是Brower(浏览器)的首字母,S是Server(做事器)的首字母,两个首字母进行组合就成了网络构造模式的简称B/S。由于这种构造模式通过安装在客户真个浏览器进行做事器的访问,可以把程序的核心功能安排在做事器中进行处理,给程序的开拓,后期利用和掩护省去了许多事情。图2.2展示的便是利用这种架构开拓的程序的事情事理。
图2.2 B/S架构的事情事理图 ## 2.3 Mysql数据库先容 开拓的程序面向用户的只是程序的功能界面,让用户操作程序界面的各个功能,那么很多人就会问,用户利用程序功能天生的数据信息放在哪里的?这个就须要涉及到数据库的知识了,一样平常来说,程序开拓常日就会对常用数据存储工具的特点进行剖析比对,比如Mysql数据库的特点与上风,Access数据库的特点与上风,Sqlserver数据库的特点与上风等,终极看哪个数据库与须要开拓的程序比较匹配,也符合程序功能运行须要的数据存储哀求,比如,须要开拓商业级别的程序,存储的数据对数据库哀求较高,可以选用Oracle,如果只是比较大略的程序,对数据存储没有过多哀求,可以选用微软旗下的Access,当开拓程序哀求数据库占用空间小,并能知足程序数据存储哀求时,就可以考虑Oracle公司从瑞典MySQL AB公司在很早之前就收购过一个关系型数据库,它是现在的Mysql数据库。在数据库工具里面它是最受认可的个中一个运用软件。须要解释的信息便是,本程序的开拓就利用到了此数据库。它将程序数据通过利用不同的数据表格进行保存,在增加了程序数据的存储速率的时候,也提高了数据库的灵巧性。 图2.3展示的便是MySQL的架构图。
图2.3 MySQL数据库架构图 ## 2.4 SSM框架先容 SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。 常作为数据源较大略的web项目的框架。 Spring就像是全体项目中装置bean的大工厂,在配置文件中可以指定利用特定的参数去调用实体类的布局方法来实例化工具。 也可以称之为项目中的粘合剂。 # 第3章 系统剖析 在进行系统剖析之前,须要从网络上或者是图书馆的开拓类书本中网络大量的资料,由于这个环节也是帮助即将开拓的程序软件制订一套最优的方案,一旦确定了程序软件须要具备的功能,就意味着接下来的事情和任务都是环绕着这个方案实行的,以是系统剖析须要对程序功能反复进行思考和研究。 ## 3.1可行性剖析 开拓一款系统软件之前,用户都会思考这个软件程序值不值得去开拓,把开拓软件过程中可能涉及到的问题罗列出来,并一个个剖析办理,以此来确定开拓这款程序软件是否有必要,这样的剖析方法也能帮助用户降落丢失,不至于开拓者开拓进度进行到一半之后,溘然碰着问题就放弃对软件的开拓,到那时,资金丢失,人力投入等方面就损耗太大了。 ### 3.1.1技能可行性剖析 这次开拓程序利用到的开拓工具有:Mysql等工具,利用的开拓措辞是Java,选择的开拓工具和开拓措辞都是在大学教室打仗并学习过,后期由于自己也比较感兴趣,以是也通过网络渠道,或借助图书馆的开拓类书本进行过软件开拓知识的系统学习,让自己有了一定的知识积累,加上自己在校期间也独立开拓过一些软件作品,也积累了一定的开拓履历,以是这次毕设作品的制作在技能上无须担忧过多。 ### 3.1.2经济可行性剖析 目前的信息时期,对信息的管理趋于高效化,便捷化,这也是打算机大力遍及所带来的便利,此程序软件在设备选用上,依赖的是比较大众的电脑设备,对电脑的配置没有过多哀求,一样平常学校的打算机机房的电脑都可以知足程序开拓需求,其余,开拓出此款程序,让信息处理变得高效率,其所带来的高效益是远超程序开拓的低本钱的,因此程序开拓的资金投入是可以忽略不计的。 ### 3.1.3操作可行性剖析 程序软件的操作界面是符合大众审美的需求,功能模块的布局也是类似于社会上同种类型的软件,因此利用者操作该软件可以无需培训就上手。加上现在打算机入驻各家各户,大部分人的打算机操作水平都比较高,这样的局势也表明开拓出来的程序在操作性问题上也是不用担心的。
综合上面的可行性论证,基本可以确定程序开拓完备可行。 ## 3.2系统运行环境 程序经由编码可以实现对程序设计的功能。但是编码实现时须要一定的配置环境,包括了电脑上的硬件环境,也包括在电脑操作系统上安装的软件环境。
硬件环境:一台可以正常利用并能够上网的条记本或者是电脑,电脑内存最低哀求4个G,电脑的中心处理器可以配置i5CPU。
软件环境:利用的微软操作系统是比较稳定的win7旗舰版系统,采取比较闇练的360安全浏览器,并在此系统上通过浏览器下载安装好MYSQL软件等。 ## 3.3系统流程剖析 剖析程序的流程,涉及到程序的整体操作流程,通过剖析与设计,绘制的程序操作流程图见下图。此程序为了确保安全,会让利用者通过登录模块验证信息,符合哀求的利用者才有权限操作程序。
图3-1 程序操作流程图
程序处理数据会涉及到数据的录入环节,绘制的添加流程见下图。程序录入数据过程中,始终与数据库保持同步。
图3-2 信息添加流程图
程序里面的数据也会涌现缺点,因此就有相应的修正数据的功能,绘制的程序修正流程见下图。此过程也是跟后台数据库进行数据同步显示。
图3-3信息修正流程图
程序数据存放于数据仓库,有时也会涉及到数据删除,此过程对应的流程图见下图。数据信息被删除之后,数据库里面也就没有了该数据信息了。
图3-4 信息删除流程图
第4章 系统设计 ## 4.1 系统设计的原则 在系统设计过程中,也须要遵照相应的设计原则,这些设计原则可以帮助设计者在短韶光内设计出符合设计规范的设计方案。设计原则紧张有可靠性,安全性,可定制化,可扩展性,可掩护性,可升级性以及客户体验等原则。下面就对这些原则进行简要阐述。
可靠性:一个软件是否可靠决定了其是否被用户利用,设计不可靠的软件,用户很随意马虎就摈弃;
安全性:程序软件承担了信息的保存与管理等事务,安全性不敷的软件会导致利用者承担巨大的丢失;以是系统安全也是须要考虑进入的;
可定制化:市场环境从来都不是一贯固定不变,面对客户群体的改变,以及利用环境的改变,市场需求的改变等成分,程序软件也要易于调度以适应各种变革;
可扩展性:程序软件在运行利用期间,也须要及时引进当下的新技能来进行系统优化,紧张便是在系统功能层面,系统性能层面上进行相应的扩展,只有这样才能让系统在实际生活中连续霸占市场;
可掩护性:程序软件的掩护须要一定量的资金,不管是打消现有程序缺点,还是变更软件的现有需求,都须要在软件技能上投入一定资金,以是易于掩护的软件程序就可以降落技能层面的资金花费;
可升级性:程序软件的投入利用,会面临用户数量增多的情形,用户对软件的利用率也会提升,以是系统面临这种情形,仍旧须要通过升级保持性能的合理,这样才能够适应市场;
客户体验:设计出来的程序软件在界面上不能够太繁芜,要遵照界面设计的事理设计出大略,方便操作的功能操作界面,让用户易于接管软件,并乐于利用软件供应的功能。 ## 4.2 功能构造设计 在管理员功能模块确定下来的根本上,绘制的功能构造见下图。功能有个人中央,学生管理,用人单位管理,就业信息管理,岗位信息管理,未就业管理,招聘信息管理,就业叮嘱消磨管理,学生就业反馈管理,用人单位反馈管理。
图4-2 管理员功能构造图 ## 4.3 数据库设计 与功能构造设计一样,数据库设计也是程序开拓不可避免的设计环节,数据库设计最紧张的目的便是帮助运行程序存储相应的数据信息。数据库设计包含的内容有数据表构造的设计,也包含了数据库E-R图的设计。 ### 4.3.1 数据库E-R图 在绘制E-R图之前,先要找出数据库的实体,明确各个实体具有的属性,比如用户信息这个实体,它具备的属性包括了用户的姓名属性,用户的密码属性,用户的创建韶光属性等,以是明确了用户这个实体,以及用户实体具备的属性之后,就须要根据这些信息绘制用户实体对应的实体属性图了。绘制软件选用当下认可度高,利用范围广,操作便利的微软旗下的Visio工具。
(1)管理员实体属性图通过Visio工具绘制,绘制结果展示如下:
图4-4 管理员实体属性图
(2)学生实体属性图通过Visio工具绘制,绘制结果展示如下:
图4-5学生实体属性图
(3)用人单位实体属性图通过Visio工具绘制,绘制结果展示如下:
图4-6 用人单位实体属性图 ### 4.3.2 数据库表构造 在进行这部分设计之前,须要明白和节制数据类型以及各个数据类型的长度范围等知识,由于在一张详细的数据表中,为了方便理解,这里就举个大略的例子。比如用户信息表,这个表格的字段便是用户这个实体具备的属性,这时就须要对字段进行数据类型,以及字段长度的设置,也要设置一个主键来作为用户信息表的唯一标识。这些都是数据库表构造设计须要完成的内容。根据高校毕业生就业管理系统的功能设计以及数据库设计哀求,展示该系统的数据表构造。
1岗位类型表
序号
列名
数据类型
解释
许可空
1
Id
Int
id
否
2
addtime
Date
创建韶光
是
3
gangweileixing
String
岗位类型
是
2招聘信息表
序号
列名
数据类型
解释
许可空
1
Id
Int
id
否
2
addtime
Date
创建韶光
是
3
qiyezhanghao
String
企业账号
是
4
qiyemingcheng
String
企业名称
是
5
lianxifangshi
String
联系办法
是
6
qiyeyouxiang
String
企业邮箱
是
7
zhaopingangwei
String
招聘岗位
是
8
gongzuodidian
String
事情地点
是
9
xinzifanwei
String
薪资范围
是
10
gangweiyaoqiu
String
岗位哀求
是
11
tianjiashijian
date
添加韶光
是
3未就业表
序号
列名
数据类型
解释
许可空
1
Id
Int
id
否
2
addtime
Date
创建韶光
是
3
xuehao
String
学号
是
4
xueshengxingming
String
学生姓名
是
5
yuanxi
String
院系
是
6
zhuanye
String
专业
是
7
banji
String
班级
是
8
qiuzhiyixiang
String
求职意向
是
9
weijiuyeyuanyin
String
未就业缘故原由
是
10
xueshengyoushi
String
学生上风
是
11
tianjiashijian
datetime
添加韶光
是
4就业叮嘱消磨表
序号
列名
数据类型
解释
许可空
1
Id
Int
id
否
2
addtime
Date
创建韶光
是
3
xuehao
String
学号
是
4
xueshengxingming
String
学生姓名
是
5
qiyezhanghao
String
企业账号
是
6
qiyemingcheng
String
企业名称
是
7
paiqianquxiang
String
叮嘱消磨去向
是
8
xueshengdangan
String
学生档案
是
9
xueshenghukou
String
学生户口
是
10
paiqianfangan
String
叮嘱消磨方案
是
11
sfsh
String
是否审核
是
12
shhf
String
审核回答
是
5用人单位反馈表
序号
列名
数据类型
解释
许可空
1
Id
Int
id
否
2
addtime
Date
创建韶光
是
3
qiyezhanghao
String
企业账号
是
4
qiyemingcheng
String
企业名称
是
5
lianxifangshi
String
联系办法
是
6
fankuishijian
datetime
反馈韶光
是
7
fankuineirong
String
反馈内容
是
6学生表
序号
列名
数据类型
解释
许可空
1
Id
Int
id
否
2
addtime
Date
创建韶光
是
3
xuehao
String
学号
是
4
mima
String
密码
是
5
xueshengxingming
String
学生姓名
是
6
xingbie
String
性别
是
7
touxiang
String
头像
是
8
xueshengshouji
String
学生手机
是
9
yuanxi
String
院系
是
10
zhuanye
String
专业
是
11
banji
String
班级
是
7用人单位表
序号
列名
数据类型
解释
许可空
1
Id
Int
id
否
2
addtime
Date
创建韶光
是
3
qiyezhanghao
String
企业账号
是
4
mima
String
密码
是
5
qiyemingcheng
String
企业名称
是
6
qiyedidian
String
企业地点
是
7
fuzeren
String
卖力人
是
8
lianxifangshi
String
联系办法
是
9
qiyeyouxiang
String
企业邮箱
是
8就业信息表
序号
列名
数据类型
解释
许可空
1
Id
Int
id
否
2
addtime
Date
创建韶光
是
3
xuehao
String
学号
是
4
xueshengxingming
String
学生姓名
是
5
touxiang
String
头像
是
6
yuanxi
String
院系
是
7
zhuanye
String
专业
是
8
banji
String
班级
是
9
qiyezhanghao
String
企业账号
是
10
qiyemingcheng
String
企业名称
是
11
gangweimingcheng
String
岗位名称
是
12
gangweileixing
String
岗位类型
是
13
jiuyeshijian
date
就业韶光
是
14
sanfanghetong
String
三方条约
是
15
beizhu
String
备注
是
16
sfsh
String
是否审核
是
17
shhf
String
审核回答
是
9学生就业反馈表
序号
列名
数据类型
解释
许可空
1
Id
Int
id
否
2
addtime
Date
创建韶光
是
3
xuehao
String
学号
是
4
xueshengxingming
String
学生姓名
是
5
fankuineirong
String
反馈内容
是
6
fankuishijian
datetime
反馈韶光
是
10配置文件表
序号
列名
数据类型
解释
许可空
1
Id
Int
id
否
2
name
String
配置参数名称
是
3
value
String
配置参数值
是
11用户表
序号
列名
数据类型
解释
许可空
1
Id
Int
id
否
2
username
String
用户名
是
3
password
String
密码
是
4
role
String
角色
是
5
addtime
Date
新增韶光
是
12token表
序号
列名
数据类型
解释
许可空
1
Id
Int
id
否
2
userid
Integer
用户id
是
3
username
String
用户名
是
4
tablename
String
表名
是
5
role
String
角色
是
6
token
String
密码
是
7
addtime
Date
新增韶光
是
8
expiratedtime
Date
过期韶光
是
第5章 系统实现系统实现这个章节的内容紧张还是展示系统的功能界面设计效果,在实现系统基本功能,比如修正,比如添加,比如删除等管理功能的同时,也显示出系统各个功能的界面实现效果,该部分内容一方面与前面提到的系统剖析,系统设计的内容相呼应,另一方面也是一个实际成果的展示。 ## 5.1管理员功能实现 ### 5.1.1 学生管理 管理员可以对学生信息进行添加,修正,删除,查询操作。
图5-1 学生管理页面 ### 5.1.2 用人单位管理 管理员可以对用人单位信息进行添加,修正,删除,查询操作。
图5-2 用人单位管理页面 ## 5.2 用人单位功能实现 ### 5.2.1 招聘信息管理 用人单位可以对招聘信息进行添加,修正,删除,查询操作。
图5-3 招聘信息管理页面 ### 5.2.2 就业叮嘱消磨管理 用人单位可以对学生提交的就业信息进行就业叮嘱消磨操作。
图5-4 就业叮嘱消磨管理页面 ### 5.2.3 用人单位反馈管理 用人单位可以在用人单位反馈信息里面进行添加,修正,删除,查询操作。
图5-5 用人单位反馈管理页面 ## 5.3 学生功能实现 ### 5.3.1 就业信息管理 学生可以对自己的就业信息进行添加,修正,删除,查询操作。
图5-6 就业信息管理页面 ### 5.3.2 未就业管理 学生可以对自己的未就业信息进行添加,修正,删除,查询操作。
图5-7 未就业管理页面 ### 5.3.3 学生就业反馈 学生可以对自己的学生就业反馈信息进行添加,修正,删除,查询操作。
图5-8 学生就业反馈管理页面
YongrendanweifankuiController.javapackage 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.transaction.annotation.Transactional;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.YongrendanweifankuiEntity;import com.entity.view.YongrendanweifankuiView;import com.service.YongrendanweifankuiService;import com.service.TokenService;import com.utils.PageUtils;import com.utils.R;import com.utils.MD5Util;import com.utils.MPUtil;import com.utils.CommonUtil;import java.io.IOException;/ 用人单位反馈 后端接口 @author @email @date 2022-05-07 10:33:42 /@RestController@RequestMapping(34;/yongrendanweifankui")public class YongrendanweifankuiController { @Autowired private YongrendanweifankuiService yongrendanweifankuiService; / 后端列表 / @RequestMapping("/page") public R page(@RequestParam Map<String, Object> params,YongrendanweifankuiEntity yongrendanweifankui, HttpServletRequest request){ String tableName = request.getSession().getAttribute("tableName").toString(); if(tableName.equals("yongrendanwei")) { yongrendanweifankui.setQiyezhanghao((String)request.getSession().getAttribute("username")); } EntityWrapper<YongrendanweifankuiEntity> ew = new EntityWrapper<YongrendanweifankuiEntity>(); PageUtils page = yongrendanweifankuiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yongrendanweifankui), params), params)); request.setAttribute("data", page); return R.ok().put("data", page); } / 前端列表 / @IgnoreAuth @RequestMapping("/list") public R list(@RequestParam Map<String, Object> params,YongrendanweifankuiEntity yongrendanweifankui, HttpServletRequest request){ EntityWrapper<YongrendanweifankuiEntity> ew = new EntityWrapper<YongrendanweifankuiEntity>(); PageUtils page = yongrendanweifankuiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yongrendanweifankui), params), params)); request.setAttribute("data", page); return R.ok().put("data", page); } / 列表 / @RequestMapping("/lists") public R list( YongrendanweifankuiEntity yongrendanweifankui){ EntityWrapper<YongrendanweifankuiEntity> ew = new EntityWrapper<YongrendanweifankuiEntity>(); ew.allEq(MPUtil.allEQMapPre( yongrendanweifankui, "yongrendanweifankui")); return R.ok().put("data", yongrendanweifankuiService.selectListView(ew)); } / 查询 / @RequestMapping("/query") public R query(YongrendanweifankuiEntity yongrendanweifankui){ EntityWrapper< YongrendanweifankuiEntity> ew = new EntityWrapper< YongrendanweifankuiEntity>(); ew.allEq(MPUtil.allEQMapPre( yongrendanweifankui, "yongrendanweifankui")); YongrendanweifankuiView yongrendanweifankuiView = yongrendanweifankuiService.selectView(ew); return R.ok("查询用人单位反馈成功").put("data", yongrendanweifankuiView); } / 后端详情 / @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ YongrendanweifankuiEntity yongrendanweifankui = yongrendanweifankuiService.selectById(id); return R.ok().put("data", yongrendanweifankui); } / 前端详情 / @IgnoreAuth @RequestMapping("/detail/{id}") public R detail(@PathVariable("id") Long id){ YongrendanweifankuiEntity yongrendanweifankui = yongrendanweifankuiService.selectById(id); return R.ok().put("data", yongrendanweifankui); } / 后端保存 / @RequestMapping("/save") public R save(@RequestBody YongrendanweifankuiEntity yongrendanweifankui, HttpServletRequest request){ yongrendanweifankui.setId(new Date().getTime()+new Double(Math.floor(Math.random()1000)).longValue()); //ValidatorUtils.validateEntity(yongrendanweifankui); yongrendanweifankuiService.insert(yongrendanweifankui); return R.ok(); } / 前端保存 / @RequestMapping("/add") public R add(@RequestBody YongrendanweifankuiEntity yongrendanweifankui, HttpServletRequest request){ yongrendanweifankui.setId(new Date().getTime()+new Double(Math.floor(Math.random()1000)).longValue()); //ValidatorUtils.validateEntity(yongrendanweifankui); yongrendanweifankuiService.insert(yongrendanweifankui); return R.ok(); } / 修正 / @RequestMapping("/update") @Transactional public R update(@RequestBody YongrendanweifankuiEntity yongrendanweifankui, HttpServletRequest request){ //ValidatorUtils.validateEntity(yongrendanweifankui); yongrendanweifankuiService.updateById(yongrendanweifankui);//全部更新 return R.ok(); } / 删除 / @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ yongrendanweifankuiService.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<YongrendanweifankuiEntity> wrapper = new EntityWrapper<YongrendanweifankuiEntity>(); if(map.get("remindstart")!=null) { wrapper.ge(columnName, map.get("remindstart")); } if(map.get("remindend")!=null) { wrapper.le(columnName, map.get("remindend")); } String tableName = request.getSession().getAttribute("tableName").toString(); if(tableName.equals("yongrendanwei")) { wrapper.eq("qiyezhanghao", (String)request.getSession().getAttribute("username")); } int count = yongrendanweifankuiService.selectCount(wrapper); return R.ok().put("count", count); } }
XueshengServiceImpl.java
package com.service.impl;import org.springframework.stereotype.Service;import java.util.Map;import java.util.List;import com.baomidou.mybatisplus.mapper.Wrapper;import com.baomidou.mybatisplus.mapper.EntityWrapper;import com.baomidou.mybatisplus.plugins.Page;import com.baomidou.mybatisplus.service.impl.ServiceImpl;import com.utils.PageUtils;import com.utils.Query;import com.dao.XueshengDao;import com.entity.XueshengEntity;import com.service.XueshengService;import com.entity.vo.XueshengVO;import com.entity.view.XueshengView;@Service("xueshengService")public class XueshengServiceImpl extends ServiceImpl<XueshengDao, XueshengEntity> implements XueshengService { @Override public PageUtils queryPage(Map<String, Object> params) { Page<XueshengEntity> page = this.selectPage( new Query<XueshengEntity>(params).getPage(), new EntityWrapper<XueshengEntity>() ); return new PageUtils(page); } @Override public PageUtils queryPage(Map<String, Object> params, Wrapper<XueshengEntity> wrapper) { Page<XueshengView> page =new Query<XueshengView>(params).getPage(); page.setRecords(baseMapper.selectListView(page,wrapper)); PageUtils pageUtil = new PageUtils(page); return pageUtil; } @Override public List<XueshengVO> selectListVO(Wrapper<XueshengEntity> wrapper) { return baseMapper.selectListVO(wrapper); } @Override public XueshengVO selectVO(Wrapper<XueshengEntity> wrapper) { return baseMapper.selectVO(wrapper); } @Override public List<XueshengView> selectListView(Wrapper<XueshengEntity> wrapper) { return baseMapper.selectListView(wrapper); } @Override public XueshengView selectView(Wrapper<XueshengEntity> wrapper) { return baseMapper.selectView(wrapper); }}
GangweileixingController.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.transaction.annotation.Transactional;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.GangweileixingEntity;import com.entity.view.GangweileixingView;import com.service.GangweileixingService;import com.service.TokenService;import com.utils.PageUtils;import com.utils.R;import com.utils.MD5Util;import com.utils.MPUtil;import com.utils.CommonUtil;import java.io.IOException;/ 岗位类型 后端接口 @author @email @date 2022-05-07 10:33:41 /@RestController@RequestMapping("/gangweileixing")public class GangweileixingController { @Autowired private GangweileixingService gangweileixingService; / 后端列表 / @RequestMapping("/page") public R page(@RequestParam Map<String, Object> params,GangweileixingEntity gangweileixing, HttpServletRequest request){ EntityWrapper<GangweileixingEntity> ew = new EntityWrapper<GangweileixingEntity>(); PageUtils page = gangweileixingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, gangweileixing), params), params)); request.setAttribute("data", page); return R.ok().put("data", page); } / 前端列表 / @IgnoreAuth @RequestMapping("/list") public R list(@RequestParam Map<String, Object> params,GangweileixingEntity gangweileixing, HttpServletRequest request){ EntityWrapper<GangweileixingEntity> ew = new EntityWrapper<GangweileixingEntity>(); PageUtils page = gangweileixingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, gangweileixing), params), params)); request.setAttribute("data", page); return R.ok().put("data", page); } / 列表 / @RequestMapping("/lists") public R list( GangweileixingEntity gangweileixing){ EntityWrapper<GangweileixingEntity> ew = new EntityWrapper<GangweileixingEntity>(); ew.allEq(MPUtil.allEQMapPre( gangweileixing, "gangweileixing")); return R.ok().put("data", gangweileixingService.selectListView(ew)); } / 查询 / @RequestMapping("/query") public R query(GangweileixingEntity gangweileixing){ EntityWrapper< GangweileixingEntity> ew = new EntityWrapper< GangweileixingEntity>(); ew.allEq(MPUtil.allEQMapPre( gangweileixing, "gangweileixing")); GangweileixingView gangweileixingView = gangweileixingService.selectView(ew); return R.ok("查询岗位类型成功").put("data", gangweileixingView); } / 后端详情 / @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ GangweileixingEntity gangweileixing = gangweileixingService.selectById(id); return R.ok().put("data", gangweileixing); } / 前端详情 / @IgnoreAuth @RequestMapping("/detail/{id}") public R detail(@PathVariable("id") Long id){ GangweileixingEntity gangweileixing = gangweileixingService.selectById(id); return R.ok().put("data", gangweileixing); } / 后端保存 / @RequestMapping("/save") public R save(@RequestBody GangweileixingEntity gangweileixing, HttpServletRequest request){ gangweileixing.setId(new Date().getTime()+new Double(Math.floor(Math.random()1000)).longValue()); //ValidatorUtils.validateEntity(gangweileixing); gangweileixingService.insert(gangweileixing); return R.ok(); } / 前端保存 / @RequestMapping("/add") public R add(@RequestBody GangweileixingEntity gangweileixing, HttpServletRequest request){ gangweileixing.setId(new Date().getTime()+new Double(Math.floor(Math.random()1000)).longValue()); //ValidatorUtils.validateEntity(gangweileixing); gangweileixingService.insert(gangweileixing); return R.ok(); } / 修正 / @RequestMapping("/update") @Transactional public R update(@RequestBody GangweileixingEntity gangweileixing, HttpServletRequest request){ //ValidatorUtils.validateEntity(gangweileixing); gangweileixingService.updateById(gangweileixing);//全部更新 return R.ok(); } / 删除 / @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ gangweileixingService.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<GangweileixingEntity> wrapper = new EntityWrapper<GangweileixingEntity>(); if(map.get("remindstart")!=null) { wrapper.ge(columnName, map.get("remindstart")); } if(map.get("remindend")!=null) { wrapper.le(columnName, map.get("remindend")); } int count = gangweileixingService.selectCount(wrapper); return R.ok().put("count", count); } }
scriptbreaker-multiple-accordion-1.js
/ jQuery UI Multilevel accordionze v.1 Copyright (c) 2011 Pieter Pareit http://www.scriptbreaker.com ///plugin definition(function($){ $.fn.extend({ //pass the options variable to the function accordionze: function(options) { var defaults = { accordionze: 'true', speed: 300, closedSign: '[+]', openedSign: '[-]' }; // Extend our default options with those provided. var opts = $.extend(defaults, options); //Assign current element to variable, in this case is UL element var $this = $(this); //add a mark [+] to a multilevel menu $this.find("li").each(function() { if($(this).find("ul").size() != 0){ //add the multilevel sign next to the link $(this).find("a:first").append("<h4>"+ opts.closedSign +"</h4>"); //avoid jumping to the top of the page when the href is an # if($(this).find("a:first").attr('href') == "#"){ $(this).find("a:first").click(function(){return false;}); } } }); //open active level $this.find("li.active").each(function() { $(this).parents("ul").slideDown(opts.speed); $(this).parents("ul").parent("li").find("h4:first").html(opts.openedSign); }); $this.find("li a").click(function() { if($(this).parent().find("ul").size() != 0){ if(opts.accordionze){ //Do nothing when the list is open if(!$(this).parent().find("ul").is(':visible')){ parents = $(this).parent().parents("ul"); visible = $this.find("ul:visible"); visible.each(function(visibleIndex){ var close = true; parents.each(function(parentIndex){ if(parents[parentIndex] == visible[visibleIndex]){ close = false; return false; } }); if(close){ if($(this).parent().find("ul") != visible[visibleIndex]){ $(visible[visibleIndex]).slideUp(opts.speed, function(){ $(this).parent("li").find("h4:first").html(opts.closedSign); }); } } }); } } if($(this).parent().find("ul:first").is(":visible")){ $(this).parent().find("ul:first").slideUp(opts.speed, function(){ $(this).parent("li").find("h4:first").delay(opts.speed).html(opts.closedSign); }); }else{ $(this).parent().find("ul:first").slideDown(opts.speed, function(){ $(this).parent("li").find("h4:first").delay(opts.speed).html(opts.openedSign); }); } } }); }});})(jQuery);
声明
本博客适用于广泛的学术和教诲用场,包括但不限于个人学习、开拓设计,产品设计。仅供学习参考,旨在为读者供应深入理解和学术研究的材料。
java系统设计,毕设辅导