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

相关推荐
踏浪无痕3 小时前
从 Guava ListenableFuture 学习生产级并发调用实践
后端·面试·架构
❀͜͡傀儡师3 小时前
SpringBoot 扫码登录全流程:UUID 生成、状态轮询、授权回调详解
java·spring boot·后端
可观测性用观测云3 小时前
观测云在企业应用性能故障分析场景中的最佳实践
后端
a努力。3 小时前
国家电网Java面试被问:Spring Boot Starter 制作原理
java·spring boot·面试
一 乐3 小时前
酒店预约|基于springboot + vue酒店预约系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
我是谁的程序员4 小时前
iOS CPU 占用率在性能问题中的表现形式
后端
一灰灰4 小时前
开发调试与生产分析的利器:MyBatis SQL日志合并插件,让复杂日志秒变可执行SQL
chrome·后端·mybatis
Code blocks4 小时前
SpringBoot从0-1集成Minio对象存储
java·spring boot·后端