Implementation Overview of a Seat Temporary Leave Management System (Spring Boot + Vue)
This article describes a seat‑temporary‑leave management system built with Java Spring Boot and Vue, detailing its front‑end and back‑end modules, technology stack, functional pages, and provides a representative controller code snippet illustrating the back‑end API design.
Introduction
The system is divided into front‑end and back‑end pages. The front‑end provides home page, seat information, forum, announcements, personal center, and other user‑facing features, while the back‑end includes modules such as home, personal center, student management, teacher management, seat reservation, attendance, leave handling, credit scoring, forum, and system management.
Development language: Java Development tools: IDEA / Eclipse Database: MySQL 5.7 Frameworks: Spring Boot + Vue JDK version: JDK 1.8
System Implementation
Front‑end Functional Modules
Home
Seat Information
Forum
Announcements
Personal Center
Student Back‑end Modules
Home
Seat Reservation Management
Attendance Management
Attendance Management (duplicate section)
Administrator Back‑end Modules
System Management
Partial Code
package com.controller;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
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.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.ZuoweizanliEntity;
import com.entity.view.ZuoweizanliView;
import com.service.ZuoweizanliService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
/**
* Seat Temporary Leave
* Backend API
*/
@RestController
@RequestMapping("/zuoweizanli")
public class ZuoweizanliController {
@Autowired
private ZuoweizanliService zuoweizanliService;
/** Backend list */
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, ZuoweizanliEntity zuoweizanli, HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("xuesheng")) {
zuoweizanli.setXuehao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<ZuoweizanliEntity> ew = new EntityWrapper<>();
PageUtils page = zuoweizanliService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, zuoweizanli), params), params));
return R.ok().put("data", page);
}
/** Frontend list */
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params, ZuoweizanliEntity zuoweizanli, HttpServletRequest request){
EntityWrapper<ZuoweizanliEntity> ew = new EntityWrapper<>();
PageUtils page = zuoweizanliService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, zuoweizanli), params), params));
return R.ok().put("data", page);
}
/** List */
@RequestMapping("/lists")
public R list(ZuoweizanliEntity zuoweizanli){
EntityWrapper<ZuoweizanliEntity> ew = new EntityWrapper<>();
ew.allEq(MPUtil.allEQMapPre(zuoweizanli, "zuoweizanli"));
return R.ok().put("data", zuoweizanliService.selectListView(ew));
}
/** Query */
@RequestMapping("/query")
public R query(ZuoweizanliEntity zuoweizanli){
EntityWrapper<ZuoweizanliEntity> ew = new EntityWrapper<>();
ew.allEq(MPUtil.allEQMapPre(zuoweizanli, "zuoweizanli"));
ZuoweizanliView zuoweizanliView = zuoweizanliService.selectView(ew);
return R.ok("查询座位暂离成功").put("data", zuoweizanliView);
}
/** Backend detail */
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
ZuoweizanliEntity zuoweizanli = zuoweizanliService.selectById(id);
return R.ok().put("data", zuoweizanli);
}
/** Frontend detail */
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
ZuoweizanliEntity zuoweizanli = zuoweizanliService.selectById(id);
return R.ok().put("data", zuoweizanli);
}
/** Backend save */
@RequestMapping("/save")
public R save(@RequestBody ZuoweizanliEntity zuoweizanli, HttpServletRequest request){
zuoweizanli.setId(new Date().getTime() + new Double(Math.floor(Math.random()*1000)).longValue());
zuoweizanliService.insert(zuoweizanli);
return R.ok();
}
/** Frontend save */
@RequestMapping("/add")
public R add(@RequestBody ZuoweizanliEntity zuoweizanli, HttpServletRequest request){
zuoweizanli.setId(new Date().getTime() + new Double(Math.floor(Math.random()*1000)).longValue());
zuoweizanliService.insert(zuoweizanli);
return R.ok();
}
/** Update */
@RequestMapping("/update")
public R update(@RequestBody ZuoweizanliEntity zuoweizanli, HttpServletRequest request){
zuoweizanliService.updateById(zuoweizanli);
return R.ok();
}
/** Delete */
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
zuoweizanliService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/** Reminder interface */
@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<ZuoweizanliEntity> wrapper = new EntityWrapper<>();
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("xuesheng")) {
wrapper.eq("xuehao", (String)request.getSession().getAttribute("username"));
}
int count = zuoweizanliService.selectCount(wrapper);
return R.ok().put("count", count);
}
}Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Java Captain
Focused on Java technologies: SSM, the Spring ecosystem, microservices, MySQL, MyCat, clustering, distributed systems, middleware, Linux, networking, multithreading; occasionally covers DevOps tools like Jenkins, Nexus, Docker, ELK; shares practical tech insights and is dedicated to full‑stack Java development.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
