技术分享——SSM图书馆预约占座系统

分享了使用SSM框架开发的图书馆预约占座系统的实例,包括用户列表API和统计图功能,如违规人数和占座情况的动态图表展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍

最近闲来无事,帮学校开发了一套系统,就是咱们特别普通的这种图书馆预约占座系统,我用的最基本的技术ssm框架,啊freestyle啊今天下午播放中国新说唱啊,666啊双击老铁!

Demo样例图

图书馆预约占座系统

核心代码实现:

	@RequestMapping("userList")
	public void userList(HttpServletRequest request,HttpServletResponse response){
		try {
			page = Integer.parseInt(request.getParameter("page"));
			rows = Integer.parseInt(request.getParameter("limit"));
			user = new User();
			user.setPage((page-1)*rows);
			user.setRows(rows);
			user.setUserName(request.getParameter("userName"));
			String roleId = request.getParameter("roleId");
			if (StringUtil.isNotEmpty(roleId)) {
				user.setRoleId(Integer.parseInt(roleId));
			} else {
				user.setRoleId(null);
			}
			List<User> list = userService.findUser(user);
			int total = userService.countUser(user);
			JSONObject jsonObj = new JSONObject();//new一个JSON
			jsonObj.put("code", 0);
			jsonObj.put("msg", "");
			jsonObj.put("count",total );//total代表一共有多少数据
			jsonObj.put("data", list);//row是代表显示的页的数据
			response.setContentType("application/json");
	        WriterUtil.write(response,jsonObj.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

图书馆预约占座系统
图书馆预约占座系统

核心代码实现:

package dingzhen.controller;

// 统计图
import java.awt.Color;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.logging.SimpleFormatter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.labels.ItemLabelAnchor;
import org.jfree.chart.labels.ItemLabelPosition;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.renderer.category.BarRenderer3D;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.ui.TextAnchor;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import dingzhen.entity.Choice;
import dingzhen.entity.Illegal;
import dingzhen.entity.Room;
import dingzhen.entity.Seat;
import dingzhen.service.ChoiceService;
import dingzhen.service.IllegalService;
import dingzhen.service.RoomService;
import dingzhen.service.SeatService;
import dingzhen.util.WriterUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

@RequestMapping("chart")
@Controller
public class ChartController {

	@Autowired
	private IllegalService<Illegal> illegalService;
	private Illegal illegal;
	private Room room;
	@Autowired
	private RoomService<Room> roomService;
	private Seat seat;
	@Autowired
	private SeatService<Seat> seatService;
	@Autowired
	private ChoiceService<Choice> choiceService;
	
	
	// 进入违规统计
	@RequestMapping("illegalChart")
	public String illegalIndex(){
		return "chart/illegal";
	}
	
	// 违规统计表
	@RequestMapping("findIllegalChart")
	public void findIllegalChart(HttpServletRequest request,HttpServletResponse response){
		try {
			JSONArray datarray=new JSONArray();
			for(int i=1;i<13;i++){
				// 每月违规人数
				String start = getCurrentYear();
				String end = getCurrentYear();
				if(i<10){
					start = start + "-0" + i +"-01 00:00:01";
					end = end + "-0" + i + "-31 23:59:59";
				} else {
					start = start + "-" + i +"-01 00:00:01";
					end = end + "-" + i + "-31 23:59:59";
				}
				illegal = new Illegal();
				illegal.setStart(start);
				illegal.setEnd(end);
				int total = illegalService.countIllegal(illegal);
				datarray.add(total);
			}
			JSONObject jsonObj = new JSONObject();
			
			JSONObject title = new JSONObject();
			title.put("text", getCurrentYear()+"全年度违规人数统计");
			title.put("subtext", "违规人数统计");
			
			JSONObject legend = new JSONObject();
			JSONArray array=new JSONArray();
			array.add("违规统计");
			legend.put("data", array);
			
			jsonObj.put("title", title);
			jsonObj.put("legend", legend);
			jsonObj.put("datarray", datarray);
			
			WriterUtil.write(response,jsonObj.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	
	
	// 进入占座统计
	@RequestMapping("seatChart")
	public String seatIndex(){
		return "chart/seat";
	}
	
	
	@RequestMapping("findSeatChart")
	public void findSeatChart(HttpServletRequest request,HttpServletResponse response){
		try {
			JSONArray datarray=new JSONArray();
			List<Room> roomList = roomService.findRoom(new Room());
			for(int i=0;i<roomList.size();i++){
				room = roomList.get(i);
				JSONArray array=new JSONArray();
				for(int j=1;j<13;j++){
					String start = getCurrentYear();
					String end = getCurrentYear();
					if(j<10){
						start = start + "-0" + j +"-01 00:00:01";
						end = end + "-0" + j + "-31 23:59:59";
					} else {
						start = start + "-" + j +"-01 00:00:01";
						end = end + "-" + j + "-31 23:59:59";
					}
					Choice c = new Choice();
					c.setStart(start);
					c.setEnd(end);
					c.setRows(room.getId());
					int total = choiceService.count(c);
					array.add(total);
				}
				datarray.add(array);
			}
			JSONObject jsonObj = new JSONObject();
			
			//title
			JSONObject title = new JSONObject();
			title.put("text", getCurrentYear()+"全年度占座人数统计");
			title.put("subtext", "占座人数统计");
			
			//legend
			JSONObject legend = new JSONObject();
			JSONArray array=new JSONArray();
			for(int i=0;i<roomList.size();i++){
				array.add(roomList.get(i).getName());
			}
			legend.put("data", array);
			jsonObj.put("title", title);
			jsonObj.put("legend", legend);
			jsonObj.put("datarray", datarray);
			
			WriterUtil.write(response,jsonObj.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private String getCurrentYear(){
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
		return sdf.format(new Date());
	}
}

图书馆预约占座系统
图书馆预约占座系统
核心代码实现:

	//获取座位
	@RequestMapping("combolist")
	public void seatList(HttpServletRequest request,HttpServletResponse response) {
		try {
			room = new Room();
			seat = new Seat();
			String date = request.getParameter("date");
			if(date==null || date.length()==0){
				seat.setDate(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
			}else {
				seat.setDate(date);
			}
			if(request.getParameter("roomid")!=null && request.getParameter("roomid").length() > 0){
				seat.setRoomid(Integer.parseInt(request.getParameter("roomid")));
				room.setId(Integer.parseInt(request.getParameter("roomid")));
			} else {
				seat.setRoomid(1);
				room.setId(1);
			}
			String time = request.getParameter("time");
			if(time == null || time.length()==0){
				seat.setTime("08点-12点");
			}else {
				seat.setTime(time);
			}
			List<Seat> list = seatService.findSeat(seat);
			List<Room> roomlist = roomService.findRoom(room);
			room = roomlist.get(0);
			JSONObject jsonObject = new JSONObject();
			jsonObject.put("seatList", list);
			jsonObject.put("row", room.getRow());
			jsonObject.put("col", room.getCol());
			WriterUtil.write(response, jsonObject.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

图书馆预约占座系统
图书馆预约占座系统

开发经验总结

写字楼里写字间,写字间中程序员;

程序人员写程序,又将程序换酒钱;

酒醒只在屏前坐,酒醉还来屏下眠;

酒醉酒醒日复日,屏前屏下年复年;

但愿老死电脑间,不愿鞠躬老板前;

奔驰宝马贵者趣,公交自行程序员;

别人笑我太疯癫,我笑自己命太贱;

但见满街漂亮妹,哪个归得程序员;

值此程序员节来临之际,向战斗在程序界的精英们致以崇高的问候!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

B站计算机毕业设计大学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值