news 2026/6/10 11:33:43

[免费]SpringBoot+Vue勤工助学管理系统【论文+源码+SQL脚本】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[免费]SpringBoot+Vue勤工助学管理系统【论文+源码+SQL脚本】

大家好,我是java1234_小锋老师,看到一个不错的SpringBoot+Vue勤工助学管理系统【论文+源码+SQL脚本】,分享下哈。

项目视频演示

https://www.bilibili.com/video/BV1fTq2B9EQ2/

项目介绍

在经济困难学生资助体系中,传统的人工管理方式显得低效,并且在数据统计和信息处理上容易出现错误,这给管理工作带来了极大的复杂性。为了应对这一挑战,适应“互联网+”时代的发展需求,采用信息技术来提升管理效率成为当务之急。在此背景下,开发一个勤工助学信息管理系统显得尤为重要,该系统旨在实现学生信息的在线填写与审核,不仅提高了管理的透明度和公平性,也显著减轻了管理人员的负担,为学生提供了更多便利。

系统展示

部分代码

package com.controller; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.text.ParseException; 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.YonggongbumenEntity; import com.entity.view.YonggongbumenView; import com.service.YonggongbumenService; 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; /** * 用工部门 * 后端接口 */ @RestController @RequestMapping("/yonggongbumen") public class YonggongbumenController { @Autowired private YonggongbumenService yonggongbumenService; @Autowired private TokenService tokenService; /** * 登录 */ @IgnoreAuth @RequestMapping(value = "/login") public R login(String username, String password, String captcha, HttpServletRequest request) { YonggongbumenEntity u = yonggongbumenService.selectOne(new EntityWrapper<YonggongbumenEntity>().eq("bumenzhanghao", username)); if(u==null || !u.getMima().equals(password)) { return R.error("账号或密码不正确"); } String token = tokenService.generateToken(u.getId(), username,"yonggongbumen", "用工部门" ); return R.ok().put("token", token); } /** * 注册 */ @IgnoreAuth @RequestMapping("/register") public R register(@RequestBody YonggongbumenEntity yonggongbumen){ //ValidatorUtils.validateEntity(yonggongbumen); YonggongbumenEntity u = yonggongbumenService.selectOne(new EntityWrapper<YonggongbumenEntity>().eq("bumenzhanghao", yonggongbumen.getBumenzhanghao())); if(u!=null) { return R.error("注册用户已存在"); } Long uId = new Date().getTime(); yonggongbumen.setId(uId); yonggongbumenService.insert(yonggongbumen); return R.ok(); } /** * 退出 */ @RequestMapping("/logout") public R logout(HttpServletRequest request) { request.getSession().invalidate(); return R.ok("退出成功"); } /** * 获取用户的session用户信息 */ @RequestMapping("/session") public R getCurrUser(HttpServletRequest request){ Long id = (Long)request.getSession().getAttribute("userId"); YonggongbumenEntity u = yonggongbumenService.selectById(id); return R.ok().put("data", u); } /** * 密码重置 */ @IgnoreAuth @RequestMapping(value = "/resetPass") public R resetPass(String username, HttpServletRequest request){ YonggongbumenEntity u = yonggongbumenService.selectOne(new EntityWrapper<YonggongbumenEntity>().eq("bumenzhanghao", username)); if(u==null) { return R.error("账号不存在"); } u.setMima("123456"); yonggongbumenService.updateById(u); return R.ok("密码已重置为:123456"); } /** * 后端列表 */ @RequestMapping("/page") public R page(@RequestParam Map<String, Object> params,YonggongbumenEntity yonggongbumen, HttpServletRequest request){ EntityWrapper<YonggongbumenEntity> ew = new EntityWrapper<YonggongbumenEntity>(); PageUtils page = yonggongbumenService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yonggongbumen), params), params)); return R.ok().put("data", page); } /** * 前端列表 */ @IgnoreAuth @RequestMapping("/list") public R list(@RequestParam Map<String, Object> params,YonggongbumenEntity yonggongbumen, HttpServletRequest request){ EntityWrapper<YonggongbumenEntity> ew = new EntityWrapper<YonggongbumenEntity>(); PageUtils page = yonggongbumenService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yonggongbumen), params), params)); return R.ok().put("data", page); } /** * 列表 */ @RequestMapping("/lists") public R list( YonggongbumenEntity yonggongbumen){ EntityWrapper<YonggongbumenEntity> ew = new EntityWrapper<YonggongbumenEntity>(); ew.allEq(MPUtil.allEQMapPre( yonggongbumen, "yonggongbumen")); return R.ok().put("data", yonggongbumenService.selectListView(ew)); } /** * 查询 */ @RequestMapping("/query") public R query(YonggongbumenEntity yonggongbumen){ EntityWrapper< YonggongbumenEntity> ew = new EntityWrapper< YonggongbumenEntity>(); ew.allEq(MPUtil.allEQMapPre( yonggongbumen, "yonggongbumen")); YonggongbumenView yonggongbumenView = yonggongbumenService.selectView(ew); return R.ok("查询用工部门成功").put("data", yonggongbumenView); } /** * 后端详情 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ YonggongbumenEntity yonggongbumen = yonggongbumenService.selectById(id); return R.ok().put("data", yonggongbumen); } /** * 前端详情 */ @IgnoreAuth @RequestMapping("/detail/{id}") public R detail(@PathVariable("id") Long id){ YonggongbumenEntity yonggongbumen = yonggongbumenService.selectById(id); return R.ok().put("data", yonggongbumen); } /** * 后端保存 */ @RequestMapping("/save") public R save(@RequestBody YonggongbumenEntity yonggongbumen, HttpServletRequest request){ yonggongbumen.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(yonggongbumen); YonggongbumenEntity u = yonggongbumenService.selectOne(new EntityWrapper<YonggongbumenEntity>().eq("bumenzhanghao", yonggongbumen.getBumenzhanghao())); if(u!=null) { return R.error("用户已存在"); } yonggongbumen.setId(new Date().getTime()); yonggongbumenService.insert(yonggongbumen); return R.ok(); } /** * 前端保存 */ @RequestMapping("/add") public R add(@RequestBody YonggongbumenEntity yonggongbumen, HttpServletRequest request){ yonggongbumen.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(yonggongbumen); YonggongbumenEntity u = yonggongbumenService.selectOne(new EntityWrapper<YonggongbumenEntity>().eq("bumenzhanghao", yonggongbumen.getBumenzhanghao())); if(u!=null) { return R.error("用户已存在"); } yonggongbumen.setId(new Date().getTime()); yonggongbumenService.insert(yonggongbumen); return R.ok(); } /** * 修改 */ @RequestMapping("/update") @Transactional public R update(@RequestBody YonggongbumenEntity yonggongbumen, HttpServletRequest request){ //ValidatorUtils.validateEntity(yonggongbumen); yonggongbumenService.updateById(yonggongbumen);//全部更新 return R.ok(); } /** * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ yonggongbumenService.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<YonggongbumenEntity> wrapper = new EntityWrapper<YonggongbumenEntity>(); if(map.get("remindstart")!=null) { wrapper.ge(columnName, map.get("remindstart")); } if(map.get("remindend")!=null) { wrapper.le(columnName, map.get("remindend")); } int count = yonggongbumenService.selectCount(wrapper); return R.ok().put("count", count); } }

源码下载

链接:https://pan.baidu.com/s/1CDx7vu0HpEvkqxWR44N8JA
提取码:1234

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/2 11:23:47

LangFlow节点系统深度剖析:Input、Output、Chain与Agent模块全解

LangFlow节点系统深度剖析&#xff1a;Input、Output、Chain与Agent模块全解 在构建大语言模型&#xff08;LLM&#xff09;应用的实践中&#xff0c;一个日益突出的问题是&#xff1a;如何让复杂的AI流程变得可理解、可协作且易于迭代&#xff1f;尽管LangChain为连接模型与外…

作者头像 李华
网站建设 2026/6/6 9:17:27

mysql表的链接

在 MySQL 中&#xff0c;表连接&#xff08;JOIN&#xff09;是用于从多个表中根据关联字段提取数据的核心操作。根据业务需求不同&#xff0c;主要分为内连接、外连接、交叉连接、自连接 四类&#xff0c;以下是详细说明和示例&#xff1a;准备示例表先创建两个测试表&#xf…

作者头像 李华
网站建设 2026/6/9 13:56:35

LangFlow项目更新日志解读:最新版本带来了哪些惊喜?

LangFlow项目更新日志解读&#xff1a;最新版本带来了哪些惊喜&#xff1f; 在大模型应用开发日益火热的今天&#xff0c;一个令人熟悉的困境始终存在&#xff1a;如何让非程序员也能快速参与 AI 原型设计&#xff1f;尽管 LangChain 提供了强大的模块化能力&#xff0c;但其代…

作者头像 李华
网站建设 2026/6/9 6:55:54

基于深度学习的农情灾情分析与预测中期检查报告

河北东方学院本科毕业论文&#xff08;设计&#xff09;中期检查报告题目&#xff1a;基于深度学习的农情灾情分析与预测学院&#xff1a;人工智能学院专业&#xff1a;数据科学与大数据技术班级&#xff1a;大数据技术21-2学生姓名&#xff1a;Xx学 号&#xff1a;xx指导教…

作者头像 李华
网站建设 2026/6/5 5:21:24

基于深度学习的农情灾情分析与预测——中期检查报告

河北东方学院本科毕业论文&#xff08;设计&#xff09;中期检查报告题目&#xff1a;基于深度学习的农情灾情分析与预测学院&#xff1a;人工智能学院专业&#xff1a;数据科学与大数据技术班级&#xff1a;大数据技术21-2学生姓名&#xff1a;学 号&#xff1a;2151503020…

作者头像 李华