文末获取源码
开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql 5.7/8.0
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.3.9
浏览器:谷歌浏览器
一、前言介绍
如今的信息时代,对信息的共享性,信息的流通性有着较高要求,因此传统管理方式就不适合。为了让导师选择信息的管理模式进行升级,也为了更好的维护导师选择信息,卓越导师双选系统的开发运用就显得很有必要。并且通过开发卓越导师双选系统,不仅可以让所学的SpringBoot框架得到实际运用,也可以掌握MySQL的使用方法,对自身编程能力也有一个检验和提升的过程。尤其是通过实践,可以对系统的开发流程加深印象,无论是前期的分析与设计,还是后期的编码测试等环节,都可以有一个深刻的了解。
卓越导师双选系统根据调研,确定管理员管理学员,导师,管理项目信息,管理项目提交,管理指导项目信息。导师管理导师选择信息,管理项目,管理项目提交并对学员提交的项目进行指导。学员选择导师,查看项目,提交已完成的项目文件,查看导师对项目的指导信息。
借助于卓越导师双选系统这样的工具,让信息系统化,流程化,规范化是最终的发展结果,让其遵循实际操作流程的情况下,对导师选择信息实施规范化处理,让导师选择信息通过电子的方式进行保存,无论是管理人员检索导师选择信息,维护导师选择信息都可以便利化操作,真正缩短信息处理时间,节省人力和信息管理的成本。
二、系统功能分析
这部分内容在系统分析环节比较重要,它直接关系本系统开发的进展。无论是设计,还是实现,都是在本系统调研的功能的基础上进行。
为了直观显示系统的功能,运用用例图这样的工具显示分析的结果。分析的管理员功能如下。管理员管理学员,导师,管理项目信息,管理项目提交,管理指导项目信息。
为了直观显示系统的功能,运用用例图这样的工具显示分析的结果。分析的导师功能如下。导师管理导师选择信息,管理项目,管理项目提交并对学员提交的项目进行指导。
为了直观显示系统的功能,运用用例图这样的工具显示分析的结果。分析的学员功能如下。学员选择导师,查看项目,提交已完成的项目文件,查看导师对项目的指导信息。
三、管理员功能实现
3.1导师信息管理
实现管理员权限的导师信息管理功能,其运行效果见下图。管理员修改导师所教科目信息,电话,邮箱,教师姓名等信息,可以删除指定的导师信息。
3.2导师选择统计报表
实现管理员权限的导师选择统计报表功能,其运行效果见下图。管理员查看导师选择统计报表信息,查看选择各位导师的学员人数信息。
3.3学员管理
实现管理员权限的学员管理功能,其运行效果见下图。管理员查看学员信息,对学员的资料进行修改,查询,删除等操作。
四、导师功能实现
4.1项目信息管理
实现导师权限的项目信息管理功能,其运行效果见下图。导师新增项目,上传项目文件,修改项目信息,在本页面删除指定的项目信息。
4.2项目提交管理
实现导师权限的项目提交管理功能,其运行效果见下图。导师下载学员提交的已完成的项目文件,导师点击指导项目按钮可以对学员提交的项目进行指导。
五、学员功能实现
5.1导师信息管理
实现学员权限的导师信息管理功能,其运行效果见下图。学员查看导师所教科目,邮箱以及电话等信息,可以点击右侧的选择导师按钮对该导师进行选择。
5.2项目信息管理
实现学员权限的项目信息管理功能,其运行效果见下图。学员查看项目信息,在规定时间内完成导师布置的项目,并在当前页面提交已完成的项目文件。
5.3指导项目查看
实现学员权限的指导项目查看功能,其运行效果见下图。学员查看导师对自己提交的项目的指导信息。
六、部分核心代码
-
/
**
-
* 上传文件映射表
-
*/
-
@RestController
-
@RequestMapping(
"file")
-
@SuppressWarnings({
"unchecked",
"rawtypes"})
-
public
class FileController{
-
@Autowired
-
private ConfigService configService;
-
/
**
-
* 上传文件
-
*
/
-
@RequestMapping(
"/upload")
-
public R upload(@RequestParam(
"file") MultipartFile
file,
String
type) throws
Exception {
-
if (
file.isEmpty()) {
-
throw new EIException(
"上传文件不能为空");
-
}
-
String fileExt
=
file.getOriginalFilename().substring(
file.getOriginalFilename().lastIndexOf(
".")
+
1);
-
File path
= new
File(ResourceUtils.getURL(
"classpath:static").getPath());
-
if(!path.exists()) {
-
path
= new
File(
"");
-
}
-
File upload
= new
File(path.getAbsolutePath(),
"/upload/");
-
if(!upload.exists()) {
-
upload.mkdirs();
-
}
-
String fileName
= new
Date().getTime()
+
"."
+fileExt;
-
File dest
= new
File(upload.getAbsolutePath()
+
"/"
+fileName);
-
file.transferTo(dest);
-
/
**
-
* 如果使用idea或者eclipse重启项目,发现之前上传的图片或者文件丢失,将下面一行代码注释打开
-
* 请将以下的
"D:\\springbootq33sd\\src\\main\\resources\\static\\upload"替换成你本地项目的upload路径,
-
* 并且项目路径不能存在中文、空格等特殊字符
-
*
/
-
/
/ FileUtils.copyFile(dest, new
File(
"D:\\springbootq33sd\\src\\main\\resources\\static\\upload"
+
"/"
+fileName));
/
**修改了路径以后请将该行最前面的
/
/注释去掉
**
/
-
if(StringUtils.isNotBlank(
type)
&
&
type.equals(
"1")) {
-
ConfigEntity configEntity
= configService.selectOne(new EntityWrapper
<ConfigEntity
>().eq(
"name",
"faceFile"));
-
if(configEntity
=
=
null) {
-
configEntity
= new ConfigEntity();
-
configEntity.setName(
"faceFile");
-
configEntity.setValue(fileName);
-
}
else {
-
configEntity.setValue(fileName);
-
}
-
configService.insertOrUpdate(configEntity);
-
}
-
return R.ok().put(
"file", fileName);
-
}
-
-
/
**
-
* 下载文件
-
*
/
-
@IgnoreAuth
-
@RequestMapping(
"/download")
-
public ResponseEntity
<byte[]
> download(@RequestParam
String fileName) {
-
try {
-
File path
= new
File(ResourceUtils.getURL(
"classpath:static").getPath());
-
if(!path.exists()) {
-
path
= new
File(
"");
-
}
-
File upload
= new
File(path.getAbsolutePath(),
"/upload/");
-
if(!upload.exists()) {
-
upload.mkdirs();
-
}
-
File
file
= new
File(upload.getAbsolutePath()
+
"/"
+fileName);
-
if(
file.exists()){
-
/
*
if(!fileService.canRead(
file, SessionManager.getSessionUser())){
-
getResponse().sendError(
403);
-
}
*
/
-
HttpHeaders headers
= new HttpHeaders();
-
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
-
headers.setContentDispositionFormData(
"attachment", fileName);
-
return new ResponseEntity
<byte[]
>(FileUtils.readFileToByteArray(
file),headers, HttpStatus.CREATED);
-
}
-
} catch (IOException e) {
-
e.printStackTrace();
-
}
-
return new ResponseEntity
<byte[]
>(HttpStatus.INTERNAL_SERVER_
ERROR);
-
}
-
-
}
-
RestController
-
@RequestMapping(
"/kechengchengji")
-
public
class KechengchengjiController {
-
@Autowired
-
private KechengchengjiService kechengchengjiService;
-
-
-
-
-
-
/
**
-
* 后端列表
-
*/
-
@RequestMapping(
"/page")
-
public R
page(@RequestParam Map
<
String,
Object
> params,KechengchengjiEntity kechengchengji,
-
HttpServletRequest request){
-
String tableName
= request.getSession().getAttribute(
"tableName").toString();
-
if(tableName.equals(
"jiaoshi")) {
-
kechengchengji.setJiaoshizhanghao((
String)request.getSession().getAttribute(
"username"));
-
}
-
if(tableName.equals(
"xuesheng")) {
-
kechengchengji.setXuehao((
String)request.getSession().getAttribute(
"username"));
-
}
-
EntityWrapper
<KechengchengjiEntity
> ew
= new EntityWrapper
<KechengchengjiEntity
>();
-
PageUtils
page
= kechengchengjiService.queryPage(params, MPUtil.
sort(MPUtil.between(MPUtil.likeOrEq(ew, kechengchengji), params), params));
-
-
return R.ok().put(
"data",
page);
-
}
-
-
/
**
-
* 前端列表
-
*/
-
@IgnoreAuth
-
@RequestMapping(
"/list")
-
public R list(@RequestParam Map
<
String,
Object
> params,KechengchengjiEntity kechengchengji,
-
HttpServletRequest request){
-
EntityWrapper
<KechengchengjiEntity
> ew
= new EntityWrapper
<KechengchengjiEntity
>();
-
PageUtils
page
= kechengchengjiService.queryPage(params, MPUtil.
sort(MPUtil.between(MPUtil.likeOrEq(ew, kechengchengji), params), params));
-
return R.ok().put(
"data",
page);
-
}
-
-
/
**
-
* 列表
-
*/
-
@RequestMapping(
"/lists")
-
public R list( KechengchengjiEntity kechengchengji){
-
EntityWrapper
<KechengchengjiEntity
> ew
= new EntityWrapper
<KechengchengjiEntity
>();
-
ew.allEq(MPUtil.allEQMapPre( kechengchengji,
"kechengchengji"));
-
return R.ok().put(
"data", kechengchengjiService.selectListView(ew));
-
}
-
-
/
**
-
* 查询
-
*/
-
@RequestMapping(
"/query")
-
public R query(KechengchengjiEntity kechengchengji){
-
EntityWrapper
< KechengchengjiEntity
> ew
= new EntityWrapper
< KechengchengjiEntity
>();
-
ew.allEq(MPUtil.allEQMapPre( kechengchengji,
"kechengchengji"));
-
KechengchengjiView kechengchengjiView
= kechengchengjiService.selectView(ew);
-
return R.ok(
"查询课程成绩成功").put(
"data", kechengchengjiView);
-
}
-
-
/
**
-
* 后端详情
-
*/
-
@RequestMapping(
"/info/{id}")
-
public R info(@PathVariable(
"id") Long id){
-
KechengchengjiEntity kechengchengji
= kechengchengjiService.selectById(id);
-
return R.ok().put(
"data", kechengchengji);
-
}
-
-
/
**
-
* 前端详情
-
*/
-
@IgnoreAuth
-
@RequestMapping(
"/detail/{id}")
-
public R
detail(@PathVariable(
"id") Long id){
-
KechengchengjiEntity kechengchengji
= kechengchengjiService.selectById(id);
-
return R.ok().put(
"data", kechengchengji);
-
}
-
-
-
-
-
/
**
-
* 后端保存
-
*/
-
@RequestMapping(
"/save")
-
public R save(@RequestBody KechengchengjiEntity kechengchengji, HttpServletRequest request){
-
kechengchengji.setId(new
Date().getTime()
+new Double(Math.floor(Math.
random()
*
1000)).longValue());
-
/
/ValidatorUtils.validateEntity(kechengchengji);
-
kechengchengjiService.insert(kechengchengji);
-
return R.ok();
-
}
-
-
/
**
-
* 前端保存
-
*/
-
@RequestMapping(
"/add")
-
public R
add(@RequestBody KechengchengjiEntity kechengchengji, HttpServletRequest request){
-
kechengchengji.setId(new
Date().getTime()
+new Double(Math.floor(Math.
random()
*
1000)).longValue());
-
/
/ValidatorUtils.validateEntity(kechengchengji);
-
kechengchengjiService.insert(kechengchengji);
-
return R.ok();
-
}
-
-
/
**
-
* 修改
-
*/
-
@RequestMapping(
"/update")
-
public R update(@RequestBody KechengchengjiEntity kechengchengji, HttpServletRequest request){
-
/
/ValidatorUtils.validateEntity(kechengchengji);
-
kechengchengjiService.updateById(kechengchengji);
/
/全部更新
-
return R.ok();
-
}
-
-
-
/
**
-
* 删除
-
*/
-
@RequestMapping(
"/delete")
-
public R
delete(@RequestBody Long[] ids){
-
kechengchengjiService.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
<KechengchengjiEntity
> wrapper
= new EntityWrapper
<KechengchengjiEntity
>();
-
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(
"jiaoshi")) {
-
wrapper.eq(
"jiaoshizhanghao", (
String)request.getSession().getAttribute(
"username"));
-
}
-
if(tableName.equals(
"xuesheng")) {
-
wrapper.eq(
"xuehao", (
String)request.getSession().getAttribute(
"username"));
-
}
-
-
int
count
= kechengchengjiService.selectCount(wrapper);
-
return R.ok().put(
"count",
count);
-
}
-
-
-
-
-
-
-
-
-
}
转载:https://blog.csdn.net/m0_49113107/article/details/129115437