package com.zhengxiang.reservation.scholar.service;
import com.zhengxiang.reservation.back.mapper.CoachBackMapper;
import com.zhengxiang.reservation.coach.mapper.CoachMapper;
import com.zhengxiang.reservation.coach.service.CoachService;
import com.zhengxiang.reservation.commonPOJO.ReservationInfo;
import com.zhengxiang.reservation.commonPOJO.Scholar;
import com.zhengxiang.reservation.scholar.mapper.ScholarMapper;
import com.zhengxiang.reservation.timetask.service.PublicTaskFunctionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.context.annotation.ScopedProxyMode;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.concurrent.CopyOnWriteArrayList;
@Service
public class ScholarReservationService {
@Autowired
ScholarMapper sm;
@Autowired
CoachService sc;
@Autowired
PublicTaskFunctionService pts;
@Autowired
CoachMapper cm;
@Autowired
SimpleDateFormat sdf;
@Autowired
CoachBackMapper cbm;
/*
学员约车操作
首先先吧当前时间段剩余次数减少一次
在往约车信息表中插入具体预约信息
*/
public String Reservation(HttpServletRequest req, String date, String timepart){
Scholar scholar =(Scholar) req.getSession().getAttribute("scholar");
//查询教练对应的约车表
String reservationDetailTableName = sc.getReservationDetailTableName(scholar.getCoachid());
String reservationcountname = sc.CoachGetReservationcountTablename(scholar.getCoachid());
String mass="";
//判断是否满足预约条件
mass= ReservationCondition(req,date,reservationDetailTableName,reservationcountname,scholar);
if(mass.equals("1")){
return updatereservation(date,timepart,req,reservationcountname,scholar,reservationDetailTableName,1);
}
return mass;
}
/**
* 判断学生当前是否可以预约
* @param scholar
* @return
*/
public boolean ifreservation(Scholar scholar){
System.out.println(sm.Inreservation(scholar.getIdcard()));
return sm.Inreservation(scholar.getIdcard())==1?true:false;
}
/*
预约前先检查是否符合预约条件
1.选择的当前日期是否已经预约过
2.是否连续两天预约过但没有到现场
3.查询当前预约时间段是否已经被管理员设置为禁止预约
*/
public String ReservationCondition(HttpServletRequest req, String date,
String reservationDetailTableName,String reservationcountname,Scholar scholar){
String mass="预约失败";
mass=getOneScholarWhetherReservationInfo(scholar.getIdcard(),date,reservationDetailTableName);
if(mass.equals("1")){
if(!ifreservation(scholar)) {
mass="当前管理员已禁止您预约";
return mass;
}
mass = ReservationCondition1(reservationDetailTableName, date, scholar);
if (mass.equals("1")) {
return "1";
}
}
return mass;
}
/*
预约条件判断
是否连续两天预约过但没有赴约
*/
public String ReservationCondition1(String reservationDetailTableName,String reservationdate,Scholar scholar){
CopyOnWriteArrayList<ReservationInfo> reversationWheterStatusis0 =
getReversationWheterStatusis0(reservationDetailTableName, scholar.getIdcard());
Calendar date = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
//遍历预约日期,看是否存在有两天连续的情况
long time2=0;
//设置标志位,如果存在两天连续则设置为true
boolean flage=false;
for (ReservationInfo ri:
reversationWheterStatusis0) {
long time1 = sdf.parse(ri.getTimeid()).getTime();
if((Math.abs((time2-time1))/(1000 * 60 * 60 * 24))>=1){
flage=true;
time2=sdf.parse(ri.getTimeid()).getTime();
break;
}
System.out.println((Math.abs((time2-time1))/(1000 * 60 * 60 * 24)));
// System.out.println(ri.getTimeid());
time2=sdf.parse(ri.getTimeid()).getTime();
}
System.out.println(flage);
if(flage){
//用选择预约的日子减去查出来的time2日子,如果小于三天则不让预约
long reservationtime = sdf.parse(reservationdate).getTime();
long l = (reservationtime - time2) / (1000 * 60 * 60 * 24);
if(l<=3){
// System.out.println(l);
if((3-l)==0)
return "由于您已连续两次预约成功但未到,系统将限制您在三个工作日后可进行预约,但您可以预约明天";
return "由于您已连续两次预约成功但未到,系统将限制您在三个工作日后可进行预约,"+(3-l)+"天后可进行预约";
}
}
} catch (Exception e) {
e.printStackTrace();
}
return "1";
}
/*
预约修改数据库操作
*/
@Scope(proxyMode = ScopedProxyMode.INTERFACES)
@Transactional(rollbackFor=Exception.class)
public synchronized String updatereservation(String date,
String timepart, HttpServletRequest req,String reservationcountname,Scholar scholar,
String reservationDetailTableName,int state){
if(state==1){
try {
//当前时间段时候还有剩余预约数量
String reservationTimepartRemainderCount = pts.getReservationTimepartRemainderCount(date, timepart, req);
if(Integer.parseInt(reservationTimepartRemainderCount)==0){
return "本时间段预约的人数已满";
}else if(Integer.parseInt(reservationTimepartRemainderCount)==9){
return "当前时间段已被管理员设置为不可预约状态,请选择其他时间段预约";
}
String next =null,now=null;
try {
Calendar date1 = Calendar.getInstance();
now = sdf.format(date1.getTime());
date1.add(Calendar.DAY_OF_MONTH,1);
next=sdf.format(date1.getTime());
} catch (Exception e) {
e.printStackTrace();
}
if(!"0".equals( String.valueOf(sm.scholarreservationNoSearch(date,now,next,timepart,reservationcountname)))){
SimpleDateFormat st = new SimpleDateFormat("yyyy-MM-dd:HH:mm:ss");
sm.saveReservationMassage(new ReservationInfo(timepart,"1",
scholar.getIdcard(),st.format(new Date()),scholar.getName(),date)
,reservationDetailTableName);
return "1";
}
} catch (Exception e) {
e.printStackTrace();
}
return "预约失败";
}else{
String next =null,now=null;
Calendar date1 = Calendar.getInstance();
now = sdf.format(date1.getTime());
date1.add(Calendar.DAY_OF_MONTH,1);
next=sdf.format(date1.getTime());
if(String.valueOf(cm.setreservationequal9(date,now,next,timepart,reservationcountname)).equals("1")){
cbm.deleteReservationInfoTimepartAll(timepart,date,reservationDetailTableName);
return "修改成功";
}
return "服务器繁忙请稍重新尝试";
}
}
/*
查询某人当天是否已经有预
没有合适的资源?快使用搜索试试~ 我知道了~
驾校预约系统基于微信小程序.zip
共56个文件
java:37个
html:8个
properties:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 170 浏览量
2023-12-08
10:03:20
上传
评论
收藏 170KB ZIP 举报
温馨提示
计算机类毕设源码
资源推荐
资源详情
资源评论
收起资源包目录
驾校预约系统基于微信小程序.zip (56个子文件)
Graduation Design
mvnw.cmd 6KB
pom.xml 5KB
src
test
java
com
zhengxiang
reservation
ReservationApplicationTests.java 236B
main
resources
application.properties 2KB
templates
reservationsettingtable.html 16KB
main.html 2KB
reservationtable.html 5KB
coachtable.html 12KB
insertscholar.html 5KB
login.html 2KB
insertcoach.html 4KB
scholarmassage.html 7KB
static
js
bootstrap.min.js 34KB
jquery-1.9.1.min.js 90KB
css
bootstrap.css 134KB
java
com
zhengxiang
reservation
coach
mapper
CoachMapper.java 4KB
CoachORMScholarMapper.java 1KB
controller
CoachController.java 4KB
service
CoachService.java 2KB
CoachORMScholarService.java 2KB
back
tools
TimePartTranStrandTime.java 2KB
UploadFileTools.java 2KB
mapper
ScholarBackMapper.java 4KB
CoachBackMapper.java 5KB
AdminBasicMapper.java 1KB
controller
LoginBackController.java 1KB
CoachBackController.java 4KB
WebModAndViewConfig.java 790B
ScholarBackController.java 4KB
service
AdminBasicService.java 2KB
ScholarBackService.java 3KB
CoachBackService.java 6KB
config
InjectBean.java 436B
timetask
mapper
PublicTaskFunctionMapper.java 1KB
TimeTaskMapper.java 1KB
controller
PublicTaskFunctionController.java 1KB
TimeTaskController.java 445B
service
PublicTaskFunctionService.java 2KB
TimeTaskUpdateReservationInfo.java 4KB
scholar
mapper
ScholarMapper.java 6KB
controller
ScholarController.java 3KB
service
ScholarReservationService.java 8KB
ScholarSelectService.java 1KB
commonPOJO
ReservationCount.java 3KB
Coach.java 1KB
Scholar.java 1KB
coachORMreservationTable.java 387B
AdminUser.java 322B
ReservationInfo.java 1KB
ReservationApplication.java 784B
reservations.sql 57KB
.mvn
wrapper
maven-wrapper.properties 116B
maven-wrapper.jar 47KB
MavenWrapperDownloader.java 5KB
mvnw 9KB
.gitignore 333B
共 56 条
- 1
资源评论
学术菜鸟小晨
- 粉丝: 1w+
- 资源: 4938
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功