[免费]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

相关推荐
用户40966601317512 分钟前
Spring Boot 中 Filter、Interceptor、AOP 到底谁先执行?
后端
暗冰ཏོ7 分钟前
Spring Boot + Vue3 订单支付模块技术实现:支付单、回调验签、幂等处理与余额扣减
前端·spring boot·后端·vue·微信支付·支付宝支付
Csvn8 分钟前
Python 开发技巧 · 类型注解进阶 —— 从 `TypeVar` 到 `Protocol`,让类型检查真正帮你抓 bug
后端·python
爷_16 分钟前
AI Coding Agent 沙箱的设计原理解析
前端·人工智能·后端
学渣超18 分钟前
微服务日志智能诊断系统(八) 全链路追踪——request_id驱动的跨服务诊断
java·后端·agent
爱勇宝18 分钟前
第 3 章:别把团队设计成一场内卷竞赛
前端·后端·程序员
ACGkaka_19 分钟前
Spring Boot 实战(四十一):集成 BPMN(Flowable+bpmn-js)
java·spring boot·后端
ljs64827395123 分钟前
智慧商城(Smart Mall):基于 Spring Boot + Vue 3 的现代化电商平台实战
linux·vue.js·spring boot·后端
yeffky25 分钟前
Vibe Coding一个能办事的 AI Agent:Spring Boot + DeepSeek + LangGraph4j 六节点 ReAct 项目实战
人工智能·后端·agent
乒乓狂魔147867399700026 分钟前
OpenClaw 终于可以读懂 OpenTelemetry APM 了
后端