package com.lrms.daoimpl;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.lrms.dao.ReserveLaboratoryDao;
import com.lrms.entity.Reservation;
import com.lrms.entity.Schedule;
import com.lrms.entity.lab_reservation;
import com.lrms.entity.lab_schedule;
import com.lrms.entity.user_lab_reservation;
@Repository
public class ReserveLaboratoryDaoImpl implements ReserveLaboratoryDao{
@Autowired
private SessionFactory sessionFactory;
//reserve_type=1时
@Override
public int reserveLab(Reservation reservation) {
Session session=sessionFactory.getCurrentSession();
int result=0;
int time_interval=reservation.getTime_interval();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
String reserve_date=sdf1.format(reservation.getReserve_date());
//判读是否schedule中已存在预约日期的信息
StringBuffer hql =new StringBuffer("from Schedule where schedule_date='"+reserve_date+"' and "+" lab_id="+reservation.getLab_id());
Query query = session.createQuery(hql.toString());
List<Schedule> test_schedule_date_list=query.list();
if(test_schedule_date_list.size()==0){
StringBuffer hql1 =new StringBuffer("from Laboratory where lab_id=? and person_number>=? and is_free=0");
Query query1 = session.createQuery(hql1.toString());
query1.setInteger(0, reservation.getLab_id());
query1.setInteger(1, reservation.getPerson_number());
query1.list();
if(query1.list().size()!=0){
result=(int)session.save(reservation);
//hql语句不能实现插入操作
StringBuffer sql2 =new StringBuffer("insert into Schedule(lab_id,schedule_date,t1,t2,t3,t4,t5) values(?,?,");
if(time_interval==1){
sql2.append("?,0,0,0,0");
}
if(time_interval==2){
sql2.append("0,?,0,0,0");
}
if(time_interval==3){
sql2.append("0,0,?,0,0");
}
if(time_interval==4){
sql2.append("0,0,0,?,0");
}
if(time_interval==5){
sql2.append("0,0,0,0,?");
}
sql2.append(")");
Query query2 = session.createSQLQuery(sql2.toString());
query2.setInteger(0, reservation.getLab_id());
query2.setDate(1, reservation.getReserve_date());
query2.setInteger(2, reservation.getPerson_number());
query2.executeUpdate();
}
}else{
// StringBuffer hql3 =new StringBuffer("from Schedule as s,Laboratory as l where s.lab_id=? and s.schedule_date=? and l.person_number-");
StringBuffer hql3=new StringBuffer("from Schedule as s,Laboratory as l where s.lab_id="+reservation.getLab_id()+" and s.schedule_date='"+reserve_date+"' and l.person_number-");
if(time_interval==1){
hql3.append("t1>=?");
}
if(time_interval==2){
hql3.append("t2>=?");
}
if(time_interval==3){
hql3.append("t3>=?");
}
if(time_interval==4){
hql3.append("t4>=?");
}
if(time_interval==5){
hql3.append("t5>=?");
}
hql3.append(" and s.lab_id=l.lab_id");
Query query3 = session.createQuery(hql3.toString());
query3.setInteger(0, reservation.getPerson_number());
if(query3.list().size()!=0){
result=(int)session.save(reservation);
StringBuffer hql4 =new StringBuffer("update Schedule set ");
if(time_interval==1){
hql4.append("t1=t1+?");
}
if(time_interval==2){
hql4.append("t2=t2+?");
}
if(time_interval==3){
hql4.append("t3=t3+?");
}
if(time_interval==4){
hql4.append("t4=t4+?");
}
if(time_interval==5){
hql4.append("t5=t5+?");
}
hql4.append(" where schedule_date='"+reserve_date+"' and "+" lab_id="+reservation.getLab_id());
Query query4 = session.createSQLQuery(hql4.toString());
query4.setInteger(0, reservation.getPerson_number());
// query4.setInteger(1, reservation.getLab_id());
// query4.setString(2, "'"+reserve_date+"'");
query4.executeUpdate();
}
}
return result;
}
//查询该实验室已被预约的信息
@Override
public List<lab_reservation> getLab_reservations(int lab_id) {
Session session=sessionFactory.getCurrentSession();
StringBuffer hql =new StringBuffer("select new com.lrms.entity.lab_reservation(l.lab_id,l.building_name,l.room_number,r.reserve_type,r.reserve_date,r.time_interval,"
+"l.person_number-sum(r.person_number),l.is_free) "
+"from Reservation as r , Laboratory as l where r.lab_id=? and r.lab_id=l.lab_id and r.reserve_date>=CURDATE()"
+"GROUP BY r.reserve_date,r.time_interval ORDER BY r.reserve_date ASC");
Query query = session.createQuery(hql.toString());
query.setInteger(0, lab_id);
List<lab_reservation> lab_reservation_list=query.list();
return lab_reservation_list;
}
@Override
public int reserveLab2(Reservation reservation) {
Session session=sessionFactory.getCurrentSession();
int result=0;
int time_interval=reservation.getTime_interval();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
String reserve_date=sdf1.format(reservation.getReserve_date());
//判读是否schedule中已存在预约日期的信息
StringBuffer hql =new StringBuffer("from Schedule where schedule_date='"+reserve_date+"' and "+" lab_id="+reservation.getLab_id());
Query query = session.createQuery(hql.toString());
List<Schedule> test_schedule_date_list=query.list();
if(test_schedule_date_list.size()==0){
StringBuffer hql1 =new StringBuffer("from Laboratory l where l.lab_id="+reservation.getLab_id()+" and l.person_number>=(select c.person_number from Course c where c.course_id="+reservation.getCourse_id()+") and l.is_free=0");
Query query1 = session.createQuery(hql1.toString());
query1.list();
if(query1.list().size()!=0){
StringBuffer sqlSave=new StringBuffer("insert into Reservation(lab_id,user_id,reserve_type,course_id,courseName,person_number,reserve_date,time_interval,weekday,description,create_time) values(?,?,?,?,"
+"(select courseName from Course where course_id=?),"
+"(select person_number from Course where course_id=?),"
+"?,?,?,?,now())");
Query querySave = session.createSQLQuery(sqlSave.toString());
querySave.setInteger(0, reservation.getLab_id());
querySave.setInteger(1, reservation.getUser_id());
querySave.setInteger(2, reservation.getReserve_type());
querySave.setInteger(3, reservation.getCourse_id());
querySave.setInteger(4, reservation.getCourse_id());
querySave.setInteger(5, reservation.getCourse_id());
querySave.setDate(6, reservation.getReserve_date());
querySave.setInteger(7, reservation.getTime_interval());
querySave.setInteger(8, reservation.getWeekday());
querySave.setString(9, reservation.getDescription());
// querySave.setDate(10, reservation.getCreate_time());
result=(int)querySave.executeUpdate();
//hql语句不能实现插入操作
StringBuffer sql2 =new StringBuffer("insert into Schedule(lab_id,schedule_date,t1,t2,t3,t4,t5) values(?,?,");
if(time_interval==1){
sql2.append("(select person_number from Laboratory where lab_id=?),0,0,0,0");
}
if(time_interval==2){
sql2.append("0,(select person_number from Laboratory where lab_id=?),0,0,0");
}
if(time_interval==3){
sql2.append("0,0,(select person_number from Laboratory where lab_id=?),0,0");
}
if(time_interval==4){
sql2.append("0,0,0,(select person_number from Laboratory where lab_id=?),0");
}
if(time_interval==5){
sql2.append("0,0,0,0,(select person_number from Laboratory where lab_id=?)");
}
sql2.append(")");
Query query2 = session.createSQLQuery(sql2.toString());
query2.setInteger(0, reservation.getLab_id());
query2.setDate(1, reservation.getReserve_date());
query2.setInteger(2, reservation.getLab_id(
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
这是一个基于 SSM(Spring、Spring MVC、MyBatis)的实验室预约系统,旨在为用户提供方便快捷的实验室预约服务。系统采用传统的三层架构,以确保系统的稳定性和可维护性。主要功能包括用户管理、实验室管理、预约管理、通知提醒和数据统计。用户可以注册、登录并管理个人信息,管理员则可以添加、修改和删除实验室信息,并设置实验室的开放时间和规则。用户能够查看实验室的空闲情况,并根据需求进行预约,系统支持按日期和时间段进行预约,避免冲突。预约成功后,系统会发送预约确认和提醒通知,确保用户及时了解预约信息。系统还提供了预约记录查询和管理功能,用户可以查看自己的预约历史并取消预约。数据统计功能提供预约使用情况的统计和分析,管理员可以查看每个实验室的使用频率和热门时间段,并生成报表进行分析和优化。 技术上,后端采用 SSM 框架构建,Spring 提供了依赖注入和事务管理,Spring MVC 处理请求和响应,MyBatis 简化了数据库操作并提高了开发效率。数据存储使用 MySQL 数据库,确保数据的持久性和可靠性。前端方面,可以使用 JSP 或者 Thymeleaf 进行页面渲染
资源推荐
资源详情
资源评论
收起资源包目录
基于ssm(spring+springmvc+mybatis)的实验室预约系统 (821个子文件)
ReserveLaboratoryDaoImpl.class 14KB
ReserveLaboratoryDaoImpl.class 14KB
ReserveLaboratoryDaoImpl.class 14KB
ReserveController.class 9KB
ReserveController.class 9KB
ReserveController.class 8KB
UserDaoImpl.class 7KB
UserDaoImpl.class 7KB
UserController.class 7KB
UserController.class 7KB
UserDaoImpl.class 7KB
UserController.class 7KB
lab_reservation.class 5KB
lab_reservation.class 5KB
lab_reservation.class 5KB
user_lab_reservation.class 4KB
user_lab_reservation.class 4KB
user_lab_reservation.class 4KB
Reservation.class 4KB
Reservation.class 4KB
Reservation.class 4KB
lab_schedule.class 4KB
lab_schedule.class 4KB
lab_schedule.class 4KB
LaboratoryController.class 4KB
LaboratoryController.class 4KB
LaboratoryController.class 3KB
UserServiceImpl.class 3KB
UserServiceImpl.class 3KB
CourseController.class 3KB
CourseController.class 3KB
CourseDaoImpl.class 3KB
CourseDaoImpl.class 3KB
CourseDaoImpl.class 3KB
CourseController.class 3KB
UserServiceImpl.class 3KB
LaboratoryDaoImpl.class 3KB
LaboratoryDaoImpl.class 3KB
User.class 3KB
User.class 3KB
User.class 3KB
LaboratoryDaoImpl.class 3KB
ReserveLaboratoryServiceImpl.class 3KB
ReserveLaboratoryServiceImpl.class 3KB
ReserveLaboratoryServiceImpl.class 2KB
Schedule.class 2KB
Schedule.class 2KB
Schedule.class 2KB
Course.class 2KB
Course.class 2KB
Laboratory.class 2KB
Laboratory.class 2KB
Course.class 2KB
Laboratory.class 2KB
Course_user.class 2KB
Course_user.class 2KB
Course_user.class 2KB
LaboratoryServiceImpl.class 2KB
LaboratoryServiceImpl.class 2KB
LaboratoryServiceImpl.class 2KB
Term.class 2KB
Term.class 2KB
Term.class 2KB
Announcement.class 2KB
Announcement.class 2KB
Announcement.class 2KB
CourseServiceImpl.class 2KB
CourseServiceImpl.class 2KB
CourseServiceImpl.class 2KB
LoginInterceptor.class 1KB
LoginInterceptor.class 1KB
LoginInterceptor.class 1KB
Class.class 1KB
Class.class 1KB
Class.class 1KB
UserService.class 965B
UserService.class 965B
UserDao.class 953B
UserDao.class 953B
UserService.class 857B
ReserveLaboratoryDao.class 850B
ReserveLaboratoryDao.class 850B
UserDao.class 845B
ReserveLaboratoryDao.class 796B
ExecResult.class 794B
ExecResult.class 794B
ExecResult.class 776B
ReserveLaboratoryService.class 771B
ReserveLaboratoryService.class 771B
ReserveLaboratoryService.class 726B
LaboratoryService.class 448B
LaboratoryService.class 448B
LaboratoryDao.class 436B
LaboratoryDao.class 436B
CourseService.class 424B
CourseService.class 424B
CourseDao.class 412B
CourseDao.class 412B
LaboratoryService.class 394B
LaboratoryDao.class 382B
共 821 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
|跟我说话请投币|
- 粉丝: 1169
- 资源: 19
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功